Paso 3: Apague, WDT y tiempo
MCU y OLED, al encenderse consumen aproximadamente 6 mA.
Para hacer que el reloj puede funcionar más de 1 año, utilizo el MCU más poder guardar reposo, SLEEP_MODE_PWR_DOWN, cuando el usuario no esté en uso. Según mi medidor de energía barata, mostrar 0,1 uA si desactivar la función. Pero todavía necesita para activar el WDT para del tiempo, después de activar el WDT, muestran 4 uA. Asumir sueño auto MCU y OLED después de 5 segundos y vista el reloj 12 veces cada día en promedio, el reloj se consume sobre mAh 0,2 por día. ((0.004 mA * 24 horas) + (6 mA * (5 / 60 / 60) horas * 12)) Así que una batería CR2025 de 150 mAh puede ejecutar 750 días.
El código de tiempo vienen principalmente de PaulStoffregen. Sin embargo, el poder hacia abajo de modo de reposo detendrá el temporizador normal, utilice la función millis() para custodia del tiempo no es válida. Así que me quedo con otra variable para sustituir la función millis(). Para cada interrupción WDT, aumentar un determinado valor. El valor de incremento depende de la configuración de intervalo WDT y oscilador de la viruta. 1 segunda interrupción WDT, valor del incremento calibrado de mi chip es 998 (alrededor de 1000 milisegundos).
Y también he añadido la función readVcc() para supervisar el estado de la batería.
Ref.:
Relacionados con el WDT y el poder: http://www.re-innovation.co.uk/web12/index.php/en...
función de tiempo para Arduino v1.4: https://github.com/PaulStoffregen/Time
readVcc: http://www.re-innovation.co.uk/web12/index.php/en...