Paso 11: Intento de rescate dos
Como sabemos, tiene teóricamente 8 pulsos para el motor de pasos para girar el eje de la segunda por 6 grados. También sabemos que esto hace que el reloj corre más rápido.
Por lo tanto, tomamos un nuevo enfoque. Olvide el artilugio detector infrarrojo.
Funcionar el reloj durante cierto tiempo y anote el número de segundos que el reloj sale del en tiempo real. Como es, encontré que el error fue de unos 18 segundos rápidamente por hora. Es un segundo (8 pulsos) cada 200 segundos o uno cada 25 segundos del pulso.
Entonces nos instruido el sketch de Arduino para frenar el motor mediante el envío de sólo 7 pulsos cada 25 segundos.
Vuelva a ejecutar el reloj durante un largo periodo, específicamente 22,3 horas y observar un error más pequeño, esta vez 5 segundos lento. Matemáticas nos dice que debo acelerar el reloj por 1/8 de segundo (1 pulso) cada 2.006 segundos. Poner eso en el código y ejecute de nuevo el reloj.
Después de 337 horas, el reloj fue rápidos dos segundos. Extrapolar a un año completo, que el error será unos 50 segundos. Es casi tan bueno como uno espera del reloj RTC.
Ahora podría añadir una tercera corrección al código, retardando el reloj por 1/8 de segundo cada 75.000 segundos.
Esto es probablemente suficiente, puesto que otros factores como la falta de energía eléctrica son capaces de meterse con el reloj mecánico.
Si los parches hacen que el código de Arduino como curitas, tienes razón. Yo no soy Microsoft. Se sabe que aplicar decenas de miles de "correcciones" sobre la vida de un sistema de la operación.
Sin embargo, siendo el tipo de un stickler, decidió hacer otro cambio aún. Ver el siguiente paso.