Stato batteria che alimenta Arduino

Ciao a tutti, premetto che ho scritto pochissimo sul forum(quasi mai!) ma risulta sempre una fonte di ispirazione, quindi, non riuscendo a trovare da solo una risposta al mio problema chiedo aiuto.

Sto alimentando un Arduino Pro Mini con una batteria tipo stilo da 3,6V 2500mA. La board va in sleep e al risveglio tramite watchdog legge lo stato della batteria su A0 per poi trasmetterlo via BLE o WIFI, il come non importa.

Il mio problema è capire se la classica lettura di un valore analogico della batteria tipo

float batt=stato_batteria_ATMega*(3.6/1023.0);

è valido o meno. Nel senso: la lettura viene eseguita , ma dato che la lettura viene eseguita sulla stessa batteria che alimenta Arduino posso ritenerla corretta?

Mi sembra di non notare cambi sul voltaggio che misuro con Arduino, ma misurando con il tester i valori sono cambiati rispetto a quelli misurati (sempre a vuoto) sulla bateria nuova.
grazie

I valori non variano perché arduino usa come rifermento di voltaggio il voltaggio della batteria,dovresti utilizzare un riferimento esterno stabile a 5V altrimenti il micro non può comparare.

Intanto grazie per la risposta!

Quindi dovrei collegare il pin aref ( che purtroppo manca sulla pro mini) ad una alimentazione esterna( stabile) , impostare il riferimento esterno e fare la lettura, giusto?
Il problema è che l'unica alimentazione deve essere la batteria stessa, non posso usare altre alim perche il progetto prevede l'uso a batteria.
Se usassi la batteria come riferimento il valore letto sarebbe corretto?
Quando eseguo : analogRead(A0)*(3,6/1023,0) non faccio già una comparazione tra il valore letto ed un numero fisso invece che tra il valore letto e il rif esterno?
Su vari tutorial o su altri post trovo questa 'formula' per leggere la tensione di una batteria , ed effettivamente arduino viene alimentato da usb.
Non c'è modo di 'ingannare' AREF?

magnetron:
Se usassi la batteria come riferimento il valore letto sarebbe corretto?

No perchè compara due valori uguali, comunque tu per leggere la tensione della batteria cosa usi? Un partitore di tensione immagino? Magari potresti provare facendo due conti con le resistenze e far si che alla tensione della batteria carica hai una tensione sul pin A0 <= 1,1 volt ed usare il riferimento interno che è presente nell’atmega della 328 sempre meglio di niente.

La batteria la leggo direttamente sul pin analogico ed effettivamente se alimento esternamente la lettura è corretta, altrimenti mi da sempre 3,6V. Misurata con il tester sono 3,520V . Lo scarto è minimo ma non me lo rileva.
ho provato con altre batterie più o meno scariche ma segna sempre 3,6V

Allora prova usando un partitore di tensione, calcola le resistenze in modo che sul pin A0 hai un massimo di 1.1V (a tensione di carica completa della batteria,che sembra essere una lipo quindi 4.2V) e usa come riferimento l'interno.

Proverò con il partitore.

Ma perchè dici

sempre meglio di niente.

proprio per il partitore da dover usare?

La batteria è una Saft LS14500 da 3,6 V 2600 mA al litio

Grazie

Vi ricordo che Arduino è in grado, con un piccolo trucchetto, di misurare la sua Vcc:

Uh questo non lo sapevo.

@magnetron Dico che un metodo semplice senza fare accrocchi è usare il riferimento interno ed il partitore.

OT Non è chee qualcuno può aiutarmi con il mio problema?

Quindi usando il secret voltmeter non avrei bisogno di partitori?

Dal telefono non riesco a leggerlo ma basta semplicemente provare

Col secret voltmeter non devi collegare niente, ti dice direttamente a che tensione è alimentata la scheda.

Ok stasera provo.
Grazie per i consigli

Comunque oltre al voltimetro segreto esiste anche il termometro segreto.

https://code.google.com/p/tinkerit/wiki/SecretThermometer
Ciao Uwe

Rieccoci qua con l'evoluzione del problema!
Ho testato il secret voltmeter e usato un partitore per misurare un'altra batteria su A0 sfruttando il riferimento interno a 1,1V. Funziona benissimo.
Il problema è che dopo aver riletto il datasheet della batteria LS14500 ho scoperto che il voltaggio rimane praticamente costante a 3,6-3,5V fino alla fine per poi crollare drasticamente. Quindi mi risulta inutile cercare di controllare il valore della tensione della batteria per stabilire lo stato, in quanto mi ritroverei ( già testato ma non capivo il perché) con una batteria che ha sempre 3,5V ma con una capacità residua nulla.
Proverò a cercare qualche post sulle lipo , ma fino ad ora ho trovato informazioni solo sul controllo di carica .
Grazie

PS ficus anche il termometro segreto !!

Normalmente le batterie lipo comerciali hanno un integrato dentro che misura la corrente estratta o data per calcolare sia la capacitá della batteria che lo stato di carica.
Ciao Uwe

Ho cercato il modello della batteria ed ho trovato un datasheet, se corrisponde alla sua, questa non è una lipo ma bensì una Li-SOCl2.

Io sapevo che le lipo a carica completa superavano i 3,6V invece questa sta fissa a questo valore inoltre ho letto che sembrerebbe non sia infiamabile come batteria e soprattutto non è ricaricabile.

So che non è una lipo , infatti avevo scritto

la batteria è una Saft LS14500 da 3,6 V 2600 mA al litio

ma si trovano più risultati tra lipo-arduino e litio-arduino.
Di base è sempre litio, comunque di quella batteria trovi la stessa ma più performante su impulsi brevi ma elevati sempre non ricaricabile, ma trovi anche la versione ricaricabile.
Non ricordo il codice esatto , sempre qualcosa tipo LSxxxxx.
Viene usata negli antifurti, memorie di backup ecc
È un po che le uso e , a parte il prezzo, i 3,6V e 2600mA su una batteria sola da usare con il pro mini e basta può sembrare eccessivo, ma assieme a ESP8266 me gusta non avere problemi di corrente!