Batterie Li-po, quale scegliere? Considerazioni e utilizzi...

Ciao a tutti .... sto sperimentando un semplice misuratore di distanza portatile con arduino micro (utilizza un modulo ultrasonico HC SR04, e qualche semplice buzzer e micro vibratore, più un piccolo LCD).
Finita la fase di "riflessione" e prototipazione pratica, ora sono in difficoltà con la parte energetica ... cosa posso usare?

Le mie necessità:

  • Ho bisogno di una fonte di energia portatile, indipendente dalla presa di casa (perché devo portare il tutto con me anche in luoghi isolati, magari non raggiunti dalla corrente);
  • Ho bisogno di una fonte di energia portatile che mi garantisca almeno 1 giorno (12 ore circa effettive), senza cambi di batteria e soste di ricarica della stessa, quando torno a casa la sera posso ricaricare;
  • Ho bisogno di una fonte di energia portatile che sia leggera e non troppo grande perché devo portarla con me;

Ora, ho trovato le batterie Li-Po .... il mio progetto beve circa 80mA (mA più, mA meno), quindi avendo necessità di carica per 1 giorno, mi serve una batteria da circa 960mAh, 1000mAh per arrotondare.
Considerando che ci può scappare uno sporadico utilizzo eccezionale per più di 12 ore, ho scelto 2000mAh.

Ok.

Ora il problema.

La batteria che ho trovato (2000mAh 7.4V 35C) mi può dare tutto quello che voglio, ma ho qualche dubbio ...:

  • Posso usare un semplice DC / DC step down converter per convertire il voltaggio della lipo iniettando 5V direttamente in arduino? Ho già questo convertitore DC-DC, e voglio bypassare il regolatore di tensione arduino che produce troppo calore e nel mio caso non è una cosa che voglio...
  • Ho trovato su internet che le batterie lipo sono molto delicate e non amano troppo graffi, urti e botte varie ... devo chiudere la batteria in una scatoletta di plastica per evitare problemi?
  • Non userò il progetto in questione ogni giorno ... se un giorno uso questo accrocco solo per circa 1 ora e poi lo uso per esempio dopo due giorni, la batteria lipo può essere danneggiata dal mancato utilizzo e dal fatto che non l'ho scaricata completamente?
  • Ho letto che le batterie lipo non deve essere scaricate MAI a meno del 30% (qualcosa di simile), della carica totale .... quando uso la batteria nel mio progetto come posso controllare la percentuale di carica? c'è un circuito o qualcosa di auto-protezione giàimplementato contro la scarica eccessiva della batteria? E' una cosa che ho letto ovunque sui forum (il fatto di non scaricare troppo), ma non capisco come posso regolarmi e capire quando devo staccare la batteria e ricaricarla...staccarla quando arduino non funziona più significherebbe staccarla quando ormai è a fine carica, quindi ben lontana dalla percentuale minima consigliata...

La batteria che ho trovato è questa per capirci:
http://www.ebay.it/itm/181460656935?ssPageName=STRK:MEWAX:IT&_trksid=p3984.m1423.l2649

Ci sono altri accorgimenti che dovrei usare per utilizzare una lipo?

Ringrazio chiunque saprà darmi una mano con sta cosa, ce l'ho in testa da svariati giorni ....

  • Non ci sono problemi se utilizzi un convertitore dc-dc per alimentare l' arduino , basta fornire 5v sull' apposito pin.
  • Esistono le batterie lipo hard case che sono già dotate di un contenitore rigido che le protegge. Altrimenti ti conviene chiuderla in una scatolina di plastica.
  • Le lipo non andrebbero mai scaricate completamente, se non erro quando devi lasciarle inutilizzate per lunghi periodi è meglio lasciarle alla tensione di 3.7 v/cella cioè la tensione nominale della batteria
  • Ti consiglio di collegare i due terminali della batteria ad un partitore di tensione con le due resistenze uguali (ti dimezza la tensione) e leggere la tensione da un pin analogico di arduino. Quando la tensione arriva a 3.3 v fai in modo che Arduino ti avvisi che è ora di ricaricare la batteria.

