» Électronique » Arduino »Horloge binaire avec alarme et minuterie sur Arduino Uno

Horloge binaire avec alarme et minuterie sur Arduino Uno


Ayant reçu quelques planches Arduino, et divers composants radio pour se familiariser avec les microcontrôleurs, l'auteur a décidé de faire quelque chose d'intéressant et en même temps utile. Ayant en stock un grand nombre de LED, l'idée est venue de créer une horloge binaire.

Côté électronique, une horloge binaire n'est pas particulièrement compliquée, mais l'auteur a compliqué la tâche et a décidé de ne pas enregistrer les boutons et les LED. Initialement, le projet consistait à utiliser 22 LED, 6 boutons et un tweeter. Il y avait aussi une idée d'assembler une montre sur l'Arduino Mega en raison d'un plus grand nombre de broches, mais les registres à décalage 74HC595 se sont avérés être un salut.

Matériaux:
- Arduino Uno
- 2 planches à pain pleine grandeur
- LED rouges 7 pcs
- LED vertes 7 pcs
- LED bleues 6 pcs
- 2 LED jaunes et blanches
- Résistances 220 ohms 25 pcs
- Buzzer piézo 1 pc
- 6 boutons tactiles
- Registres de sortie à décalage 74HC595 en boîtier DIP-16 3 pièces
- Fils de connexion 90 pcs
- Module d'horloge en temps réel basé sur la puce DS1307 RTC

Comment tout fonctionnera.
Il existe environ 10 types d'horloges binaires. Certains affichent l'heure au format décimal binaire (BCD), d'autres sous forme de nombres binaires. Comme l'auteur n'aime pas particulièrement la montre BCD, il a décidé de faire son pur binaire. Certaines personnes ont du mal à lire, mais la différence n'est pas grande, car la traduction des nombres du binaire au décimal est facile. Une condition préalable pour le créateur de la montre était également une indication des secondes sur la montre.

De plus, la montre possède 6 boutons:
Set - est responsable du mode de réglage de l'horloge / alarme et de l'enregistrement du paramètre dans le mode de réglage.
Mode - responsable de la commutation entre les modes horloge, alarme et minuterie.
Haut - dans le réglage de l'horloge / alarme / minuterie, augmente le paramètre d'une unité. Dans le réveil et la minuterie, il est chargé d'activer et de désactiver le mode sélectionné. Lorsqu'un signal est déclenché, il désactivera le signal d'alarme / minuterie.
Bas - dans le réglage de l'horloge / alarme / minuterie, il diminuera le paramètre d'une unité. La minuterie le mettra en pause sans réinitialiser le compte à rebours. Lorsque l'alarme se déclenche, elle transfère le signal pendant 5 minutes.
24/12 - changez le format de l'heure.
Dim - responsable de l'allumage et de l'extinction des LED (lorsque les LED sont éteintes, les boutons restants cessent de fonctionner).
Diagramme de positionnement des LED:
Horloge binaire avec alarme et minuterie sur Arduino Uno


Connexion des composants
L'auteur connectera toutes les LED en série et avec une résistance. La résistance est soudée à l'une des bornes des LED, peu importe laquelle. Les LED seront connectées via des registres à décalage, cette puce possède 16 contacts.Ce nombre de broches vous permet d'utiliser un grand nombre de broches, ne prenant que 3 broches sur l'Arduino.

Brochage du registre à décalage 74HC595:
Q0-Q7 sont les résultats du registre auquel les LED seront connectées.
Vcc - une broche d'alimentation 5V lui sera appliquée.
GND - masse connectée à GND sur Arduino.
OE - la broche est responsable de l'activation inversée des broches, mais elle ne sera pas utilisée, elle est simplement court-circuitée à la masse.
MR est un effacement de registre inversé, il n'a pas besoin d'être contrôlé, il sera donc connecté à une alimentation 5V.
ST_CP - la broche est responsable de la mise à jour de l'état du registre. Lors de l'enregistrement de l'état, il est nécessaire de lui appliquer LOW, après l'enregistrement - HIGH, pour mettre à jour l'état des sorties. Il doit être connecté à une broche sur l'Arduino. Vous pouvez connecter cette broche dans trois registres en parallèle.
SH_CP - broche, responsable du décalage de 1 bit du registre. Il doit être connecté à une broche sur l'Arduino. Ils sont connectés sur des microcircuits également en parallèle.
DS - des données sont envoyées à cette broche, elles sont connectées à la broche de l'Arduino.
Q7 '- cette broche est utilisée pour la connexion en cascade avec d'autres registres 74HC595.

Schéma de câblage:


Le buzzer piézo sera connecté à la troisième broche Arduino en série avec la résistance. Avant d'inclure le tweeter dans le circuit, l'auteur a examiné les broches supportant le PWM, car cela est obligatoire pour elle. Sur l'Arduino Uno, PWM prend en charge 3, 5, 6, 9, 10 et 11 broches.


Les boutons sont connectés à l'aide de résistances intégrées à l'Arduino, avec un côté des boutons connecté à la terre et l'autre aux broches Arduino.


Ainsi, la conception finale ressemble:


Construire sur une planche à pain
Après avoir acquis des détails supplémentaires, l'auteur a commencé à assembler le projet sur une planche à pain selon les plans. L'apparence était sur le point d'être attendue, car la planche à pain limite la liberté dans le placement des composants, et les fils en saillie n'ont pas créé un plaisir esthétique. Mais la planche à pain est après tout destinée aux modèles de planche à pain, mais pas aux appareils finis.


