Étape 5: Code
Électronique « Fortune Cookie »
Écrite pour un projet de classe 28 juillet 2014
#include #include
prog_char s1 [] PROGMEM = "Presse ME!" ; prog_char s2 [] PROGMEM = "Ce n’était pas porc." ; prog_char s3 [] PROGMEM = "V├⌐rifier votre fermeture à glissière" ; prog_char s4 [] PROGMEM = "Temps de combat je suis sorti de cette zone" ; prog_char s5 [] PROGMEM = "votre bande mettre sucks" ; prog_char s6 [] PROGMEM = "un homme sage écoute une boîte" ; prog_char s7 [] PROGMEM = "Oups, mauvaise fortune." ; prog_char s8 [] PROGMEM = "Manger plus Taco Bell" ; prog_char s9 [] PROGMEM = "ZZZ... Im en sommeil"; prog_char s10 [] PROGMEM = "Vous recevrez une fortune!" ; prog_char s11 [] PROGMEM = "Ne pas tourner autour" ; prog_char s12 [] PROGMEM = "Longue vie et prospérité" ; prog_char s13 [] PROGMEM = "Fortunes M.I.A." ; prog_char s14 [] PROGMEM = "Run." ; prog_char s15 [] PROGMEM = "au secours ! Im pris au piège. "; prog_char s16 [] PROGMEM = "Fortune 404 non trouvé" ; prog_char s17 [] PROGMEM = "Ne pas respirer sous l’eau" ; prog_char s18 [] PROGMEM = "Ils font ton cul regarder grand" ; prog_char s19 [] PROGMEM = "Zombies are coming" ; prog_char s20 [] PROGMEM = "Eh bien, c’est gênant." ; prog_char s21 [] PROGMEM = "le meilleur est encore à venir" ; prog_char s22 [] PROGMEM = "Vous seulement vivez qu’une fois" ; prog_char s23 [] PROGMEM = "Voyage avec un cœur ouvert" ; prog_char s24 [] PROGMEM = "Je ne peux m’empêcher, im une boîte" ; prog_char s25 [] PROGMEM = "Suivez votre instinct" ; prog_char s26 [] PROGMEM = "Soyez patient." ; prog_char s27 [] PROGMEM = "Le succès est un voyage" ; prog_char s28 [] PROGMEM = "Faire ou pas." ; prog_char s29 [] PROGMEM = "Personne ne peut vous être" ; prog_char s30 [] PROGMEM = "Acheter la voiture rouge" ; prog_char s31 [] PROGMEM = "Like what you do" ; prog_char s32 [] PROGMEM = « Être gentil » ; prog_char s33 [] PROGMEM = "Si vous voulez il considérer" ; prog_char s34 [] PROGMEM = "Jamais cracher dans le vent" ; prog_char s35 [] PROGMEM = "Ne pas s’inquiéter argent" ; prog_char s36 [] PROGMEM = "Suivez votre instinct" ; prog_char s37 [] PROGMEM = "Choisir ses combats" ; prog_char s38 [] PROGMEM = "Wow ! Un message secret! "; prog_char s39 [] PROGMEM = "Dont panic." ; prog_char s40 [] PROGMEM = "Ne pas cligner des yeux" ; prog_char s41 [] PROGMEM = "Vous êtes un bon ami" ; prog_char s42 [] PROGMEM = "ArrΩter le traîner les choses" ; prog_char s43 [] PROGMEM = "Vous devez vérifier FaceBook" ; prog_char s44 [] PROGMEM = "Just be Myself" ; prog_char s45 [] PROGMEM = "Someones watching" ; prog_char s46 [] PROGMEM = « Loi plutôt que réagir » ;
initialiser la bibliothèque avec les numéros des broches interface lcd innovente (12, 11, 5, 4, 3, 2) ;
ce tableau est dans la mémoire ordinaire mais a des pointeurs / / qui référence le flash char const PROGMEM * [] 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 / / taille pour les messages du tampon
unsigned long nombre = 0 ; const int buttonPin = 6 ; le nombre de la tige poussoir const int ledPin = 13 ; le nombre de l’axe de la LED
void setup() {lcd.print ("Mystic Fortune Teller"); //set vers le haut de l’écran LCD; s nombre de colonnes et lignes #define LCD_WIDE 16 #define LCD_LINES 2 lcd.begin(LCD_WIDE,LCD_LINES); / / imprimer un message à l’écran LCD pinMode (ledPin, sortie); digitalWrite (ledPin, LOW); / / définir la LED éteinte pinMode (buttonPin, INPUT); digitalWrite (buttonPin, HIGH); / / set pullup sur}
void loop() {/ / mettre votre code principal ici, pour exécuter à plusieurs reprises : si (BUTTON_PUSHED()) {digitalWrite (ledPin, HIGH); / / bouton feedback say_it();} tandis que (BUTTON_PUSHED()) continuer; / / attendre que le bouton vers le haut de delay(50); / / retard pour debounce digitalWrite (ledPin, basse); / / définir la LED éteinte count ++;} void say_it() {int thisrow ; char str [Longest_fort], str2 [LCD_WIDE + 1]; / / temp de stockage pour fortune lcd.clear() ; strcpy_P (str str_tab [Nbre % Number_of_fortunes]) ; pour (thisrow = 0; / / thelesser de (stringlines, LCD_LINES) thisrow < = min(((strlen(str)-1)/LCD_WIDE),LCD_LINES-1) ; thisrow ++) {lcd.setCursor(0,thisrow); / / définir le curseur au début de cette ligne delay(50); / / setCursor est parfois lente / / copy sous-chaîne pour cette ligne, du début / / à moins de longueur de ligne LCD ou fin de chaîne strncpy (str2, & str [thisrow * LCD_WIDE], min (LCD_WIDE , strlen(str)+1-(thisrow*LCD_WIDE))) ; str2 [LCD_WIDE] = 0 ; valeur null résilier sous-chaîne lcd.print(str2) ; afficher delay(10) ; int}} BUTTON_PUSHED() {si (digitalRead(buttonPin) == faible) / / bouton tire vers le bas? return 1; / / Oui, il est poussé return(0); / / NOPE
}
----------------------------------------------------------------------------
Ce code est très facile à personnaliser !
Si vous devez modifier les réponses, ou nombre de réponses Assurez-vous que vous le faites
ici...
ce tableau est dans la mémoire ordinaire mais a des pointeurs / / qui référence le flash char const PROGMEM * [] 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 / / taille pour les messages du tampon