gigicookie:

  • Non ci sono problemi se utilizzi un convertitore dc-dc per alimentare l' arduino , basta fornire 5v sull' apposito pin.
  • Esistono le batterie lipo hard case che sono già dotate di un contenitore rigido che le protegge. Altrimenti ti conviene chiuderla in una scatolina di plastica.
  • Le lipo non andrebbero mai scaricate completamente, se non erro quando devi lasciarle inutilizzate per lunghi periodi è meglio lasciarle alla tensione di 3.7 v/cella cioè la tensione nominale della batteria
  • Ti consiglio di collegare i due terminali della batteria ad un partitore di tensione con le due resistenze uguali (ti dimezza la tensione) e leggere la tensione da un pin analogico di arduino. Quando la tensione arriva a 3.3 v fai in modo che Arduino ti avvisi che è ora di ricaricare la batteria.

Grazie mille gigi !!
Non credevo che su arduino fosse cosi facile leggere la tensione...in passato avevo visto di sfuggita che per farlo c'erano appositi moduli che svolgevano funzione voltmetro, o amperometro...ora cerco meglio sul web perchè questa cosa del partitore di tensione per leggere la tensione su pin analogico è interessantissima.

Le Li-Po sono una grande invenzione, ma hanno due difetti:
1 - hanno bisogno di un carica batterie particolare e, per le batterie oltre due celle in serie, è necessario che abbia anche un circuito bilanciatore;
2 - se accidentalmente si provoca un cortocircuito, la loro potenza si scarica su di esso.

La batteria che hai scelto è una 36C, il che significa in caso di corto passano ben 36 x 2 = 72A a 7.4V ben 500W sia pure per pochi secondi, ma sufficienti a bucare la lama di un giravite (ne so qualcosa...) e provocare un incendio.

Le prime Litio erano anche sensibili agli urti e se il Litio viene a contatto con l'ossigeno dell'aria brucia. Le LiPO invece hanno ridotto di molto questo problema.

Il primo difetto è superabile a poco costo, mentre per il secondo l'unica è fare molta attenzione.

cyberhs:
Le Li-Po sono una grande invenzione, ma hanno due difetti:
1 - hanno bisogno di un carica batterie particolare e, per le batterie oltre due celle in serie, è necessario che abbia anche un circuito bilanciatore;
2 - se accidentalmente si provoca un cortocircuito, la loro potenza si scarica su di esso.

La batteria che hai scelto è una 36C, il che significa in caso di corto passano ben 36 x 2 = 72A a 7.4V ben 500W sia pure per pochi secondi, ma sufficienti a bucare la lama di un giravite (ne so qualcosa...) e provocare un incendio.

Le prime Litio erano anche sensibili agli urti e se il Litio viene a contatto con l'ossigeno dell'aria brucia. Le LiPO invece hanno ridotto di molto questo problema.

Il primo difetto è superabile a poco costo, mentre per il secondo l'unica è fare molta attenzione.

Si, ho visto in rete video di esplosioni terribili nel momento in cui erano creati dei corti o la lamiera veniva perforata (il mondo è pieno di gente malata davvero...)

tornando alla questione Partitore di tensione...non lo avevo per niente immaginato applicato per un utilizzo di controllo del voltaggio di una batteria...ho creato un piccolo schemino in fritzing (in allegato), vi andrebbe di confermarmi se ho fatto bene o no?
I collegamenti con il DC-DC li ho fatti alla buona, quello che ho io non è questo modello e ho messo due ingressi e uscite a caso...

Il partitore di tensione è pensato cosi:
Vin = 7,4V
R1=10K
R2=2K
Vout = 1,23V

