Paso 6: Fortune Teller código
#include < LCD4Bit.h >#define countof(array) (sizeof(array) / sizeof(*(array)))
Lcd de LCD4Bit = LCD4Bit(2);
Todd Miller 2008
int ledPin = 13; elige el pin para el LED
int inPin = 4; elegir la clavija de entrada (para un pulsador)
int val = 0; variable para lectura del estado del pin
int pos1 = 1;
int pos2 = 0;
int x = 0;
int b = 0;
int y = 0;
int tv = 0;
tv2 int = 0;
previousMillis largo = 0; almacenará la última vez actualizó a LED
largo intervalo de tiempo = 1100; intervalo en el que a parpadear (milisegundos)
char * msgs1 = {"es una promoción" ",", "usted será pronto","la risa es el","Live largo y", "reír duro y", "comer bien y", "Creativo", "Alguien", "Un corazón alegre", "aprovechar el día"., "Eres", "Riqueza es", "Happy veces", "veo robots", "Sonrisa y tú", "suerte que pronto"};
char * msgs2 = {"pronto.", "ser feliz"., "la mejor medicina.", "prosperar", "se ríen a menudo.", "hacer feliz"., "mente es tuyo.", "te ama"., "es bueno", "","mucha suerte", "pronto el suyo.", "están por delante.", "en su futuro.", "rico.", "te sigo."};
char * msgs3 = {"!","'%',"&"," * "," "?", "="};
char * msgs4 = {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "14", "15", "16", "17", "18", "19", "20"};
int NUM_MSGS = 11;
int NUM_MSGS2 = 19;
int i = 0;
carácter my_str;
void setup() {}
pinMode (ledPin, salida); declarar el LED como salida
pinMode (inPin, entrada); declarar pulsador como entrada
pinMode(0,INPUT);
pinMode (6, salida);
pinMode (5, salida);
pinMode (3, salida);
pinMode (13, salida);
digitalWrite (13, HIGH);
Serial.Begin(9600);
randomSeed(analogRead(0));
}
void loop() {}
digitalWrite (13, HIGH);
LCD.init();
lcd.printIn ("adivino");
lcd.cursorTo (2, 0);
lcd.printIn ("Robot 3000");
Delay(2000);
LCD.Clear();
lcd.cursorTo (1, 0);
lcd.printIn("Thinking");
para (int i = 0; i < 3; i ++)
{
LCD.Print('.');
Delay(400);
Animation();
}
lcd.cursorTo (1, 0);
LCD.Clear();
para (int i = 0; i < 9; i ++)
{
POS2 = pos2 + 1;
Pos1 = pos1 + i;
selección de int = random(NUM_MSGS);
randy int = random(1,10);
char * msg3 = msgs3;
lcd.printIn(msg3);
Delay(300);
Si (pos2 > = 2) pos2 = 0;
Animation();
}
LCD.Clear();
lcd.cursorTo (1, 0);
lcd.printIn("Your");
lcd.cursorTo (2, 0);
lcd.printIn ("Fortuna es");
digitalWrite (6, alto);
digitalWrite (5, alto);
digitalWrite (3, alto);
Delay(1200);
para (int i = 0; i < 3; i ++)
{
LCD.Print('.');
Delay(300);
}
lcd.leftScroll (20, 50);
LCD.Clear();
escoger un mensaje al azar de la matriz
corteza de int = aleatorio -10 (1,21);
Si (corteza == x)
{
corteza corteza = 1;
}
otra cosa
{
corteza = random(rind);
}
x = corteza;
int randNumber = al azar (1, countof(msgs1));
char * msg1 = msgs1;
char * msg2 = msgs2;
lcd.printIn(msg1);
lcd.cursorTo (2, 0);
lcd.printIn(msg2);
Delay(2500);
LCD.Clear();
pick2 int = random(NUM_MSGS2);
char * msg4 = msgs4;
lcd.cursorTo (1, 0);
strcpy (my_str, "es número");
strcat (my_str, msg4);
strcat (my_str, ".");
lcd.printIn ("tu suerte");
lcd.cursorTo (2, 0);
lcd.printIn(my_str);
Delay(1200);
para (int i = 0; i < 3; i ++) {}
LCD.Print('.');
Delay(300);
}
Delay(300);
lcd.leftScroll (20, 50);
LCD.Clear();
lcd.cursorTo (1, 0);
Val = digitalRead(inPin); leer valor de entrada
animation2();
}
void animation()
{
Si (i = 1) digitalWrite (6, alto); luz del firstLED
Si (i = 1) digitalWrite (5, bajo); luz del firstLED
Si (i = 1) digitalWrite (3, bajo); luz del firstLED
Delay(70);
Si (i = 2) digitalWrite(6, LOW); luz del firstLED
Si (i = 2) digitalWrite(5, HIGH); luz del firstLED
Si (i = 2) digitalWrite(3, LOW); luz del firstLED
Delay(70);
Si (i = 3) digitalWrite (6, bajo); luz del firstLED
Si (i = 3) digitalWrite (5, bajo); luz del firstLED
Si (i = 3) digitalWrite (3, alto); luz del firstLED
Delay(70);
Si (i = 9) digitalWrite (6, bajo); luz del firstLED
Si (i = 9) digitalWrite (5, bajo); luz del firstLED
Si (i = 9) digitalWrite (3, bajo); luz del firstLED
}
void animation2()
{
digitalWrite (13, HIGH);
{}
Val = digitalRead(inPin); leer valor de entrada
Si (val == HIGH) {/ / comprobar si la entrada es alta (tecla fuera)
b = 0;
} else {}
b = 1;
y = 0;
TV = 0;
TV2 = 0;
digitalWrite (6, bajo);
digitalWrite (5, bajo);
digitalWrite (3, LOW); / / enciende el LED
}
Si (millis() - previousMillis > intervalo) {}
previousMillis = millis(); recordar la última vez que imprime
TV = tv + 1;
TV2 = tv2 + 1;
Si (tv == 1)
{
LCD.Clear();
lcd.printIn ("adivino");
digitalWrite (6, bajo);
digitalWrite (5, alto);
digitalWrite (3, bajo);
}
Si (tv == 2)
{
lcd.cursorTo(2,0);
lcd.printIn ("Robot 3000");
digitalWrite (6, alto);
digitalWrite (5, bajo);
digitalWrite (3, bajo);
}
Si (tv == 3 & & tv2! = 9 & & tv2! = 10)
{
LCD.Clear();
lcd.cursorTo(1,0);
lcd.printIn ("Pulse el botón");
digitalWrite (6, alto);
digitalWrite (5, bajo);
digitalWrite (3, bajo);
}
Si (tv == 4 & & tv2! = 9 & & tv2! = 10)
{
lcd.cursorTo(2,0);
lcd.printIn ("para una fortuna!");
digitalWrite (6, bajo);
digitalWrite (5, bajo);
digitalWrite (3, alto);
}
Si (tv2 == 7)
{
LCD.Clear();
lcd.cursorTo(1,0);
lcd.printIn ("la fortuna");
digitalWrite (6, bajo);
digitalWrite (5, alto);
digitalWrite (3, bajo);
}
Si (tv2 == 8)
{
lcd.cursorTo(2,0);
lcd.printIn ("te espera.");
digitalWrite (6, bajo);
digitalWrite (5, alto);
digitalWrite (3, bajo);
TV = 0;
TV2 = 0;
}
}
} mientras que (b == 0);
}