Alimentare Arduino a batteria

Ogni tanto faccio anche qualche domanda :D. Peraltro è una domanda piuttosto inflazionata, ma nonostante abbia letto un sacco di thread, ancora non ho messo a fuoco la soluzione che fa per me.

Voglio creare un data logger autonomo, quindi dotato di batteria. In questo campo la mia ignoranza è TOTALE. Idealmente dovrebbe durare almeno un giorno, in modo da poterlo staccare la mattina, portare in giro fino a sera, quindi attaccarlo per la ricarica.

Vorrei usare una batteria LiPo, ed il primo problema è sceglierne una: non ho ancora idea della capacità che mi servirà, per cui, partendo da una via di mezzo, ho messo gli occhi su questa. Qualche controindicazione? Non ho grossi problemi di ingombro, ma ogni consiglio è ben accetto.

EDIT: Ho notato ora che la batteria che ho linkato è a 7.4V, per cui ignoratela e consigliatamene una più adatta :D.

Il secondo problema è che non vorrei dovere togliere la batteria per ricaricarla, vorrei fare stile cellulare: quando è scarica collego l'intero aggeggio ad un alimentatore, che contemporaneamente mi ricarica la batteria e mi alimenta il dispositivo, senza interruzioni. Mi pare di capire che per fare ciò serva un modulo come questo: confermate?

Ultimo problema: se non ho capito male, le batterie LiPo sono sempre a 3.7V (che diventano 4.2 sotto carica), per cui è necessario portarli in qualche modo a 5V (per ora non ho intenzione di alimentare a 3.3, vedremo poi eventualmente). La scheda di cui sopra fa già questo? Oppure sull'output mi ritrovo i 3.7V/4.2V del momento? Nella foto vedo che è collegata ad un altro modulino, il cui scopo sembra proprio generare 5V costanti su un connettore USB.

Ultimissimo problema: per capire quanto la batteria è carica basta misurare la tensione di uscita? Qual è la relazione carica/tensione?

Per ora è tutto, grazie fin da subito :).

Come LiPo puoi prendere quello che ti pare, purché di buona qualità, di capacità idonea per fornire tutta l'energia che serve al tuo progetto.
Se vuoi poter ricaricare facilmente la batteria ti conviene optare per una singola cella seguita da un piccolo step up, come ti fa vedere la soluzione su Amazon dove hai il caricatore collegato alla batteria seguito da uno step up per i 5V.
Se opti per una batteria 2S, a mio avviso soluzione migliore se devi usare l'ADC in quanto ottieni i 5V da un regolatore lineare, ti serve un caricatore LiPo che gestisce anche il bilanciamento delle celle.
Puoi sapere la carica residua, stimata, della batteria misurando la tensione, la variazione è abbastanza lineare tra il 100% e il 5%, sotto il 5% c'è un ginocchio abbastanza ripido sulla curva di scarica che porta la tensione sotto il livello minimo ammesso molto rapidamente.
Se parliamo di bassi assorbimenti, meno di 200 mA, prendi per buono una tensione di fine scarica pari a 3.3V per cella, quando arrivi a questo punto hai consumato il 95% della carica, se continui ad assorbire corrente la tensione crolla rapidamente sotto i 3V, limite di sicurezza sotto il quale non andare mai, se fai scendere la tensione a meno di 2.7 V per cella hai danni permanenti alla batteria.
Evita di prendere le LiPo cineseria, soldi buttati, spendi qualche Euro in più ma prendi LiPo di buona qualità.

Non so se ti può aiutare, ma io ho seguito questa guida per alimentare arduino esternamente: Alimentare Arduino con una batteria da 9V – jack di collegamento | Michele Maffucci

il jack di collegamento l'ho reperito da un alimentatore di un vecchio digitale terrestre rotto, però credo che ci siano altri dispositivi in cui trovarlo :slight_smile:

@Kappa: Grazie, ma il mio interesse è per batterie ricaricabili :). Tra l'altro, occhio che le batterie da 9V sono una pessima scelta per Arduino, perché hanno una capacità davvero ridicola. Meglio 4 AA!