Il pin analogico A0 mi analizza il voltaggio Vout. Quando il voltaggio Vout scende a 1.13V (cioè la batteria sta a 6,8V) arduino fa scattare il primo allarme batteria scarica (corrisponde al famoso cutoff delle Li-po a 3,4V a cella). Se si continua ad usare, una volta che il pin analogico legge 1V (corrispondente a 6V della batteria) scatta l'allarme finale di batteria da cambiare assolutamente (e corrisponde alla soglia minima consigliata per le lipo di 3V a cella).

Come ragionamento e come collegamenti è giusto?
Il programma che farò girare su arduino ha un ritmo di 10 cicli al secondo (quindi una alta frequenza di aggiornamento)...secondo voi devo far leggere la tensione cosi frequentemente?
O posso tipo farla leggere ogni tot cicli di loop?

Il tuo schema è corretto, ma userei due resistori uguali (da 1k, ad esempio 1% di precisione se possibile).

In questo modo, poiché la tua batteria (2S) è una serie di due celle, otterrai la tensione di una singola cella, ammesso che siano bilanciate, ovviamente.

Il partitore farà scorrere una corrente nominale di 7.4V / 2000ohm = 3.7mA, quindi un piccolo assorbimento tollerabilissimo.

In teoria ti direi di usare due resistori da 10k od anche 100k in modo ridurre l'assorbimento, ma c'è il rischio che il condensatore dell'ADC non ce la faccia a caricarsi, costringendoti a letture multiple di cui fare la media, scartando eventualmente la prima lettura.

Io uso questi valori di riferimento per le celle LiPO:
LiPo Min Typ Max
1S 2.75 3.70 4.23
2S 5.50 7.40 8.46
3S 8.25 11.10 12.69
4S 11.00 14.80 16.92

cyberhs:
Il tuo schema è corretto, ma userei due resistori uguali (da 1k, ad esempio 1% di precisione se possibile).

In questo modo, poiché la tua batteria (2S) è una serie di due celle, otterrai la tensione di una singola cella, ammesso che siano bilanciate, ovviamente.

Il partitore farà scorrere una corrente nominale di 7.4V / 2000ohm = 3.7mA, quindi un piccolo assorbimento tollerabilissimo.

In teoria ti direi di usare due resistori da 10k od anche 100k in modo ridurre l'assorbimento, ma c'è il rischio che il condensatore dell'ADC non ce la faccia a caricarsi, costringendoti a letture multiple di cui fare la media, scartando eventualmente la prima lettura.

Io uso questi valori di riferimento per le celle LiPO:
LiPo Min Typ Max
1S 2.75 3.70 4.23
2S 5.50 7.40 8.46
3S 8.25 11.10 12.69
4S 11.00 14.80 16.92

grazie....sei gentilissimo e sto capendo alla perfezione...in effetti credo opterò per i due resistori uguali...non ci avevo pensato...
per il bilanciamento dovrei prendere un balancer (bilanciatore) insieme al caricabatteria, quindi bilanciamento celle ok.
Se utilizzassi resistori da 10K invece che da 1K di quanto diminuisce l'assorbimento?
Per ora mi sto concentrando sulla parte che devo costruire, i pezzi come lipo e caricabatteria li recupero facilmente anche perchè in zona ha diversi amici che praticano modellismo quindi posso farmi girare da loro qualcosa...

tornando all'ultimo quesito di prima, cosa ne pensi ?

Il programma che farò girare su arduino ha un ritmo di 10 cicli al secondo (quindi una alta frequenza di aggiornamento)...secondo voi devo far leggere la tensione cosi frequentemente?
O posso tipo farla leggere ogni tot cicli di loop?

Ho notato che usi il vecchio modello HC SR04 meno preciso del più recente HC SR05: c'è un motivo particolare?

Comunque se vuoi precisione, ti consiglio i prodotti della MaxBotics per esempio con precisione VERA di 1cm (ce ne sono anche da 1mm):

