Étape 14 : Électronique - pour codeur
Jusqu'à présent, les ajustements apportés à la circulation au moyen d’Arduino code ont réussi à maintenir l’horloge mécanique en ligne avec l’horloge RTC. Il y a quelque chose qui manque encore. Quid des pannes de courant ?
L’horloge RTC possède une batterie de secours qui maintient le temps pendant des mois sans alimentation externe. Toutefois, l’horloge mécanique s’arrête lorsque la coupure de l’alimentation électrique et reprendra à partir de cette position après la puissance revient.
Le code vérifie que l’aiguille des secondes est entièrement synchronisée avec l’horloge électronique, mais les deux autres mains sera éteint, loin de peut-être.
Ratisser mon cerveau pendant un certain temps, je suis venu avec une autre idée.
Si on pouvait dire l’Arduino où les mains se trouvent en fait, qu'il pouvait exécuter l’horloge rapide vers l’avant ou vers l’arrière jusqu'à ce que l’horloge mécanique est, encore une fois, aligné avec son maître électronique.
OK, nous avons un écran OLED affiche que nous permettront d’utiliser à cette fin. Il y a trois sections principales dans la boucle de l’Arduino. Une section actionne le moteur et procède aux ajustements fines à l’aiguille des secondes. Une autre section est utilisée pour indiquer l’Arduino où se trouvent entre les mains. La troisième section effectue le réglage de l’étendue de l’horloge mécanique. Langue de l’Arduino (C++) ne pas avoir une instruction GoTo. Donc, nous utilisons les drapeaux qui font un article du code pour être ignorés ou exécuter.
Lorsque le système démarre, il est supposé que l’horloge n’est pas montrer le temps correct. Trois boutons sur le boîtier de commande sont maintenant actives. L’afficheur indique trois emplacement où il s’attend que l’utilisateur d’entrer les valeurs actuelles pour l’heure, minute et seconde. Un seul bouton déplace la « zone active » de l’heure à la minute et la seconde. Le deuxième bouton avance les chiffres de 0 à 11 ou 0 à 59.
Enfin, le troisième bouton quitte ces paramètres, calcule l’erreur et provoque une section de code à exécuter lorsque les mains circulent rapidement jusqu'à ce qu’ils sont à la bonne position. Certains bricolage devait être fait pour s’occuper de la conversion de 24 à 12 heures et le traitement de l’heure 12. Lorsque la correction a été calculée, il est supposé que l’horloge sera ajusté instantanément.
Bien sûr, ce n’est pas vrai. Il faut du temps pour faire le réglage. J’ai mesuré cette fois-ci et ajouté un facteur de fudge à la routine de l’ajustement. Quelque sorte, cela a fonctionné aussi longtemps que la main a dû être changée seulement pendant une courte période.
Il n’y a plus à venir - Etape suivante