Stap 6: Fortune Teller Code
#include < LCD4Bit.h >#define countof(array) (sizeof(array) / sizeof(*(array)))
LCD4Bit lcd = LCD4Bit(2);
Todd Miller 2008
int ledPin = 13; Kies de pin voor de LED
int inPin = 4; Kies de invoer pin (voor een drukknop)
int val = 0; variabele voor het lezen van de Pinstatus
int pos1 = 1;
int pos2 = 0;
int x = 0;
int b = 0;
int y = 0;
int tv = 0;
int tv2 = 0;
lange previousMillis = 0; laatste keer LED werd bijgewerkt zal slaan
lange interval = 1100; interval waartegen knipperen (milliseconden)
char * msgs1 = {"een promotie is" ",", "u binnenkort","lachen is de","Live lang en", "hard lachen en", "goed eten en", "Een creatief", "Iemand", "Een vrolijk heart", "Seize the dag.", "Je bent", "Rijkdom is", "Happy keer", "Ik zie robots", "Smile and you", "geluk zal binnenkort"};
char * msgs2 = {"coming soon.", "Wees blij.", "beste geneeskunde.", "prosper.", "vaak lachen.", "make merry.", "geest is aan jou.", "loves you.", "is goed.", "","zeer gelukkig!", "snel yours.", "zijn vooruit.", "in uw toekomst.", "zal worden rijk.", "je volgen."};
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, OUTPUT); declareren van LED als de uitgang
pinMode (inPin, INPUT); drukknop declareren als input
pinMode(0,INPUT);
pinMode (6, OUTPUT);
pinMode (5, OUTPUT);
pinMode (3, OUTPUT);
pinMode (13, OUTPUT);
digitalWrite (13, hoge);
Serial.begin(9600);
randomSeed(analogRead(0));
}
void loop {}
digitalWrite (13, hoge);
LCD.init();
lcd.printIn ("Fortune Teller");
lcd.cursorTo (2, 0);
lcd.printIn ("Robot 3000");
delay(2000);
LCD.Clear();
lcd.cursorTo (1, 0);
lcd.printIn("Thinking");
for (int i = 0; ik < 3; i ++)
{
LCD.Print('.');
delay(400);
Animation();
}
lcd.cursorTo (1, 0);
LCD.Clear();
for (int i = 0; ik < 9; i ++)
{
pos2 = pos2 + 1;
Pos1 = pos1 + i;
int halen = random(NUM_MSGS);
int randy = random(1,10);
char * msg3 = msgs3;
lcd.printIn(msg3);
delay(300);
Als (pos2 > = 2) pos2 = 0;
Animation();
}
LCD.Clear();
lcd.cursorTo (1, 0);
lcd.printIn("Your");
lcd.cursorTo (2, 0);
lcd.printIn ("fortune is");
digitalWrite (6, hoge);
digitalWrite (5, hoge);
digitalWrite (3, hoge);
delay(1200);
for (int i = 0; ik < 3; i ++)
{
LCD.Print('.');
delay(300);
}
lcd.leftScroll (20, 50);
LCD.Clear();
Kies een willekeurige bericht uit de matrix
int korst = willekeurige (1,21) -10;
Als (korst == x)
{
zwoerd = korst + 1;
}
anders
{
zwoerd = random(rind);
}
x = zwoerd;
int randNumber = willekeurige (1, countof(msgs1));
char * msg1 = msgs1;
char * msg2 = msgs2;
lcd.printIn(msg1);
lcd.cursorTo (2, 0);
lcd.printIn(msg2);
delay(2500);
LCD.Clear();
int pick2 = random(NUM_MSGS2);
char * msg4 = msgs4;
lcd.cursorTo (1, 0);
strcpy (my_str, "number is");
strcat (my_str, msg4);
strcat (my_str, ".");
lcd.printIn ("uw lucky");
lcd.cursorTo (2, 0);
lcd.printIn(my_str);
delay(1200);
for (int i = 0; ik < 3; i ++) {}
LCD.Print('.');
delay(300);
}
delay(300);
lcd.leftScroll (20, 50);
LCD.Clear();
lcd.cursorTo (1, 0);
Val = digitalRead(inPin); lezen van de invoerwaarde
animation2();
}
VOID animation()
{
Als (ik = 1) digitalWrite (6, hoge); licht van de firstLED
Als (ik = 1) digitalWrite (5, laag); licht van de firstLED
Als (ik = 1) digitalWrite (3, laag); licht van de firstLED
delay(70);
Als (ik = 2) digitalWrite(6, LOW); licht van de firstLED
Als (ik = 2) digitalWrite(5, HIGH); licht van de firstLED
Als (ik = 2) digitalWrite(3, LOW); licht van de firstLED
delay(70);
Als (ik = 3) digitalWrite (6, laag); licht van de firstLED
Als (ik = 3) digitalWrite (5, laag); licht van de firstLED
Als (ik = 3) digitalWrite (3, hoge); licht van de firstLED
delay(70);
Als (ik = 9) digitalWrite (6, laag); licht van de firstLED
Als (ik = 9) digitalWrite (5, laag); licht van de firstLED
Als (ik = 9) digitalWrite (3, laag); licht van de firstLED
}
VOID animation2()
{
digitalWrite (13, hoge);
{}
Val = digitalRead(inPin); lezen van de invoerwaarde
Als (val == HIGH) {/ / controleren als de ingang hoog (knop uitgebracht is)
b = 0;
} else {}
b = 1;
y = 0;
TV = 0;
TV2 = 0;
digitalWrite (6, laag);
digitalWrite (5, laag);
digitalWrite (3, laag); / / schakelen LED ON
}
Als (millis() - previousMillis > interval) {}
previousMillis = millis(); Vergeet niet de laatste keer dat we afgedrukt
TV = tv + 1;
TV2 = tv2 + 1;
Als (tv == 1)
{
LCD.Clear();
lcd.printIn ("Fortune Teller");
digitalWrite (6, laag);
digitalWrite (5, hoge);
digitalWrite (3, laag);
}
Als (tv == 2)
{
lcd.cursorTo(2,0);
lcd.printIn ("Robot 3000");
digitalWrite (6, hoge);
digitalWrite (5, laag);
digitalWrite (3, laag);
}
Als (tv == 3 & & tv2! = 9 & & tv2! = 10)
{
LCD.Clear();
lcd.cursorTo(1,0);
lcd.printIn ("Push the button");
digitalWrite (6, hoge);
digitalWrite (5, laag);
digitalWrite (3, laag);
}
Als (tv == 4 & & tv2! = 9 & & tv2! = 10)
{
lcd.cursorTo(2,0);
lcd.printIn ("voor een fortuin!");
digitalWrite (6, laag);
digitalWrite (5, laag);
digitalWrite (3, hoge);
}
Als (tv2 == 7)
{
LCD.Clear();
lcd.cursorTo(1,0);
lcd.printIn ("uw fortuin");
digitalWrite (6, laag);
digitalWrite (5, hoge);
digitalWrite (3, laag);
}
Als (tv2 == 8)
{
lcd.cursorTo(2,0);
lcd.printIn ("wacht op je.");
digitalWrite (6, laag);
digitalWrite (5, hoge);
digitalWrite (3, laag);
TV = 0;
TV2 = 0;
}
}
} terwijl (b == 0);
}