misurare la carica della batteria del robot?

va beh dai alla fine mi toccherà fare un banalissimo partitore di tensione, come fanno tutti... :frowning:

36mA è un valore teorico che non si verificherà mai perchè stiamo parlando di ingresso e di resistenza di ingresso espressa in K ohm, e comunque si può salire a 470 ohm senza problemi.
Detto questo certo che puoi usare il partitore ma misuri la tensione della Batteria e non la carica della Batteria che è la capacità di una Batteria a fornire corrente elettrica. Tieni conto che i migliori tester per batteria (professionali) misurano la corrente e non la tensione (applicano cioè un carico alla batteria da testare e misurano la corrente circolante e non la tensione).
Se misuri la tensione hai semplicemente un idea approssimativa della carica residuale, ma se ti accontenti... ok
Saluti.

auriol:
Detto questo certo che puoi usare il partitore ma misuri la tensione della Batteria e non la carica della Batteria che è la capacità di una Batteria a fornire corrente elettrica.

Tutte le batterie esistenti possiedono una curva di scarica in funzione della tensione, ovvero misurando la tensione è possibile conoscere la carica residua.
Il vero punto chiave della questione è che la curva di scarica è anche in funzione della corrente, quindi o si misura la tensione con il circuito in funzione oppure si fa a vuoto applicando un carico che assorbe una corrente simile a quella del circuito utilizzatore.

auriol:
36mA è un valore teorico che non si verificherà mai perchè stiamo parlando di ingresso e di resistenza di ingresso espressa in K ohm, e comunque si può salire a 470 ohm senza problemi.
Detto questo certo che puoi usare il partitore ma misuri la tensione della Batteria e non la carica della Batteria che è la capacità di una Batteria a fornire corrente elettrica. Tieni conto che i migliori tester per batteria (professionali) misurano la corrente e non la tensione (applicano cioè un carico alla batteria da testare e misurano la corrente circolante e non la tensione).
Se misuri la tensione hai semplicemente un idea approssimativa della carica residuale, ma se ti accontenti... ok
Saluti.

Non sono d'accordo. Neanche misurando la tensione con un carico conosciuto da una misura efficace della carica residua.
La curva di scarica dipende dalla corrente e dal stato di carica inoltre la maggior parte dei tipi di batterie hanno una parte della curva che é quasi piana e che poi scende in prossimitá di batteria esaurita.
L' unico metodo affidabile per misurare la carica residua di una batteria é misurare la corrente di carica/scarica e calcolarne la carica immagazinata nella batteria. Ci sono integrati che lo fanno e per esempio le batterie dei PC ne hanno integrato un chip del genere.

Ciao Uwe

molto interessante questa storia :slight_smile: io comunque intendo fare delle misure dei volt della batteria con i robot in funzione, per poter poi scrivere su un display grafico il livello di essa, tipo come succede nei cellulari o nei computer portatili... a me basta distinguere 4 livelli per poter indicare qualcosa sul display, quindi non ho bisogno di una gran precisione...

Sai quando vuoi avere un 100%,75% 50% 25% ma ricevi per esempio un 100% 30% 20% 10% le cose non funzionano bene.
Fai una prova: carica la batteria e scaricala con una corrente simile a quella usata nel robot.
Poi a intervalli regolari misuri la tensione.

Cosí Ti rendi conto della curva di scrico.

Ciao Uwe

sisi infatti avevo in mente di fare delle prove pratiche per prendere i valori, non ho ancora capito bene come si scaricano le Li-Po, grazie per il consiglio :wink:

Se non ti serve precisione (che comunque è difficile da ottenere) puoi leggere la V non capisco poi l'intervento di uwe che non è daccordo... ma di fatto dice le stesse cose con parole diverse,
"misurare la corrente di carica scarica " io ho detto la stessa cosa riferendomi solo alla scarica ma concordo sulla carica, ci sono chip dedicati (es.Fotocamere digitali) certo! ma ci si complica la vita.... e si complica il circuito..
Penso che l'obiettivo sia aiutare nei limiti del possibile chi chiede info nel modo più semplice possibile sarà poi l'utente finale a decidere in base alle info acquisite il da farsi.
Alla fine vince sempre la praticità ed è evidente che la via più semplice è misurare la V con le modalità già indicate.
Saluti.

auriol, dicesti:

Tieni conto che i migliori tester per batteria (professionali) misurano la corrente e non la tensione (applicano cioè un carico alla batteria da testare e misurano la corrente circolante e non la tensione).