@astro: Grazie delle delucidazioni, ma forse ti è sfuggita la mia totale ignoranza in materia, per cui ora ho ulteriori domande :D:

2S? Sono batterie come quella che ho erroneamente linkato, ovvero a due celle? In tal caso vorrei partire da una cella singola, per mantenere le cose più semplici, intanto l'ADC non mi servirà granché.

Quindi mi confermi che il primo modulino gestisce solo la ricarica e lo switch dell'alimentazione, mentre NON contiene niente per fare lo step-up, per cui dovrò dotarmi di un secondo modulo, giusto?

A non scendere sotto i 3.3V devo starci attento io, o ci pensa sempre il modulino, tagliando l'output?

Il modulino va bene per qualunque LiPo a cella singola? Anche le 18650 di cui mi ha appena parlato un collega? Mi linkeresti un modulo per batterie a più celle, giusto per curiosità?

D'accordo per evitare la cineseria: su batterie e SD & Co. è assolutamente fuori discussione! Qualche link a negozi affidabili?

Quante domande... :-[

quello sul sito linkato sembra essere solo il caricatore, poi ti serve lo step up, nella foto si vede come va collegato ma dalla descrizione non sembra esserci nell'oggetto.

@Astro per quei caricatori si possono mettere 2 batterie in parallelo? esplodono o semplicemente hanno una vita un po' più breve? interessa molto anche a me.

SukkoPera:
2S? Sono batterie come quella che ho erroneamente linkato, ovvero a due celle?

Si, 2S significa due celle in serie.

Quindi mi confermi che il primo modulino gestisce solo la ricarica e lo switch dell'alimentazione, mentre NON contiene niente per fare lo step-up, per cui dovrò dotarmi di un secondo modulo, giusto?

Quel modulo che hai linkato provvede solo alla ricarica della batteria, tra parentesi non credo gestisca in modo corretto l'utilizzo dell'energia durante la ricarica, tocca vedere lo schema.

A non scendere sotto i 3.3V devo starci attento io, o ci pensa sempre il modulino, tagliando l'output?

Dipende da come è fatto il modulo, o meglio da quale IC utilizza, alcuni gestiscono tutto in automatico, altri si limitano a gestire solo la ricarica.

Il modulino va bene per qualunque LiPo a cella singola? Anche le 18650 di cui mi ha appena parlato un collega?

Anche qui dipende da come è fatto, alcuni ic gestiscono varie tipologie di batterie al litio e/o tensioni nominali e di fine carica, vengono settati tramite un codice impostato su alcuni pin, altri ic sono specifici per un solo tipo di cella al litio.
Le 18650, ottime se della Sanyo, sono celle LiIon compatibili con le LiPo come tensione nominale e procedura di carica.

Mi linkeresti un modulo per batterie a più celle, giusto per curiosità?

Moduli pronti per celle multiple mai visti.
Per le celle acquista Sanyo o Varta come marchio e sei tranquillo, se prendi le 18650 attenzione ad acquistare la versione con le lamelle dei contatti già saldate, il case è in alluminio e saldarci sopra i fili è impossibile se non disponi della necessaria attrezzatura, inoltre rischi di danneggiare la batteria per il troppo calore.

vbextreme:
@Astro per quei caricatori si possono mettere 2 batterie in parallelo? esplodono o semplicemente hanno una vita un po' più breve? interessa molto anche a me.

Le LiPo si possono mettere in parallelo a patto di rispettare queste regole:

Devono essere perfettamente identiche, anche come modello e produttore, preferibilmente dello stesso lotto.
Devono essere nuove, mai usate.
Prima di collegarle vanno messe in condizione di storage, 3.8 V, e perfettamente equalizzate, questo si può fare collegandole in serie tramite un caricatore LiPo dotato di equalizzatore.
Una volta effettuato il collegamento in parallelo il pacco va caricato al 100% e subito riportato in condizioni di storage.
Non rispettare queste regole porta inevitabilmente ad un danneggiamento delle celle con potenziale rischio di incendio della batteria.

p.s.
Le LiPo non esplodono, però diventano l'equivalente di una Molotov se portate al loro limite di resistenza, non è facile arrivarci e tocca veramente esagerare tantissimo con la ricarica, o danneggiare fisicamente il case, per vederle prendere fuoco.

Quel modulino che hai linkato su Amazon, permette la sola ricarica della batteria .
Sull' OUT ti ritrovi la tensione della batteria e presumo che ci sia anche un controllo per evitare che si scarichi troppo perchè vedo troppi chip su quella schedina, pero' bisognerebbe vedere lo schema

Un bel modulino che farebbe al tuo caso è Questo di Sparkfun, ma non lo regalano. Lo trovi anche su robot domestici e a un prezzo migliore anche su robot italy
E' carino perche' oltre che come carica batterie funziona anche da Step-Up ed ha il controllo sulla scarica, impostato a 2.6V ( per modificarlo dovresti sostituire una resistenza ).

per le batterie, le 18650, usa modelli da 2300-2800 mAh e lascia perdere quelle che trovi in giro da 6000-8800 mAh. Personalmente tra quelle che ho provato le "migliori " sono state le Samsung, ma costano un occhio della testa. Comunque anche qui vale la stessa regola... è meglio spendere 8 euro e ti dura tre anni o spenderne uno e ti dura un'anno solo ?

Grazie a tutti delle preziose informazioni. Procediamo un passo alla volta: il caricatore dovrebbe essere basato sul chip TP4056, ma è un design "avanzato", che include un circuito di protezione della batteria.

Qua una recensione del caricatore base.

Qua un videotest del caricatore avanzato. Verso la fine il tipo denuncia un possibile problema di carica infinita nel caso l'utilizzatore sia acceso durante la ricarica, il che mi spaventa un po' :confused:.

Qualcuno (credo gpb), tempo fa aveva postato un link a un sito che vendeva dozzine di LiPo & Co., ma purtroppo ho perso il link. Qualcuno sa di cosa parlo?

Sukko, dai una occhiata a questo alimentatore switching SEPIC TORPEDO di Massimo Del Fedele che lo ha utilizzato nel Fishino MEGA

un possibile problema di carica infinita nel caso l'utilizzatore sia acceso durante la ricarica

il che è probabile, ma basta scollegare l'uscita della batteria quando il circuito viene alimentato esternamente

Grazie a tutti delle info. Ho elaborato un po' è deciso che, contrariamente a quanto pensato inizialmente, lavorerò a 3.3V. Pensavo quindi di usare una singola 18650 con un L4931, regolatore che con i suoi 0.4V di dropout dovrebbe fornirmi 3.3V: come la vedete?

astrobeed:
Le 18650, ottime se della Sanyo,

Le trovi ancora con nome Sanyo, ma mi pare ora siano Panasonic

Domanda: Se il fondoscala dell'ADC è Vcc, come faccio ad accorgermi di quando la tensione inizia a scendere? Leggerò sempre 1023... Devo usare l'internal reference 1.1V con un partitore?

Sul sito del progetto Cave Pearl c'è il blog di un progetto interessante di un datalogger a pile che va per mesi. E' interessante perché non si tratta solamente di esperimenti in laboratorio ma anche sul campo.
Se non ti vuoi leggere tutto il blog i link che ti potrebbero interessare sono questo

e questo

L'informazione curiosa è che le SD non consumano tutte nello stesso modo, alcune consumano decisamente di più e sfortunatamente la stessa SD della stessa marca e modello potrebbe essere stata prodotta con chip diversi e consumare diversamente.

SukkoPera:
Domanda: Se il fondoscala dell'ADC è Vcc, come faccio ad accorgermi di quando la tensione inizia a scendere?

Se la batteria alimenta direttamente Arduino non puoi leggere la sua tensione con l'ADC se Aref è connesso a Vdd, come hai giustamente detto leggi sempre 1023.
Soluzioni possibili:
Collegare Aref ad un riferimento diverso da Vdd e usare un partitore di tensione opportunamente calcolato, p.e. utilizzando il riferimento interno a 1.1V, rammento che è affetto da una tolleranza del +/-10 % pertanto per ottenere misure precise è indispensabile misurare il suo valore reale e inserirlo nel software, la tensione è misurabile con un multimetro sul pin Aref.
Usare il "voltmetro segreto" dei 328P, anche in questo caso per ottenere risultati precisi è necessario misurare il reale valore del riferimento interno.
La seconda soluzione ha il pregio che non richiede un partitore di tensione pertanto non hai nessun consumo della batteria dovuto alla corrente che scorre sulle resistenze, anche se minimo questo consumo può avere effetti sensibili sulla durata della batteria, sopratutto su sistemi a bassissimo consumo grazie allo sleep.

MI inserisco sul Topic per una domanda secca sull'argomento in generale. Se non ricordo male più volte si è detto che le batterie LiPo o LiIon NON vanno usate in tampone, cioè caricate mentre erogano corrente. Ma se il sistema prevedesse la separazione delle due operazioni, cioè la batteria eroga corrente solo in assenza della tensione di alimentazione, e quando torna quest'ultima un commutatore elettronico (p.es. un mosfet) la sgancia dal circuito target e la collega al circuito di carica, potrebbe andare o bisogna proprio aspettare che la batteria si scarichi fino ad una percentuale elevata e poi venga ricaricata completamente?
Il mio dubbio riguarda anche il fatto che se la tensione di alimentazione venisse a mancare a breve distanza di tempo più volte, la batteria sarebbe soggetta a ricariche parziali, potrebbe rovinarsi anche se non lavora in tampone?

Intanto grazie a zoomx per il link, molto interessante, dovrò sicuramente farmi una cultura.

@Michele: Mi pare quanto fa il circuito di Brunello del post #10. Quanto alle ricariche parziali, mi pare di capire che per le LiPo non sia un problema.

@astro: Come detto qualche post fa, vorrei usare una LiPo con un L4931 per generare 3.3V stabili. Preferirei non usare direttamente la LiPo come alimentazione, perché devo interfacciarmi con dei sensori a 3.3V, e ovviamente il livello dei pin di I/O sarà pari a Vcc, per cui mi sembra cosa buona e giusta avere un livello standard e costante.

Ieri ho iniziato a fare qualche misura con due 18650 semi-cineseria che mi hanno prestato, usando un partitore, e ho notato subito che il riferimento 1.1V non deve essere molto ben calibrato, visto che le misure non corrispondevano molto a quelle del tester, per cui la prima cosa che devo fare è misurare adeguatamente questo. Inizialmente ho provato a misurare il pin AREF, ma c'era una tensione che non c'entrava granché. Invece dalle tue parole mi pare di capire che basti fare questo, giusto?

PS: Nel link di zoomx ho trovato quest'altro, con qualche info per migliorare le misure delle batterie: » Measuring the battery without draining it » JeeLabs. Ovviamente però nel mio caso non va bene usare due resistori uguali.

Tampone non significa caricare la batteria mentre la usi, significa mantenere sempre una leggere corrente di carica anche ad apparato spènto, va bene per le batterie al piombo e le NiMh perché hanno una elevata corrente di autoscarica, non va bene per le LiPo.
Un sistema di ricarica ed alimentazione, p.e. come quello degli smartphone, non preleva l'energia direttamente dalla batteria, lo fa tramite un apposito circuito di commutazione che provvede a collegare la batteria quando non c'è l'alimentazione esterna e lo scollega, dal dispositivo, quando è presente per collegarla alla circuiteria di ricarica che a sua volta provvede a fermarsi quando la batteria è carica.
Per farla breve, non si può collegare direttamente una LiPo ad un dispositivo e mettere in parallelo il relativo caricatore, in questo caso la ricarica va fatta con il dispositivo spento.

SukkoPera:
Ier cui la prima cosa che devo fare è misurare adeguatamente questo. Inizialmente ho provato a misurare il pin AREF, ma c'era una tensione che non c'entrava granché.

Ovviamente per poter misurare il valore del riferimento interno 1.1V questo deve essere settato come Aref, altrimenti sul relativo pin trovi Vdd, se usi questa come riferimento, oppure un valore a caso se hai settato per il riferimento esterno, in questo caso devi collegare una tensione ad Aref, p.e. il 3.3V presente su molte board Arduino.