Comment ajouter un commutateur et d'entrée des boutons à votre projet d'horloge Arduino

Pour votre projet Arduino Horloge, vous devez d'abord ajouter l'un des boutons-poussoirs et l'une des résistances, que vous utilisez comme entrée pour incrémenter les heures d'alarme. Les œuvres de bouton-poussoir permettant de + 5V pour être appliqués à la broche 7 quand il est pressé.

Lorsque le courant circule dans l'interrupteur, il rencontre la résistance, et prend la place de la voie facile de la masse à travers la broche 7 (il existe des connexions à la masse interne, au sein du microcontrôleur ATmega328 IC). Lecture Pin 7 avec le digitalRead () fonction retourne une valeur de HIGH (+ 5V).

image0.jpg

Quand il est pas enfoncée, PIN 7 est reliée à travers la résistance à la masse, par l'intermédiaire du rail au sol. Lecture PIN 7 avec le digitalRead () fonction retourne une valeur de bas (0V).

Maintenant, ajoutez le second commutateur et la résistance bouton-poussoir, qui incrémente les minutes. Il doit être relié à la broche numérique 8.

Enfin, ajoutez le commutateur à glissière, qui dispose de trois positions, et deux résistances. Vous pouvez voir que les connexions électriques pour l'interrupteur à glissière sont très similaires aux deux boutons-poussoirs. Mais parce qu'il est un curseur, il reste dans la position que vous mettez dedans.

Dans la position de gauche, il garde + 5V sur la broche numérique 10. Dans la bonne position, il maintient + 5V sur la broche numérique 10. Dans le centre, il ne fait pas de connexion, et les deux broches numériques sont connectés uniquement au rail de terre .




La lecture de ces broches, vous pouvez déterminer si l'horloge est Set Alarm Mode (Pin 6 est élevé), mode armé d'alarme (Pin 10 est élevée), ou tout simplement en mode Affichage de l'heure (pas connection- broches 6 et 10 sont faibles).

image1.jpg

Maintenant, ajoutez le code nécessaire pour lire et répondre au matériel. Vous avez besoin de quelques variables pour stocker l'état du système et de garder une trace du moment pour déclencher l'alarme. Dans la section de déclaration des variables, ajoutez le code suivant:

...DateTime maintenant booléen displayAlarmSet = faussement // Que nous sommes en mode alarme ou spectacle spectacle de temps défini modeboolean alarme = faussement // si l'alarme est actuellement happeningboolean armés = faussement // si l'alarme est armé ou notint alarmHrs = 12- // Vous pouvez régler l'heure de l'alarme dans le code, hereint alarmMins = 00-

La variable displayAlarmSet vous permet de basculer entre l'affichage de l'heure de l'horloge ou de montrer le temps d'alarme, que vous utilisez dans le updateDisplay () fonction, un peu plus tard. Vous pouvez utiliser l'interrupteur à glissière pour modifier la valeur de cette variable.

La “ alarme ” la variable garde la trace de si oui ou non l'alarme qui se passe actuellement, de sorte que vous pouvez sonner la sirène piézo-électrique, si nécessaire.

Vous devez également garder une trace du moment pour déclencher l'alarme. Cela se fait avec deux nombres entiers, alarmHrs et alarmMins. Si vous voulez régler l'heure d'alarme à partir du logiciel et non à partir des boutons, vous pouvez définir que, en changeant la valeur de départ de ces variables.

En comptant les deux boutons-poussoirs, et les deux Etats qui peuvent être définies par l'interrupteur à glissière, vous avez quatre entrées. Donc, vous avez besoin de quatre broches numériques pour les lire. Vous les utilisez pour l'entrée, ils doivent donc être activé dans le installer() partie de votre code. Vous aurez également utiliser la sirène piézo pour la sortie, plus tard, mais il peut être ajouté maintenant et ajoutez le code suivant:

// Entrée de l'utilisateur pour régler l'alarme CONST.TEMPS int alarmSetPin = 6- // Utilisé pour changer d'alarme réglée modeconst int incrementAlarmHrsPin = 7- // Utilisé pour incrémenter les heures d'alarme en alarme fixés modeconst int incrementAlarmMinsPin = 8- // Utilisé pour incrémenter le alarme minutes en alarme mis modeconst int piezoPin = 9- // Utilisé pour la piézoélectrique sounderconst int alarmArmedPin = 10 // utilisation pour permettre l'alarme se déclenche ... setup () {... lcd.clear () - / / Définir plusieurs broches pour l'entrée et outputpinMode (alarmSetPin, INPUT) -pinMode (incrementAlarmHrsPin, INPUT) -pinMode (incrementAlarmMinsPin, INPUT) -pinMode (alarmArmedPin, INPUT) -pinMode (piezoPin, SORTIE) -

Remarque, les ellipses (...) indiquent le code que vous avez ajouté plus tôt - pas besoin de répéter ici. Il ya cinq nouveaux entiers, qui gèrent les broches d'entrée. Ceux-ci ne changent pas au cours du programme de sorte qu'ils sont entier constantes.

Vous avez connecté le commutateur à glissière à broches 6 et 10 pour gérer soit réglage de l'alarme ou de l'armer pour aller au large. Vous avez connecté les boutons-poussoirs pour les broches 7 et 8. Chacun contrôle séparément incrémenter les heures et les minutes.

Vous ne pouvez incrémenter la hausse. Sinon, vous devez soit des boutons supplémentaires pour décrémenter heures et minutes ou une façon de basculer entre incrémentation et de décrémentation, qui serait inutilement compliqué. Enfin, ces broches sont tous utilisés pour l'entrée, de sorte qu'ils ont à définir explicitement à être utilisé pour l'entrée avec le pinMode () fonction.


» » » » Comment ajouter un commutateur et d'entrée des boutons à votre projet d'horloge Arduino