percui misuri non la tensione della batteria ma la corrente con un carico.
Io ho spiegato il funzionamento degli integrati che misurano quanto pieno é una batteria percui misurano l' integrale della corrente di carica/scarica sul tempo.

Sono 2 cose totalmente diverse.

a pagina 9 di http://www.enea.it/it/Ricerca_sviluppo/documenti/ricerca-di-sistema-elettrico/elettrotecnologie/13-enea-ob-e-29-9-10-finale.pdf vedi il grafico della tensione di scarico di una accumulatore grande potenza (per trazione) al litio a differenti correnti di scarica.

Ciao Uwe

uwefed:
per cui misuri non la tensioen della batteria ma la corrente con un carico

Fino a prova contraria misurare la tensione su un carico noto, e parliamo di misure in DC, è la stessa cosa di misurare la corrente visto che sono legate dalle legge di ohm :smiley:

scusa ma se usi un minuscolo operazionale e due resistenze ? il valore lo ottieni anche più preciso , non hai problemi di correnti e per rilevare il valore usi l'adc .

a me basta fare col partitore e nel modo che mi assorba meno corrente possibile...
Quanto è la resistenza di ingresso dell'adc sull'ATmega328?

er_like_no_other:
a me basta fare col partitore e nel modo che mi assorba meno corrente possibile...
Quanto è la resistenza di ingresso dell'adc sull'ATmega328?

Come detto, l'ADC è dimensionato per impedenze di una decina di Kohm.
Puoi però usare R maggiori, ad esempio anche 100K, basta che invece di eseguire 1 sola lettura, ne campioni tipo una decina e poi o prendi la media oppure tieni conto solo dell'ultima. In questo modo dai tempo al circuito S&H di caricarsi efficacemente.

Esempio:
int lettura;
for (byte i=0; i<10; i++) {
lettura=analogRead(sensore);
}
//qui lettura contiene l'ultimo valore letto, quello più attendibile.

er_like_no_other:
Quanto è la resistenza di ingresso dell'adc sull'ATmega328?

Quello che conta è l'impedenza d'uscita della sorgente, il data sheet dice che deve essere >= 10 kohm se vuoi utilizzare l'ADC al massimo delle sue prestazioni.
Con un partitore per ottenere una impedenza vista dal ADC di massimo 10 k basta che applichi Thevenin per ottenere la resistenza equivalente in serie al generatore di tensione, la batteria nel nostro caso, ovvero la R serie, e impedenza d'uscita, è data dal parallelo delle due resistenze.
Se usi una resistenza da 10k tra GND e il pin d'ingresso del ADC sei matematicamente certo che l'impedenza d'uscita del generatore di tensione sarà sempre inferiore a 10k, aggiungendo una resistenza da 22k ottieni un partitore a circa 1/3 che permette di leggere tensioni fino a 15V, in pratica non devi fare altro che applicare una tensione nota in ingresso al partitore, misuri in modo preciso la tensione in uscita e ti ricavi il reale divisore al netto delle tolleranze che utilizzerai nel tuo software per ottenere la reale tensione partendo dai count del ADC.

ma il S&H a scuola me lo insegnano con un buffer in ingresso, quindi la R di ingresso dovrebbe essere nell'ordine dei megaohm, o sbaglio?

er_like_no_other:
ma il S&H a scuola me lo insegnano con un buffer in ingresso, quindi la R di ingresso dovrebbe essere nell'ordine dei megaohm, o sbaglio?

Il S&H ha una resistenza quasi infinita quando è aperto, circa 100 Mohm come per tutti gli input del micro, relativamente bassa quando è chiuso per consentire la carica del condensatore, il circuito equivalente è un condensatore da 47 pf con in serie una resistenza di qualche kohm in condizione di sample.
Come ti ho già spiegato il solo parametro che ti interessa per utilizzare in modo corretto l'ADC è l'impedenza d'uscita della sorgente che deve essere >= 10 khom.
Dato che Arduino inizializza l'ADC per una velocità di circa 10 ksps con 10 bit di risoluzione (il massimo è circa 15 ksps a 10 bit) è importante mantenere l'impedenza della sorgente entro i limiti ammessi.

e in termini pratici quali sono questi limiti?

er_like_no_other:
e in termini pratici quali sono questi limiti?

Basta che leggi quello che ho scritto quattro post più sopra.