Calcolare consumo Arduino

fardox:

leo72:
Sai come funziona almeno lo sketch che hai usato? Hai letto la libreria LowPower?
Immagino di no :wink:

Funziona attivando il watchdog, che è un circuito interno alimentato separatamente dal clock principale. Il clock principale negli sleep "profondi" viene disattivato quindi tutto si ferma. Senza un qualcosa che risvegli il micro, il micro è in ibernazione. Lo sketch ti ho postato io usa appunto un interrupt esterno. La LowPower usa invece il watchdog per resettare il microcontrollore.
In pratica, ogni 8 secondi resetta l'Atmega e fa ripartire tutto lo sketch. Ecco perché leggi sempre anche il consumo generato dal setup(), perché ogni 8 secondi tutto il codice viene rieseguito.

Scusami Leo, ma nel datasheet leggo che è possibile utilizzare il timer watchdog per generare un interrupt e non un reset!

Certamente. E' la tecnica che ho usato sul leOS2.
Basta impostare nel registro WDTCR il bit WDIE su 1, che il watchdog genera un interrupt e non un reset.
Devi però ogni volta reimpostare il bit altrimenti la volta seguente il watchdog resetta comunque il microcontrollore.
Se vuoi studiarti questa cosa analizza il codice del leOS2.