Go Down

Topic: Lettura livello batteria lipo (Read 796 times) previous topic - next topic

Davide-1991

Salve, dovrei utilizzare una batteria lipo su un robot rover che sto costruendo,
dovrei trovare un modo per leggere il livello della batteria da arduino in modo che quando arrivi ad un livello troppo basso emetta un suono, qualcuno saprebbe dirmi come posso fare?

leo72

Puoi far leggere il livello di tensione dall'Arduino tramite un pin analogico.
Devi solo assicurarti che il livello massimo di tensione che arriva al pin sia 5V, altrimenti danneggi la scheda. Se così non fosse, usa un partitore per portare la tensione nell'intervallo 0-5V sostenibile dal pin.

Con analogRead(pin) fai poi la tua lettura e prendi le decisioni nel caso il valore scenda sotto ad una cera soglia.

Davide-1991

Ciao Leo72 grazie per la risposta, devo utilizzare un batteria lipo da 2S (7,4V) quindi devo utilizzare per forza un partitore di tensione, quali resistenze devo utilizzare per creare un partitore di tensione adatto al mio scopo?

Davide-1991

Ho trovato questo schema:

potrebbe andare bene?

leo72

I valori delle R sono troppo elevati, i pin analogici dell'Arduino lavorano bene con segnali d'ingresso con un'impedenza max di 10K.

Inoltre ecco un link:
http://it.wikipedia.org/wiki/Partitore_di_tensione

Ti spiega cos'è e come si calcola il valore di Vout partendo da Vin e dai valori delle 2 R.
Prendi come Vin il valore max che può assumere la tensione della batteria a piena carica, mettiamo 8V? 9V? Non so, questo lo sai tu (avrai dei dati del produttore, oppure prendi un tester e misuri questo valore).
Mettiamo 9V.
Per avere 5V usa 8K2 per R1 e 10K per R2, ottieni quasi 5V in uscita.

Davide-1991

Grazie mille ancora per la risposta e per il tuo aiuto,
le batterie lipo da 2S a carica piena arrivano ad una tensione di: 8,40V,
facendo una ricerca ho trovato sul forum inglese questo: http://forum.arduino.cc/index.php?topic=92074.0
in pratica c'è proprio quello che devo fare io, solo che nello schema riparta in quella discussione ci sono resistenze da 100K e da 50K

leo72

L'uso di R dal valore elevato è dettato dal fatto che a resistenza di valore più elevato corrisponde un minor passaggio di corrente. Essendo un progetto a batterie, usare R di piccolo valore accorcia la vita delle batterie stesse, per poco che scorra è comunque uno scorrimento continuo, in quel partitore.

Allora diamo nel mezzo, e cioè usa R dal valore più elevato (100K e 82K) ma nel contempo tu a livello di codice fai una lettura composta da almeno 5/10 analogRead, tenendo solo l'ultimo valore. In questo modo dai modo al circuito interno di caricarsi correttamente e di avere una lettura attendibile.

uwefed

Il problema del partitore con valori resistivi troppo alti é che l' entrata analogica per brevi momenti carica un condensatore interno con la tensione da misurare. In quel momento la sorgente deve dare la corrente neccessaria senza abbasare la tensione Parliamo di una corrente nella grandezza di un centinaio di µA. Questo si ottiene se si usa un partitore con resistenze sotto i 10kOhm oppure usando dei valori piú alti mettendo un condensatore in tra entrata analogica e massa. Questo si puó fare perché la tensione da misurare (batteria non cambia velocemente).
Ricordo anche che la tensione della batteria sarebbe da misurare senza carico perché il carico fa abbassare al tensione ai contatti della batteria a causa delle perdite di tensione sulla resistenza interna.
Ciao Uwe

cyberhs

Io userei R1 = 3k9 ed R2 = 5k1: in questo modo 8.4V corrispondono a 4.76V

Davide-1991

Salve, ringrazio tutti per la risposta, scusate se rispondo solo adesso ma sono stato molto occupato con il lavoro,
comunque mi è venuto in mente che sul mio vecchio quadricottero avevo montato la scheda KK 2.0 che ha un pin per la lettura del livello della batteria, la lettura era davvero molto precisa sarebbe bello capire in che modo era collegato al pin analogico,
la scheda in questione è questa:http://www.hobbyking.com/hobbyking/store/__24723__hobbyking_kk2_0_multi_rotor_lcd_flight_control_board.html
comunque adesso faccio qualche prova, anche se non sono ancora proprio convinto su quali resistenze devo utilizzare.

Davide-1991

Facendo una ricerca con google della scheda sopra indicato ho trovato una foto ad alta risoluzione,
nella foto si vede benissimo il pin: B+, che sarebbe proprio l'entrata del polo positivo della batteria per effettuare il monitor, siccome non conosco i componenti smd mi sapete dire che resistenze sono quelle collegate a quel pin?

questa è la foto: (La freccia in foto non l'ho fatta io è un immagine trovata con google)

Etemenanki

Se il pin e' il +B, quello e' collegato con in serie la resistenza da 22K (223) e verso massa la resistenza da 2K2 (222)

Il codice dei valori delle resistenze SMD lo leggi in questo modo: i primi due numeri sono il valore, il terzo numero e' il numero degli zeri da aggiungerci, quindi come in quel caso, 223= 22 piu 3 zeri, cioe' 22000, o 22K ... e cosi via ... ovviamente, il numero 220 non sono "220 ohm", ma 22 (22 piu nessuno zero) ... a volte per i valori bassi si usa sostituire una delle cifre con una "R", che puo fare anche da virgola, quindi 220 e 22R sono entrambe da 22 ohm, mentre 2R2 e' da 2,2 ohm, e R22 e' da 0,22 ohm, e cosi via ...
"Sopravvivere" e' attualmente l'unico lusso che la maggior parte dei Cittadini italiani,
sia pure a costo di enormi sacrifici, riesce ancora a permettersi.

astrobeed


Se il pin e' il +B, quello e' collegato con in serie la resistenza da 22K (223) e verso massa la resistenza da 2K2 (222)


Corretto, però questo partitore ha un rapporto 11:1, decisamente alto per una batteria 2S, sui quadri la batteria va da due a sei celle il che giustifica l'utilizzo di un partitore elevato.
Il partitore ottimale per una 2S, max 8.4V (4.2V per cella) con batteria a piena carica, è composto da due R da 20k, tensione massima in ingresso 10V, impedenza d'uscita equivalente vista dal ADC 10k perché è data dal parallelo delle due R (teorema di Thevenin).

Etemenanki

Io mi sono limitato a leggere i valori ... per Arduino e' un po troppo, il rapporto, ma bisogna vedere su quella schedina che tipo di lettura fa e che riferimento danno all'ADC ... e quello dai componenti non riesco a capirlo ;)
"Sopravvivere" e' attualmente l'unico lusso che la maggior parte dei Cittadini italiani,
sia pure a costo di enormi sacrifici, riesce ancora a permettersi.

astrobeed


Io mi sono limitato a leggere i valori ... per Arduino e' un po troppo, il rapporto,


E' nell'ottica che la batteria può essere da 25.2 V (6S) con Aref a 3.3V.

Go Up