http://www.robotstore.it/product/177/Sensore-di-distanza-ad-ultrasuoni-XL-MaxSonar-EZ1-MB1210.html

Il programma che farò girare su arduino ha un ritmo di 10 cicli al secondo (quindi una alta frequenza di aggiornamento)...

Tranquillo, puoi tranquillamente anche leggere la tensione: in free running l'ADC di Arduino fa circa 9000 letture al secondo!

cyberhs:
Ho notato che usi il vecchio modello HC SR04 meno preciso del più recente HC SR05: c'è un motivo particolare?

Comunque se vuoi precisione, ti consiglio i prodotti della MaxBotics per esempio con precisione VERA di 1cm (ce ne sono anche da 1mm):

http://www.robotstore.it/product/177/Sensore-di-distanza-ad-ultrasuoni-XL-MaxSonar-EZ1-MB1210.html

Il programma che farò girare su arduino ha un ritmo di 10 cicli al secondo (quindi una alta frequenza di aggiornamento)...

Tranquillo, puoi tranquillamente anche leggere la tensione: in free running l'ADC di Arduino fa circa 9000 letture al secondo!

Il motivo per cui avevo scelto l'HC SR04 sta nel prezzo...avevo voglia di sperimentare qualcosa con questo strumento e quindi decisi di prendere quello che mi capitava sottomano al prezzo minore...se non erro ci spesi un 4 euro, una sciocchezza.
Ad essere sinceri, comunque, non ero a conoscenza del fatto che ci fosse un nuovo modello, il HC SR05 appunto...vedrò di buttare un occhio...

L'altro modello che mi hai segnalato, della maxbotix, ha due pecche...:

  • costa tante monete (36 euro è fuori budget per questo progettino);
  • leggendo il datasheet dice che gli oggetti compresi tra 0 e 20cm vengono segnalati indistintamente come tutti a 20cm, e non è cosa buona per il mio progettino...la precisione sarà senz'altro ottima, ma è una pecca importante che non mi fa prendere in considerazione questo aggeggio...
    Ora che so dell'HC SR05 vedrò di prendere quello cosi faccio già un piccolo upgrade ancora prima di finire il progetto!! :smiley:

ti ringrazio comunque per la tua enorme preparazione, sei stato più utile tu in 10 minuti che il web in 10 giorni (ma sono anche scarso io nella ricerca :smiley: )

"riesumo" questa discussione per chiedere il vostro parere su una piccola modifica...

Oggi mentre cercavo cose varie sulla baya, mi è capitato sotto il naso questa, chiamata power bank:

Dovrebbe essere (anzi è, ne sono certo) una batteria Li-ion 18650 racchiusa in un guscio plastico protettivo. Di solito sti bank li vendono come aggeggi per caricare il cellulare al volo (dato che gli smartphone moderni spesso non arrivano a fine giornata con una carica). La comodità rispetto a una qualunque li-po sta nel fatto che :

1- costano poco e hanno potenze anche discrete (quella in foto ad esempio è da 5000mAh, ne ho viste anche da 90.000mAh)
2- hanno già integrato il DC-DC step up e quindi la corrente esce già a 5v, ottima per spararla dentro arduino senza altre regolazioni
3- hanno già all'interno il circuito di protezione, quindi per caricarle basta usare una presa USB o meglio un caricatore USB, senza particolari caricatori strani e balancer vari...
4- sono già in un case rigido, quindi ottimo per me che dovrei portarla appresso con il rischio di urti e graffi...
5- il suddetto circuito integrato di protezione mi eviterebbe di dover creare un partitore di tensione per leggere la tensione residua della batteria per evitare di scaricarla troppo, immagino che quando è scarico questo avvisa con qualche led...

In conclusione sto pensando di abbandonare la lipo e inserire questa come fonte di energia...cosa ne pensate?

Mi sembra una buona idea.