Stap 7: Deel 1 - de Code
De code gebruikt zeven verschillende tijdens loops voor elk menu. Binnen elk van deze tijdens loops zijn als verklaringen en display opdrachten. De zeven van de menu's zijn:
• Main menu
• Kies set alarm, helderheid of IO monitor
• Set alarmtijd
• IO monitor
• Brightness control
• Alarm is Uitschakelen?
• Alarm math menu (dit is het menu wanneer het alarm afgaat)
Wanneer de het apparaat is ingeschakeld, deze functie lussen:
displayCurrentTime();
Deze functie wordt de tijd van de RTC en schrijft het naar het LCD-scherm in een configuratie met twee-line. De datum wordt weergegeven gecentreerd op lijn 1 en de tijd is gecentreerd op lijn twee.
Het instellen van het alarm is eenvoudig: gebruik de knoppen omhoog / omlaag om de tijd en de links-rechts knoppen om tussen uur, minuut en seconde. Ik zou kunnen in de toekomst elke minuut en de tweede waarde verhoogd door vijf voor eenvoud en toevoegen van knipperende cursors aan welke tijd waarde wordt gewijzigd.
Wanneer op de knop OK wordt gedrukt, de tijd is ingesteld en deze coderegel wordt uitgevoerd:
als (okDebounce == HIGH) {}
alarmSetting = 1;
timePosition = 0;
mathValOne = willekeurige (11, 20);
mathValTwo = willekeurige (9, 15);
mathValThree = willekeurige (20, 150);
inputAnswer = (mathValOne * mathValTwo + mathValThree) - random (-35, 35);
vertraging(20);
MenuPosition = 7;
delay(100);
clearLCD();
delay(500);
}
alarmSetting slaat of het alarm wordt veroorzaakt in- of uitschakelen door een Boole-variabele: 1 voor op, en 0 voor uitschakelen. Dit wordt gebruikt in andere delen van de code om te controleren of het alarm ingeschakeld of niet is.
timePosition is gewoon een variabele gebruikt om op te slaan welke tijdwaarde wordt gewijzigd (tweede, minuut of tijd). Hierbij wordt het opnieuw ingesteld op 0, of tweede. (0 voor seconde, 1 minuut en 2 uur).
De volgende drie coderegels bepaalt de wiskunde probleem. Het pakt een willekeurige waarde tussen de waarden weergegeven op basis van een zaad uit randomSeed(analogRead(2)) in de setup.
inputAnswer is een variabele die wat de gebruikersinvoer worden opgeslagen als een antwoord. De regel code getoond wordt gewoon de variabele ingesteld op een waarde die dicht bij de werkelijke antwoord.
De volgende vijf lijnen van code wist het LCD-scherm en het menu verandert.