Arduino Powered Fortune Teller (5 / 5 steg)
Steg 5: kod
Elektronisk "Fortune Cookie"
Skriven för en klassprojekt Jul 28 2014
#include #include
prog_char s1 [] PROGMEM = "Tryck på ME!"; prog_char s2 [PROGMEM] = "Det var inte fläsk."; prog_char s3 [PROGMEM] = "Kontrollera din dragkedja"; prog_char s4 [PROGMEM] = "Bout tid jag fick ut av att rutan"; prog_char s5 [PROGMEM] = "ditt favorie band suger"; prog_char s6 [PROGMEM] = "en vis man lyssnar på en låda"; prog_char s7 [PROGMEM] = "Oj, fel fortune."; prog_char s8 [PROGMEM] = "Äta mer Taco Bell"; prog_char s9 [PROGMEM] = "ZZZ... Im sovande"; prog_char s10 [PROGMEM] = "Du kommer att få en förmögenhet!"; prog_char s11 [PROGMEM] = "Inte slå"; prog_char s12 [PROGMEM] = "Lever länge och prosper"; prog_char s13 [PROGMEM] = "Fortunes M.I.A."; prog_char s14 [PROGMEM] = "Springa"; prog_char s15 [] PROGMEM = "hjälp! Im instängd. "; prog_char s16 [PROGMEM] = "404 Fortune hittades inte"; prog_char s17 [PROGMEM] = "Inte andas under vattnet"; prog_char s18 [PROGMEM] = "De gör din röv se stor"; prog_char s19 [PROGMEM] = "Zombies kommer"; prog_char s20 [PROGMEM] = "Ja, detta är krångligt."; prog_char s21 [PROGMEM] = "bäst är ändå att komma"; prog_char s22 [PROGMEM] = "Du lever bara en gång"; prog_char s23 [PROGMEM] = "Resor med ett öppet hjärta"; prog_char s24 [PROGMEM] = "Jag kan inte hjälpa, im en låda"; prog_char s25 [] PROGMEM = "Följ dina instinkter"; prog_char s26 [PROGMEM] = "Ha tålamod."; prog_char s27 [PROGMEM] = "Framgång är en resa"; prog_char s28 [] PROGMEM = "Gör eller inte gör." prog_char s29 [PROGMEM] = "ingen kan du"; prog_char s30 [] PROGMEM = "Köp den röda bilen"; prog_char s31 [PROGMEM] = "som vad du gör". prog_char s32 [PROGMEM] = "Vara trevligt"; prog_char s33 [PROGMEM] = "Om du vill det ta det"; prog_char s34 [] PROGMEM = "Aldrig spotta i vinden"; prog_char s35 [PROGMEM] = "Oroa dig inte om pengar"; prog_char s36 [] PROGMEM = "Följ dina instinkter"; prog_char s37 [] PROGMEM = "Välj dina strider"; prog_char s38 [PROGMEM] = "Wow! Ett hemligt meddelande! "; prog_char s39 [PROGMEM] = "Dont panik."; prog_char s40 [PROGMEM] = "Inte blinka"; prog_char s41 [PROGMEM] = "Du är en god vän"; prog_char s42 [] PROGMEM = "Sluta förhala"; prog_char s43 [PROGMEM] = "Du bör kontrollera FaceBook"; prog_char s44 [PROGMEM] = "Bara vara dig själv"; prog_char s45 [PROGMEM] = "Någons tittar"; prog_char s46 [PROGMEM] = "Handling snarare än att reagera";
initiera bibliotek med numrerar av gränssnittet stiften LiquidCrystal lcd (12, 11, 5, 4, 3, 2);
den här tabellen är i vanliga minne men har pekare / / som referens flash PROGMEM const char * str_tab [] = {s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16, s17, s18, s19, s20, s21, s22, s23, s24, s25, s26, s27, s28, s29, s30, s31, s32, s33, s34, s35, s36, s37, s38, s39, s40, s41, s42, s43 s44, s45, s46}; CONST int Number_of_fortunes = 46. #define Longest_fort 100 / / buffer storleken för meddelanden
osignerade långa räkningen = 0; CONST int buttonPin = 6; numrera av tryckknapp pin const int ledPin = 13. antal LED stift
void setup() {lcd.print ("Mystic Fortune Teller"); //set upp LCD; s antal kolumner och rader #define LCD_WIDE 16 #define LCD_LINES 2 lcd.begin(LCD_WIDE,LCD_LINES); / / Skriv ut ett meddelande till LCD-pinMode (ledPin, produktionen); digitalWrite (ledPin, låg); / / set LED av pinMode (buttonPin, ingång), digitalWrite (buttonPin, hög); / / set pullup på}
void loop() {/ / sätta din huvudsakliga kod här, för att köra flera gånger: om (BUTTON_PUSHED()) {digitalWrite (ledPin, hög); / / knappen feedback say_it();} medan (BUTTON_PUSHED()) fortsätta; / / vänta på knappen upp delay(50); / / fördröjning för att Dämpningstid digitalWrite (ledPin, låg); / / set LED av greve ++;} void say_it() {int thisrow; char str [Longest_fort], str2 [LCD_WIDE + 1]; / / temp lagring för fortune lcd.clear(); strcpy_P (str str_tab [count % Number_of_fortunes]); för (thisrow = 0; / / thelesser av (stringlines, LCD_LINES) thisrow < = min(((strlen(str)-1)/LCD_WIDE),LCD_LINES-1); thisrow ++) {lcd.setCursor(0,thisrow); / / Ställ markören till början av denna rad delay(50); / / ibland setCursor är långsam / / kopiera delsträng för raden, från start / / till mindre LCD längd eller slutet av strängen strncpy (str2, & str [thisrow * LCD_WIDE], min (LCD_WIDE , strlen(str)+1-(thisrow*LCD_WIDE))); str2 [LCD_WIDE] = 0; null avsluta delsträng lcd.print(str2); Visa den delay(10); {}} int BUTTON_PUSHED() {om (digitalRead(buttonPin) == låg) / / knappen drar med sig? tillbaka 1. / / Ja, det är sköt return(0); / / NOPE
}
----------------------------------------------------------------------------
Denna kod är mycket lätt att anpassa!
Om du behöver ändra svaren, eller antal svar se till att du gör det
Här...
den här tabellen är i vanliga minne men har pekare / / som referens flash PROGMEM const char * str_tab [] = { s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16, s17, s18, s19, s20, s21, s22, s23, s24, s25, s26, s27, s28, s29, s30, s31, s32, s33, s34, s35, s36, s37, s38, s39, s40, s41, s42, s43 s44, s45, s46 }; CONST int Number_of_fortunes =46. #define Longest_fort 100 / / buffer storleken för meddelanden