Paso 12: Intento de rescate tres
Hemos visto que el reloj corre rápidamente por unos 18 segundos por hora sin ningún ajuste y unos 50 segundos por año con dos ajustes tal como se describe en el paso anterior. ¿Podemos mejorar en eso?
La respuesta es sí, añadiendo un codificador de eje al eje de la segunda y detección de la posición rotacional de ese eje.
El codificador es un disco con un agujero de un diámetro y 60 orificios de un diámetro de segunda. Dos interruptores de la foto son la posición que uno percibe el agujero único, los otros sentidos los agujeros de 60. Esto llama encoder incremental eje (requiere un reinicio para cada tuen).
Las salidas de los interruptores están conectadas con el Arduino produciendo dos interrupciones distintas. La 'interrupción solo' restablece la posición de rotación cero. La 'interrupción 60' incrementa el índice de rotación en uno.
Por lo tanto, obtenemos la posición real de la mano de segundo cada segundo. Entonces podemos comparar esa posición (en segundos) con el RTC en segundo lugar en algún momento como la segunda de 30 marca y acelerar o ralentizar el reloj mecánico por ajuste temporalmente la cantidad de pulsos.
Esto funciona de manera similar como el primer intento (con sensor de infrarrojos posición) pero no ni sufre el remedo de otras manos.
Este es el final (al menos eso es lo que yo pensaba) versión adoptó y la electrónica se describirán en detalle más adelante.