Stap 5: Code
Elektronische "Fortune Cookie"
Geschreven voor een klassenproject 28 Jul-2014
#include #include
prog_char s1 [PROGMEM] = "Druk op ME!"; prog_char s2 [PROGMEM] = "Dat was niet varkensvlees."; prog_char s3 [PROGMEM] = "Controleer uw rits"; prog_char s4 [PROGMEM] = "Bout tijd kreeg ik uit die doos"; prog_char s5 [PROGMEM] = "uw favorie band zuigt"; prog_char s6 [PROGMEM] = "een wijs man luistert naar een vak"; prog_char s7 [PROGMEM] = "Oeps, verkeerde fortuin."; prog_char s8 [PROGMEM] = "Eet meer Taco Bell"; prog_char s9 [PROGMEM] = "ZZZ... Im slapen"; prog_char s10 [PROGMEM] = "Ontvangt u een fortuin!"; prog_char s11 [PROGMEM] = "Niet omdraaien"; prog_char s12 [PROGMEM] = "Leven lang en voorspoedig"; prog_char s13 [PROGMEM] = "Fortunes M.I.A."; prog_char s14 [PROGMEM] = "Uitvoeren"; prog_char s15 [PROGMEM] = "Help! Im gevangen. ";" prog_char s16 [PROGMEM] = "404 fortuin niet gevonden"; prog_char s17 [PROGMEM] = "Niet inademen onderwater"; prog_char S18 Verpakking voorzichtig [PROGMEM] = "Ze maak je kont kijken grote"; prog_char s19 [PROGMEM] = "Zombies komen"; prog_char s20 [PROGMEM] = "Goed, dit is lastige."; prog_char s21 [PROGMEM] = "het beste moet nog komen"; prog_char s22 [PROGMEM] = "You only live once"; prog_char s23 [PROGMEM] = "Reizen met een open hart"; prog_char s24 [PROGMEM] = "Ik kan niet helpen, im een doos"; prog_char s25 [PROGMEM] = "Follow uw instincten"; prog_char s26 [PROGMEM] = "Wees geduldig."; prog_char s27 [PROGMEM] = "Succes is een reis"; prog_char s28 [PROGMEM] = "Doen of niet doen."; prog_char s29 [PROGMEM] = "Niemand kan niet u"; prog_char s30 [PROGMEM] = "De rode auto kopen;" prog_char s31 [PROGMEM] = "als wat je doet"; prog_char s32 [PROGMEM] = "Aardig zijn"; prog_char s33 [PROGMEM] = "Als u wilt het nemen"; prog_char s34 [PROGMEM] = "Never spugen in de wind"; prog_char s35 [PROGMEM] = "Dont worry over geld"; prog_char s36 [PROGMEM] = "Follow uw instincten"; prog_char s37 [PROGMEM] = "Kies uw gevechten"; prog_char s38 [PROGMEM] = "Wow! Een geheime boodschap! ";" prog_char s39 [PROGMEM] = "Dont paniek."; prog_char s40 [PROGMEM] = "Dont blink"; prog_char s41 [PROGMEM] = "Je bent een goede vriend"; prog_char s42 [PROGMEM] = "Stop procrastinating"; prog_char s43 [PROGMEM] = "U moet controleren FaceBook"; prog_char s44 [PROGMEM] = "Wees jezelf"; prog_char s45 [PROGMEM] = "Iemands watching"; prog_char s46 [PROGMEM] = "Act rather than reageren";
initialiseren van de bibliotheek met de nummers van de pennen van de interface LiquidCrystal lcd (12, 11, 5, 4, 3, 2);
deze tabel is in gewone geheugen maar heeft pointers / / die verwijst naar de flash PROGMEM const char * [str_tab] = {s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16, s17, S18 Verpakking voorzichtig, 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 grootte voor berichten
Lange telling unsigned = 0; Const int buttonPin = 6; het nummer van de drukknop pin const int ledPin = 13; het nummer van de LED-pin
void setup {lcd.print ("Mystic Fortune Teller"), de //set van het LCD-scherm; s aantal kolommen en rijen #define LCD_WIDE 16 #define LCD_LINES 2 lcd.begin(LCD_WIDE,LCD_LINES); / / Print een bericht naar de LCD-pinMode (ledPin, OUTPUT); digitalWrite (ledPin, laag); / / set de LED uit pinMode (buttonPin, INPUT); digitalWrite (buttonPin, hoge); / / set pullup op}
void loop {/ / zet uw belangrijkste code hier, om het herhaaldelijk uitvoeren: als (BUTTON_PUSHED()) {digitalWrite (ledPin, hoge); / / button feedback say_it();} terwijl (BUTTON_PUSHED()) blijven; / / wachten op de knop omhoog delay(50); / / vertraging om debounce van digitalWrite (ledPin, laag); / / set de LED uit count ++;} void say_it() {int thisrow; str [Longest_fort], str2 char [LCD_WIDE + 1]; / / temp opslag voor fortune lcd.clear(); strcpy_P (str str_tab [graaf % Number_of_fortunes]); voor (thisrow = 0; / / thelesser van (stringlines, LCD_LINES) thisrow < = min(((strlen(str)-1)/LCD_WIDE),LCD_LINES-1); thisrow ++) {lcd.setCursor(0,thisrow); / / set cursor naar het begin van deze rij delay(50); / / setCursor is soms traag / / kopiëren van subtekenreeks voor deze regel, vanaf begin / / mindere van de lengte van de lijn van de LCD of einde van de tekenreeks strncpy (str2, & str [thisrow * LCD_WIDE], min (LCD_WIDE , strlen(str)+1-(thisrow*LCD_WIDE))); str2 [LCD_WIDE] = 0; Null beëindigen subtekenreeks lcd.print(str2); weergeven van het delay(10); }} int BUTTON_PUSHED() {als (digitalRead(buttonPin) == LOW) / / knop naar beneden trekt? terug 1; / / Ja, het wordt geduwd return(0); / / NOPE
}
----------------------------------------------------------------------------
Deze code is heel eenvoudig om te passen!
Als u wilt wijzigen de reacties, of aantal reacties zorg ervoor dat u doen
hier...
deze tabel is in gewone geheugen maar heeft pointers / / die verwijst naar de flash PROGMEM const char * [str_tab] = { s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16, s17, S18 Verpakking voorzichtig, 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 grootte voor berichten