Étape 6: Fortune Teller Code
#include < LCD4Bit.h >#define countof(array) (sizeof(array) / sizeof(*(array)))
Lcd LCD4Bit = LCD4Bit(2) ;
Todd Miller 2008
int ledPin = 13 ; choisir l’axe de la LED
int inPin = 4 ; Choisissez l’entrée pin (pour un bouton poussoir)
int val = 0 ; variable pour la lecture de l’état de la broche
pos1 int = 1 ;
pos2 int = 0 ;
int x = 0 ;
int b = 0 ;
int y = 0 ;
int tv = 0 ;
tv2 int = 0 ;
long previousMillis = 0 ; va stocker la dernière fois mise à jour de LED
intervalle long = 1100 ; intervalle à laquelle doit clignoter (millisecondes)
char * msgs1 = {"est une promotion" ",", "il y aura bientôt","le rire est le Live","long et", "rire dur et", "bien manger et", "Un créatif", "Quelqu'un", "Un cœur joyeux", "Seize the day.", "You are", "Est de la richesse", "Happy times", "je vois des robots", "Sourire et vous", "chance sera bientôt"} ;
char * msgs2 = {« coming soon ». « être heureux. », "le meilleur médicament.", "prospérer"., « rire souvent. », « rendre joyeux. », « esprit appartient. », « vous aime. », « est bon. », "","beaucoup de chance!", « bientôt sincèrement. », "sont à venir.", "dans votre avenir.", "va être riche.", "vous suivre"} ;
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 ;
char my_str ;
void setup() {}
pinMode (ledPin, sortie) ; déclarer les LED en sortie
pinMode (inPin, entrée) ; déclarer les touche comme entrée
pinMode(0,INPUT) ;
pinMode (6, sortie) ;
pinMode (5, sortie) ;
pinMode (3, sortie) ;
pinMode (13, sortie) ;
digitalWrite (13, HIGH) ;
Serial.Begin(9600) ;
randomSeed(analogRead(0)) ;
}
void loop() {}
digitalWrite (13, HIGH) ;
LCD.init() ;
lcd.printIn ("diseuse de bonne aventure") ;
lcd.cursorTo (2, 0) ;
lcd.printIn ("Robot 3000") ;
Delay(2000) ;
LCD.Clear() ;
lcd.cursorTo (1, 0) ;
lcd.printIn("Thinking") ;
pour (int i = 0; i < 3; i ++)
{
LCD.Print('.') ;
Delay(400) ;
Animation() ;
}
lcd.cursorTo (1, 0) ;
LCD.Clear() ;
pour (int i = 0; i < 9; i ++)
{
POS2 = pos2 + 1 ;
POS1 = pos1 + i ;
pick 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 ("fortune est") ;
digitalWrite (6, HIGH) ;
digitalWrite (5, HIGH) ;
digitalWrite (3, élevée) ;
Delay(1200) ;
pour (int i = 0; i < 3; i ++)
{
LCD.Print('.') ;
Delay(300) ;
}
lcd.leftScroll (20, 50) ;
LCD.Clear() ;
choisir un message aléatoire du tableau
zeste d’int = aléatoire-(1,21) 10 ;
Si (couenne == x)
{
couenne = zeste + 1 ;
}
d’autre
{
couenne = random(rind) ;
}
x = croûte ;
int randNumber = aléatoire (1, countof(msgs1)) ;
char * msg1 = msgs1 ;
char * msg2 = msgs2 ;
lcd.printIn(msg1) ;
lcd.cursorTo (2, 0) ;
lcd.printIn(msg2) ;
Delay(2500) ;
LCD.Clear() ;
lame2 int = random(NUM_MSGS2) ;
char * msg4 = msgs4 ;
lcd.cursorTo (1, 0) ;
strcpy (my_str, "number is") ;
strcat (my_str, msg4) ;
strcat (my_str, ".") ;
lcd.printIn ("votre chance") ;
lcd.cursorTo (2, 0) ;
lcd.printIn(my_str) ;
Delay(1200) ;
pour (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) ; lire la valeur d’entrée
animation2() ;
}
Sub animation()
{
Si (i = 1) digitalWrite (6, HIGH) ; lumière du firstLED
Si (i = 1) digitalWrite (5, faible) ; lumière du firstLED
Si (i = 1) digitalWrite (3, faible) ; lumière du firstLED
Delay(70) ;
Si (je = 2) digitalWrite(6, LOW) ; lumière du firstLED
Si (je = 2) digitalWrite(5, HIGH) ; lumière du firstLED
Si (je = 2) digitalWrite(3, LOW) ; lumière du firstLED
Delay(70) ;
Si (i = 3) digitalWrite (6, faible) ; lumière du firstLED
Si (i = 3) digitalWrite (5, faible) ; lumière du firstLED
Si (i = 3) digitalWrite (3, élevée) ; lumière du firstLED
Delay(70) ;
Si (i = 9) digitalWrite (6, faible) ; lumière du firstLED
Si (i = 9) digitalWrite (5, faible) ; lumière du firstLED
Si (i = 9) digitalWrite (3, faible) ; lumière du firstLED
}
Sub animation2()
{
digitalWrite (13, HIGH) ;
{}
Val = digitalRead(inPin) ; lire la valeur d’entrée
Si (val == HIGH) {/ / vérifier si l’entrée est haute (relâchez le bouton)
b = 0 ;
} else {}
b = 1 ;
y = 0 ;
TV = 0 ;
TV2 = 0 ;
digitalWrite (6, faible) ;
digitalWrite (5, faible) ;
digitalWrite (3, faible); / / allumer la LED
}
Si (millis() - previousMillis > intervalle) {}
previousMillis = millis() ; n’oubliez pas la dernière fois que nous avons imprimé
TV = tv + 1 ;
TV2 = tv2 + 1 ;
Si (tv == 1)
{
LCD.Clear() ;
lcd.printIn ("diseuse de bonne aventure") ;
digitalWrite (6, faible) ;
digitalWrite (5, HIGH) ;
digitalWrite (3, faible) ;
}
Si (tv == 2)
{
lcd.cursorTo(2,0) ;
lcd.printIn ("Robot 3000") ;
digitalWrite (6, HIGH) ;
digitalWrite (5, faible) ;
digitalWrite (3, faible) ;
}
Si (tv == 3 & & tv2! = 9 & & tv2! = 10)
{
LCD.Clear() ;
lcd.cursorTo(1,0) ;
lcd.printIn (« pousser le bouton") ;
digitalWrite (6, HIGH) ;
digitalWrite (5, faible) ;
digitalWrite (3, faible) ;
}
Si (tv == 4 & & tv2! = 9 & & tv2! = 10)
{
lcd.cursorTo(2,0) ;
lcd.printIn ("pour une fortune!") ;
digitalWrite (6, faible) ;
digitalWrite (5, faible) ;
digitalWrite (3, élevée) ;
}
Si (tv2 == 7)
{
LCD.Clear() ;
lcd.cursorTo(1,0) ;
lcd.printIn ("votre fortune") ;
digitalWrite (6, faible) ;
digitalWrite (5, HIGH) ;
digitalWrite (3, faible) ;
}
Si (tv2 == 8)
{
lcd.cursorTo(2,0) ;
lcd.printIn ("vous attend.") ;
digitalWrite (6, faible) ;
digitalWrite (5, HIGH) ;
digitalWrite (3, faible) ;
TV = 0 ;
TV2 = 0 ;
}
}
} alors que (b == 0) ;
}