Étape 8: Partie 2 - le Code
Après que l’heure de l’alarme est définie, la boucle vérifie constamment si l’heure de l’alarme est égal au temps réel avec cette ligne de code :
si (alarmSetting == 1 & & alarmSecond == now.second() & & alarmMinute == now.minute() & & alarmHour == now.hour() )
Le problème avec cette ligne, c’est qu’il ne vérifie pas pour la date, alors que l’alarme se déclenche dans les 24 heures. Pour ma demande, c’est suffisant, mais si vous avez besoin régler des alarmes pendant plus d’une journée plus tard ajouter une fonction de la date fixée.
Lorsque l’alarme se déclenche, cette ligne de code s’exécute :
alarmNoiseOn() ; moveLineTwo() ; if(debounceIncrease == High) {}
realAnswer = mathValOne * mathValTwo + mathValThree ;
moveLineOne() ;
Serial.Print ("Hello!") ; message de réactivation
Serial.Print(mathValOne) ;
Serial.Print("*") ;
Serial.Print(mathValTwo) ;
Serial.Print("+") ;
Serial.Print(mathValThree) ;
Serial.Print ("=") ;
Serial.Print(inputAnswer) ;
Serial.Print("?") ;
Delay(100) ;
inputAnswer ++ ;
}
if(debounceDecrease == High) {}
inputAnswer--;
}
AlarmNoise sur est une fonction de tonalité qui boucle le buzzer dans un motif familier "alarme ". realAnswer stocke la réponse réelle qui éteint l’alarme. Les deux dernières fonctions vérifient si les boutons haut ou bas ont été enfoncées, qui à son tour modifie la valeur d’entrée.
Lorsque vous appuyez sur le bouton OK, le code vérifie si la réponse d’entrée est égale à la réponse :
if(digitalRead(buttonOK) == HIGH & & inputAnswer == realAnswer)
Si c’est le cas, noTone est appelé (s’éteint le vibreur) et toutes les variables sont remis à 0. Un message de réactivation s’affiche pendant cinq secondes, puis l’alarme revient au menu principal de l’heure.
Delay(500) ;
noTone(9) ;
clearLCD() ;
alarmSetting = 0 ;
moveLineOne() ;
Serial.Print ("Bonjour!") ;
Delay(5000) ;
MenuPosition = 0 ;
mathValOne = 0 ;
mathValTwo = 0 ;
mathValThree = 0 ;
alarmSecond = 0 ;
alarmMinute = 0 ;
alarmHour = 0 ;
Si la réponse d’entrée ne correspond pas (! =) à la réponse réelle, puis les valeurs mathématiques sont réinitialisés à une valeur aléatoire différente, donnant à l’utilisateur un autre problème à résoudre.