Turing larm för Arduino (7 / 13 steg)
Steg 7: Del 1 - koden
Koden använder sju olika medan loopar för varje meny. Inom vart och ett av dem samtidigt som loopar är om uttalanden och display kommandon. De sju menyerna är:
• Main menu
• Välj Ställ in alarm, ljusstyrka eller IO monitor
• Inställd alarmtid
• IO monitor
• Ljusstyrka
• Alarm är på; Stäng av?
• Larm math-menyn (detta är menyn när larmet går iväg)
När den enheten drivs upp, denna funktion loopar:
displayCurrentTime();
Denna funktion blir tiden från RTC och skriver det till LCD-skärmen i en konfiguration med två rader. Datumet visas centrerad på linje 1 och tiden är centrerad på rad två.
Ställa in larmet är enkelt: Använd upp-ned knapparna för att ändra tiden och vänster höger knapparna för att ändra mellan timme, minut och sekund. I framtiden kan jag öka varje minut och andra värdet av fem för enkelhet och lägga till blinkande pekare till vilken tid värde ändras.
När OK-knappen trycks, tiden och denna kodrad körs:
om (okDebounce == hög) {
alarmSetting = 1;
timePosition = 0;
mathValOne = random (11, 20);
mathValTwo = random (9, 15);
mathValThree = random (20, 150);
inputAnswer = (mathValOne * mathValTwo + mathValThree) - random (-35, 35);
Delay(20);
MenuPosition = 7.
Delay(100);
clearLCD();
Delay(500);
}
alarmSetting lagrar om larmet är på eller av med en boolesk variabel: 1 för på och 0 för off. Detta används i andra delar av koden för att kontrollera om larmet är på eller inte.
timePosition är helt enkelt en variabel används för att lagra vilket tidsvärde ändras (sekund, minut eller tid). Detta återställer det till 0 eller andra. (0 för andra, 1 minut och 2 timme).
De nästa tre raderna kod avgör det matematiska problemet. Det plockar ett slumpmässigt värde mellan värdena visas baserat på ett frö från randomSeed(analogRead(2)) i inställningarna.
inputAnswer är en variabel som lagrar vad användaren ingångarna som svar. Kodraden visas helt enkelt anger variabeln till ett värde som ligger nära det faktiska svaret.
De följande fem raderna kod rensar LCD-skärmen och ändrar menyn.