Solución:
Un enfoque sería el uso de un módulo DS3231 (Precision Real Time Clock). Estos módulos se venden en Ebay por menos de 1 dólar. Buscar ds3231 arduino
.
Normalmente, estos módulos tienen un conector de seis pines, con pines etiquetados como 32K, SQW, SCL, SDA, VCC y GND. Como se indica en las especificaciones de DS3231, el pin INT / SQW se usa para salida de onda cuadrada o para salida de interrupción. En la página 13 de especificaciones, en la sección Registro de control, dice:
Bit 2: Control de interrupciones (INTCN). Este bit controla la señal INT / SQW. Cuando el bit INTCN se establece en 0 lógico, se emite una onda cuadrada en el pin INT / SQW. Cuando el bit INTCN se establece en 1 lógico, una coincidencia entre los registros cronometradores y cualquiera de los registros de alarma activa la salida INT / SQW (si la alarma también está habilitada).
Inicialmente, ejecutaría un boceto para configurar el DS3231: encienda una alarma diaria, habilite una interrupción en lugar de onda cuadrada, configure la hora actual, etc. Luego, cargue un programa operativo que lea el voltaje de la batería del automóvil cada vez que se ejecute y actúa de forma apropiada.
El pin DS3231 INT / SQW estaría conectado a la puerta de un mosfet de canal P que cambia la potencia de 12V al Arduino. El P-fet se encendería cuando se encienda el pin de salida de drenaje abierto INT / SQW de la alarma. El programa operativo hace su trabajo y luego borra la bandera de interrupción DS3231, para apagar la energía hasta que ocurra la siguiente alarma. (Para la depuración, establezca intervalos más breves que un día; por ejemplo, una vez por minuto, como se describe en la Tabla 2, Bits de máscara de alarma, en la página 12 de las especificaciones).
Normalmente, el DS3231 consume 0,84 μA cuando funciona con una batería de 3,3 V o 1 μA con 5 V. Consulte Características eléctricas, página 3 de las especificaciones.
El temporizador o el circuito temporizador en sí mismo tendría que consumir algo de corriente. Cualquiera de los chips AVR de potencia pico consume muy poca corriente en el modo de suspensión, en los 10 s de microamperios del 328, si no recuerdo mal. Dormir un AVR para el menor consumo de corriente necesita que se apague casi todo, excepto el temporizador de vigilancia, y el período máximo de WDT es de 8 segundos. Una biblioteca como Narcoleptic administrará períodos más largos para usted. Sin embargo, lo que tendría que hacer es proporcionar una fuente de alimentación regulada mucho más eficiente que la integrada en la placa Arduino (si eso es lo que va a usar). Una vez hecho esto, la carga de Arduino en la batería de su automóvil debe ser microscópica.
Un diseño posible para un suministro eficiente es una matriz de baterías alcalinas, digamos 3 en serie para una salida de 4.5 (mientras están nuevas) multiplicadas por 2 o más cadenas de este tipo en paralelo, conectadas directamente al bus de 5v.
No he hecho el presupuesto de energía para saber la capacidad que necesitaría y si necesitaría celdas D o podría hacer una matriz práctica a partir de otras más pequeñas, digamos AA, pero esa es una forma de lograr una carga cero en la batería del automóvil (descontando el requisito del sensor de voltaje de la batería del automóvil). Es posible que desee incluir el estado de la batería de Arduino en el informe diario o, por el precio de unos pocos alcalinos, podría diseñar demasiado la batería de Arduino de tal manera que monitorearla sería innecesario.
Un par de puntos de datos sugieren que una batería separada es un enfoque factible:
- Un solo alcalino de 9v funciona con un detector de humo durante más de un año, incluido el invierno en un ático sin calefacción (según mi propia experiencia), y los alcalinos de 9v son no conocidos por su capacidad.
- Mi termostato de retroceso digital ha funcionado durante un par de años con 2 pilas AA, antes de que a) murieran yb) me di cuenta y comencé a cambiarlas anualmente. 🙂