Primo progetto Arduino - monitoraggio batterie a Litio 18650

Salve ragazzi vorrei cominciare con un progettino semplice, ho un pacco batterie composto da 4 celle al Litio, ho un connettore con 5 pin (Configurazione 4S) che mi permette di tenere sotto controllo la tensione di ogni cella.

In pratica vorrei collegare il pacco batterie ad Arduino e loggare ogni secondo in un file di testo (per cominciare andrebbe bene anche un monitoraggio visivo senza salvataggio) le tensioni delle 4 celle che compongono il pacco,

è semplice? si può fare con Arduino? qualche input sarebbe gradito così capisco da dove cominciare e cosa approfondire...

Grazie :)

PS: Scusate se per caso ho sbagliato sezione

matrix89: PS: Scusate se per caso ho sbagliato sezione

Tranquillo ... la sezione "Generale" va bene :)

Il file di testo dove verrebbe creato? Da chi?

Guglielmo

Mha guarda è indifferente, non so se Arduino abbia una memoria interna o se si può inserire una microSD, potrei anche tenerlo collegato al pc così lo salva sul disco del pc, l'importante per me ora è capire come dare in input ad Arduino le tensioni delle celle e come gestirle poi (che so, inserendole in una variabile o in un array) - visualizzandole semplicemente a schermo sul pc o su un piccolo display - oppure salvandole su file - oppure ancora elaborarle per compiere operazioni più complesse. Questo più o meno e quello che vorrei fare...

Per un progetto di carica batterie LiPO 4S ho usato un LM324 per la rilevazione della tensione sulle 4 celle.

Ognuno dei 4 operazionali del LM324 è stato usato in configurazione differenziale ed alimentato dalla tensione della batteria.

cyberhs: Per un progetto di carica batterie LiPO 4S ho usato un LM324 per la rilevazione della tensione sulle 4 celle.

Ma io credo che lui, molto semplicemente, voglia monitorare, usando 4 analogRead() su 4 ingressi ingressi analogici, semplicemente il valore di tensione di ogni singola cella ... ::)

Guglielmo

No per ora non voglio costruire un caricabatterie, voglio solo avere un pannello di controllo che mi permetta di monitorare 4 o più (potrei arrivare anche a 60) di queste celle in questione (inserendo le rispettive tensioni ripeto in una variabile o in un array) avendo la possibilità poi di eseguire le seguenti operazioni: - visualizzarle semplicemente a schermo sul pc (magari con una grafica del genere: https://upload.wikimedia.org/wikipedia/commons/thumb/4/46/Skizze_Balancer.png/220px-Skizze_Balancer.png ma questa è un altra storia)

  • oppure loggare le tensioni ad intervalli regolari su un file del tipo: 00:00:01 3.99v 3.98v 3.99v 3.98v 00:00:02 3.98v 3.98v 3.98v 3.97v 00:00:03 3.98v 3.98v 3.97v 3.97v 00:00:04 3.98v 3.98v 3.97v 3.97v 00:00:05 3.97v 3.97v 3.97v 3.96v 00:00:06 3.96v 3.97v 3.96v 3.96v 00:00:07 3.96v 3.96v 3.95v 3.96v

  • oppure ancora elaborarle per compiere operazioni più complesse (tipo far scattare un relè quando la tensione raggiunge una certa soglia).

Solo che non so nemmeno dove collegarle :sweat_smile: (in realtà non so nemmeno quale Arduino comprare :stuck_out_tongue: o se Arduino faccia al caso mio)

Spero questa volta di essere stato chiaro

Ma io credo che lui, molto semplicemente, voglia monitorare, usando 4 analogRead() su 4 ingressi ingressi analogici, semplicemente il valore di tensione di ogni singola cella .

Solo che non so nemmeno dove collegarle

Beh, certamente non puoi collegarle così

Potresti collegarle così, ma più aumentano gli elementi, minore è la precisione

Come diceva @cyberhs, la soluzione migliore è usare degli operazionali

In sostanza ti basta usare un pin analogico per leggere la tensione di ogni cella, e quindi fare una stampa su seriale come la vuoi. Se ti accontenti di visualizzare il tutto su un terminale seriale lato PC non devi fare niente, altrimenti basta un banale programma in qualunque linguaggio (personalmente userei Python) che legge la seriale e scrive su file.

Totale: 10 righe di codice, forse meno :D.

Brunello: ... Potresti collegarle così, ma più aumentano gli elementi, minore è la precisione ...

Mah ... credo che debba misurare solo il pacco con 4 celle e se fa bene i necessari partitori (>matrix89: ricorda che in ingresso ad Arduino UNO puoi dare al massimo +5V e quindi i partitori per abbassare i vari valori sono ovviamente obbligatori), magari con un trimmer per la corretta regolazione, direi che la precisione sarà più che sufficiente ;)

Guglielmo

Con ADC 10 bit e i partitori si ottiene una risoluzione di 0.01V sulla prima e sulla seconda cella, sulla terza e sulla quarta 0.02V, più che sufficiente per il 99% delle applicazioni, inutile complicarsi la vita con gli opamp.

Ma avendo a disposizione tutti i positivi (ognuno dei quali sarà in comune al negativo della cella successiva), non è possibile misurare ogni cella separatamente?

SukkoPera: non è possibile misurare ogni cella separatamente?

Solo se usi gli opamp in modo differenziale, vedi schema postato da Brunello, però vale la pena farlo unicamente se ti serve una risoluzione >0.01V su tutte le celle.

Sì, ora ho capito. Il problema è che bisognerebbe cambiare il riferimento per ogni misura, non avevo pensato a questo.

Dovrò approfondire parecchie cose :stuck_out_tongue:

Comunque per quanto riguarda i possibili circuiti che con gli operazionali come quello di Brunello dovrebbe essere la migliore soluzione, volevo ricordare però che io a disposizione ho sia il positivo sia il negativo di ogni cella, quindi perché non collegarli direttamente? la massa deve essere per forza comune?
(mettiamo il caso che non abbia 4 cella ma una sola, ad esempio se metto il ‘+’ in A1 e il ‘-’ in A0 cosa succede? si può fare?)

Per quanto riguarda il programmino che legge il seriale, va bene in JAVA? qualche consiglio su come impostarlo? non ho mai provato a gestire un segnale seriale.

Succede che esplode Arduino, non puoi mettere più di 5V sugli ingressi.

Non supero i 5v se ogni cella arriva al massimo a 4,2v no? o è la somma delle tensioni applicati a tutti gli ingressi che non può superare 5v ?

Il [u]riferimento[/u] è UNO ... GND ... tutte le misure [u]vanno fatte rispetto al riferimento[/u]. Sui pin analogici accetta SOLO tensioni positive con valore massimo +Vcc rispetto al riferimento GND.

Studia il datasheet, capitolo 24, pagina 237.

Guglielmo

Sì ma sul positivo della 2a cella avresti addirittura 8.4V, visto che il riferimento è uno solo ;).

ah ok ecco il problema è il negativo comune, scusate se non lo sapevo ma vi ripeto non l'ho mai utilizzato, ne ho soltanto sentito parlare. In ogni caso devo cominciare a studiare :D grazie a tutti per i consigli, altri sono sempre ben accetti