Paso 3: El tiempo encargado
Así que me trasladé a la pieza de reloj de tiempo Real del rompecabezas. En este punto vale la pena discutir por eso hay un RTC en el circuito. Una aproximación a la solución de mi problema sería simplemente un contador crudo de Arduino y luego hacer todo el trabajo pesado en el extremo receptor. Sin embargo, en la reflexión me ha gustado la idea de que podría utilizar la batería respaldados por RAM en el DS1307 como una tienda para mi contador y que mi "paquete" de datos serían capaces de transmitir el momento en que la cuenta era exacta. Esto puede parecer una decisión extraña pero creo que a la larga te va a servirme bien.
El DS1307 es un dispositivo i2c y hay una serie de artículos sobre el dispositivo a internet (y conectarse a un Arduino), así que no voy a concentrarse en los pormenores del dispositivo. En cambio yo voy ilustrar una trampa que encontré y el diseño final para que me fui.
Mi idea inicial era que el DS1307 RAM sea la tienda para el contador y durante la interrupción rutina quisiera leer y luego actualizar el contador de gestión. Sin embargo, he descubierto que mientras que la biblioteca de alambre en Arduino es realmente útil no funcionará en una rutina de interrupción (que bien).
Mi segundo enfoque, que trabajó, fue mantener un contador en la RAM de Arduino y luego, después de un retardo configurado en el bucle principal, escriba el valor a la RAM del DS1307.
El diagrama muestra las conexiones para el DS1307 y cómo enganchó hasta el Arduino (nota que la Junta mini Futurlec que usé ya tiene las resistencias de pull-up requiere y por lo tanto no se muestra en el diagrama).
Así que ya tenía el segundo bloque de edificio en lugar. Tenía un medio de capturar una fecha y hora y un valor de contador actualizado por una rutina de interrupción.