Étape 3: Écrire le code pour l’Arduino
J’ai codé mon Arduino pour prendre d’entrée à l’heure actuelle et l’heure de réveil souhaité. L’écran LCD affiche alors l’heure actuelle et le temps dont l’alarme a été réglée. Quand il était temps pour l’alarme s’éteigne, j’ai dit le servo de tourner, renverser la bouteille d’eau et laisser la gravité versez-la sur mon visage. Vous pouvez trouver mon code ici. Mon servo puis s’est brisé, je l’ai fait encore une fois avec un petit moteur. Le code est presque la même chose, mais vous pouvez le trouver ici.
Écriture du code de l’Arduino implique trois étapes fondamentales :
- Recevoir d’entrée de l’utilisateur au sujet de l’heure actuelle et l’heure de réveil souhaitée
- Suivre et afficher l’heure
- Verser l’eau au bon moment
1. pour recevoir l’entrée, j’ai l’Arduino en cours d’exécution dans une boucle qui attend de recevoir une combinaison de touches du clavier. Dans l’affirmative, l’Arduino vérifie si c’est un nombre. Si c’est le cas, il enregistre cela dans l’heure courante. Si l’entrée suivante est un nombre, il serait multiplier le premier chiffre par dix et ajouter le nouveau (entrée 1, 2, # donne 1 * 10 + 2 = 12). Si que l’entrée était #, il imprime : et l’utilisateur peut entrer les minutes. Je fais un processus similaire pour recevoir la minute actuelle. La bibliothèque que j’ai téléchargé à partir ici a été très utile. Je l’ai utilisé pour définir l’heure actuelle. J’ai reçu l’alarme d’entrée de la même manière et il vient de sauver.
2. la bibliothèque est super facile à utiliser pour garder la trace des et affichage de l’heure. Je l’ai fait dans le loop() ; partie de mon code. Toutes les dix secondes j’ai vérifier l’heure et l’imprimer à l’écran lcd, et si elle correspond à l’heure de l’alarme, puis j’appelle la fonction pour verser de l’eau.
3. c’est la partie la plus facile du code et le plus court. Elle est contenue dans la fonction wakeup() ; J’ai commencé le code en définissant mon servo à 0 degrés. Quand vient le temps de se réveiller, j’ai tourner jusqu'à 90 degrés et puisqu’il est relié à la coupe la coupe tourne aussi, et j’ai mouillé. Cinq secondes plus tard la coupe retourne à sa position verticale originale pour être prêt pour sa prochaine utilisation. Après que je me suis fait, mon servo est mort, donc j’ai eu haut la remplacer par un moteur à couple élevé hobby. dans la fonction de réveil j’ai ensuite appliqué une tension à la base des transistors, permettant courant de circuler à travers la rotation moteur snd, causant la coupe se répandre. L’utilisateur doit alors manuellement repousser jusqu'à la position de départ.
C’est juste une façon d’écrire que le code-It peut être fait de différentes manières. Par exemple, vous pourriez le faire pour vous seulement Réglez le temps une fois, puis ca re-régler l’alarme autant que vous le souhaitez. Ou vous pourriez faire aller comme une horloge à la place un réveil. N’hésitez pas à expérimenter avec lui et à partager !