Etape 11 : Tentative de sauvetage deux
Comme nous le savons, il faut théoriquement 8 impulsions pour le moteur pas à pas pour faire pivoter le deuxième arbre de 6 degrés. Nous savons aussi que ce qui rend l’horloge courir vite.
Par conséquent, nous adoptons une approche nouvelle. Oubliez l’engin de détection infrarouge.
Nous courons l’horloge pendant un certain temps et enregistrer le nombre de secondes, que l’horloge s’écarte du temps réel. Comme c’est, j’ai trouvé que l’erreur était environ 18 secondes rapide par heure. C’est une seconde (8 impulsions) toutes les 200 secondes ou une impulsion toutes les 25 secondes.
Nous avons ensuite déplacé le sketch Arduino pour ralentir le moteur en envoyant seulement 7 impulsions toutes les 25 secondes.
Exécutez à nouveau l’horloge pendant une période prolongée, spécifiquement 22,3 heures et nous observent une petite erreur, cette fois 5 secondes lent. Mathématiques nous dit le nous devrais accélérer l’horloge en 1/8e de seconde (1 puls) toutes les 2 006 secondes. Mettre cela dans le code, puis réexécutez l’horloge.
Après des heures 337, l’horloge a été rapide de deux secondes. Qu’extrapoler à une année entière, que l’erreur serait d’environ 50 secondes. C’est presque aussi bon que l'on attend de l’horloge RTC.
Maintenant, on pourrait ajouter une troisième correction du code, ralentir l’horloge en 1/8e de seconde toutes les 75 000 secondes.
C’est probablement assez bon puisque les autres facteurs tels que la panne de courant risquent de se salir avec l’horloge mécanique.
Si les patchs apportées au code Arduino sons comme groupe SIDA, vous avez raison. Je ne suis pas Microsoft. Ils sont connus pour appliquer des dizaines de milliers de « bugs » sur la vie d’un système d’exploitation.
Toutefois, en quelque sorte un maniaque, j’ai décidé de faire un autre changement encore. Reportez-vous à l’étape suivante.