Code de programme.
Ayant un bon sens de la programmation, l'auteur a décidé d'écrire du code lui-même, sans utiliser les développements des autres. La première étape a été d'écrire un sous-programme, il est responsable de faire clignoter toutes les diodes et de donner le signal piézoélectrique lorsqu'il est allumé. Cette fonction permet de vérifier l'intégrité du circuit, similaire à celle implémentée sur de nombreux appareils.

Le croquis est sorti assez grand, alors vous pouvez considérer ses principales caractéristiques.

Travail LED.
Étant donné que les LED sont accessibles via le registre à décalage, tout d'abord, il était nécessaire de mettre en œuvre plus de routines pour les LED. Pour un fonctionnement plus facile avec les diodes, un certain nombre de fonctions supplémentaires ont été implémentées. Divers effets d'animation de diodes sont implémentés. Lorsque l'horloge n'est pas réglée, les diodes responsables des heures et des minutes commencent à clignoter (comme une horloge normale clignote lorsqu'elle n'est pas réglée). Les LED responsables des secondes ont également leur propre animation, la diode peut fonctionner à gauche et à droite en mode alarme ou en mode réglage d'horloge.

Boucle principale.
Le programme est configuré pour fonctionner comme suit: l'horloge affiche des informations en fonction de l'état actuel et change son état en fonction de l'utilisation des boutons et des événements. Tout cela ressemble à une quantité considérable de conditions imbriquées. L'état des diodes est mis à jour à chaque fois après avoir vérifié l'état des minuteries et des boutons avec un appel à leur gestionnaire.

En outre, l'auteur a fait un excellent travail pour le bon fonctionnement des boutons d'entrée et des minuteries. Le code source de l'esquisse peut être téléchargé sous l'article.


Lancer la mise en page
Après avoir allumé le projet, à première vue, l'appareil a fonctionné correctement et de manière stable. Mais l'auteur a trouvé un défaut, l'horloge était en retard d'une seconde par heure, pendant longtemps ce serait une grosse erreur.


Après avoir étudié ce problème, il a été constaté que l'Arduino Uno d'origine utilise un résonateur en céramique et qu'il manque de précision pour mesurer le temps sur de longues périodes. La solution la plus rationnelle était d'acheter une horloge en temps réel, et en raison de ce module, l'heure sur l'horloge ne s'égarera pas lorsqu'elle est éteinte. L'auteur a acheté le module Grove RTC de Seeed Studio. C'est une planche finie avec une puce d'horloge. L'auteur a connecté les broches du module SDA et SCL à l'Arduino sur les broches A4 et A5, GND à la masse. Étant donné que l'alimentation 5 V est occupée par la carte d'horloge, il n'y avait aucun endroit pour connecter le module. L'auteur a décidé d'alimenter le module à partir d'une des broches numériques, qui sera constamment alimentée.De plus, l'auteur devait modifier le code source et ajouter une bibliothèque d'horloges en temps réel.


Assemblage de la montre
Après avoir terminé un long travail sur le code, il est temps de donner à l'appareil un aspect complet et de le transférer de la planche à pain à la carte de circuit imprimé. Tout d'abord, il fallait faire le câblage de la carte. Fritzing a été utilisé pour cela, car l'auteur avait déjà une idée de l'apparence de la montre et a construit un schéma de l'appareil. L'auteur a également tracé manuellement le tableau, cela a pris beaucoup de temps.
Projet de production de circuits imprimés:


La fabrication de PCB a été commandée en Chine. Seeed Studio propose un service de carte PCB Fusion. Grâce à Fritzing, le fichier a été exporté au format Extended Gerber, de nombreux fabricants de cartes y travaillent. Deux semaines plus tard, l'auteur a reçu par la poste les frais tant attendus.


Il ne restait plus qu'à souder déjà un peu de pièces poussiéreuses sur la carte. Le résultat final après la soudure était bien meilleur que la disposition sur la planche à pain.


L'auteur du projet a travaillé dur pendant longtemps et a obtenu ce qu'il voulait - une horloge binaire unique avec une minuterie et un réveil. Grâce au compartiment à piles, la montre peut être placée n'importe où. Arduino a répondu aux attentes et a complètement fait face à la tâche.

binclock-master.zip [23,53 Kb] (téléchargements: 175)
10
10
10

Ajoutez un commentaire

    • souriresouritxaxaokne sais pasYahoonea
      patronse gratterfououioui-ouiagressifsecret
      désolédansedanse2danse3pardonaiderles boissons
      arrêteramisbonbonsifflerévanouirla langue
      fumerapplaudircraydéclarermoqueurdon-t_mentiontélécharger
      chaleurirritérire1mdaréunionmasquagenégatif
      not_ipop-cornpunirlireeffrayerfait peurrecherche
      railleriemerci_vousçato_clueumnikaigud'accord
      mauvaisabeilleblack_eyeblum3rougirse vanterennui
      censuréplaisanteriesecret2menacervictoireyusun_bespectacled
      shokrespektlolprévalubienvenuekrutoyya_za
      ya_dobryiaidene_huliganne_othodifludinterdirefermer

Nous vous conseillons de lire:

Donnez-le au smartphone ...