Stap 2: codering
De Raad sluit aan op de PC en beginnen met coderen.
De code wordt EEPROM gebruikt voor het opslaan van de gegenereerde nummers, dus er geen dezelfde nummers in de getrokken nummers op het scherm zullen.
Beginnen met inbegrip van onderdelen en globale variabelen.
#include #include #include "rgb_lcd.h"const int numNumbers = 7; const int buttonPin = 7;rgb_lcd lcd;const int colorR = 255; const int colorG = 0; const int colorB = 0;int numbers[numNumbers];boolean isInit = false; boolean lcdNeedsRefreshed = false; boolean isFirstButtonPush = true;
Vervolgens gaan tot setup. Ik omvatte een kleine intro van de instellingen die u wat vertelt te doen.
void setup() { pinMode(buttonPin, INPUT_PULLUP); int eeprom=EEPROM.read(0); eeprom+=1; EEPROM.write(0, eeprom); randomSeed(eeprom); lcd.begin(16, 2); lcd.home(); lcd.clear(); lcd.setRGB(colorR, colorG, colorB); lcd.setRGB(255,255,255); lcd.setCursor(0,0); lcd.print("HOLD FINGER ON"); lcd.setCursor(0,1); lcd.print("THE BUTTON"); delay(3000); lcd.clear(); }
Vervolgens naar de lus. De lus gebruikt paar subroutines die balg worden gedaan.
void loop(){ if(isFirstButtonPush){ readButtonPush(); if(!isInit){ isInit = true; } }else{ readButtonPush(); if(lcdNeedsRefreshed){ lcd.home(); lcd.clear(); printNumbersToLCD(); lcdNeedsRefreshed = false; delay(50); } lcd.setRGB(50,255,11); } delay(200); }void readButtonPush(){ int reading = digitalRead(buttonPin); lcd.scrollDisplayLeft(); lcd.setCursor(0,1); lcd.print(" Winning numbers! Or not."); if(reading == LOW){ generateRandomNumbers(); isFirstButtonPush = false; lcdNeedsRefreshed = true; } }
Tot slot de subroutines die ik eerder al noemde.
void generateRandomNumbers(){ for(int i = 0; i < numNumbers; i++){ numbers[i] = nextRandomNumber(); } }int nextRandomNumber(){ int nextRandom = random(1,39); boolean isDuplicate = false; for(int i = 0; i < numNumbers; i++){ if(nextRandom == numbers[i]) isDuplicate = true; } if(isDuplicate) return nextRandomNumber(); return nextRandom; }void printNumbersToLCD(){ lcd.setCursor(0,0); for(int i = 0; i < numNumbers; i++){ if(numbers){ lcd.print(numbers[i]); } if(i != 6) lcd.print("-"); } }
Hebt u vragen gewoon vragen. Ik zal proberen ze te beantwoorden.