Allego un vecchio "Application Note" di Microchip (probabilmente, in origine, era di Atmel) relativo alla misura della tensione di alimentazione (Vcc) delle MCU della famiglia tinyAVR e megaAVR sempllicemente sfruttando i registri interni e senza l'uso di hardware accessorio.
Non tutti sanno infatti che, su buona parte delle MCU delle suddette famiglie, sia possibile leggere internamente la tensione di alimentazione (cosa interessante se, ad esempio, si sta alimentando a batterie) senza alcun collegamento esterno, ma semplicemente sfruttando una possibilità del MUX del ADC.
Segnalo inoltre che tale " Trent M. Wyatt", seguendo questa AN, ha scritto una semplice libreria per la lettura sia del valore in V che in percentuale ... la trovate QUI.
Bisogna notare, però, che è valido solo se la MCU è alimentata direttamente da un elemento al litio o da 3 pile da 1,5V in serie con la tensione che cala progressivamente con lo scaricarsi della batteria. Se, invece, è alimentato a 5V costanti tramite un regolatore lineare o a commutazione che parte da 9V o da un elemento al litio o altro, bisogna leggerla con un partitore verso un ingresso dell'ADC.
Non è così ovvia, dato che c'è già stato chi alimentava la MCU con un convertitore a 5V e pensava di usarlo per misurare la tensione della batteria...
Qui la discussione è andata avanti per 40 messaggi con informazioni contraddittorie cercando di capire come stavano le cose:
quindi è bene far notare la differenza fra i due casi.