- Misurazione della tensione delle singole celle in una pila di batterie in serie
- Circuito differenziale per misurare la tensione delle singole celle
- Schema elettrico
- Progettazione e fabbricazione di PCB utilizzando Easy EDA
- Calcolo e ordinazione di campioni online
- Test del circuito di monitoraggio della tensione
- Misurazione della tensione della cella al litio utilizzando Arduino
- Programmazione di Arduino
- Visualizzazione della tensione delle singole celle funzionante
Il chilometraggio e le prestazioni di un veicolo elettrico dipendono dalla capacità e dall'efficienza del suo pacco batterie. Mantenere la batteria in piena salute è responsabilità del sistema di gestione della batteria (BMS). Un BMS è un'unità sofisticata in un veicolo elettrico che svolge molte attività come monitorare le celle, bilanciarle e persino proteggerle dai cambiamenti di temperatura. Ne abbiamo già imparato abbastanza in questo articolo sul sistema di gestione della batteria, quindi dai un'occhiata se sei nuovo qui.
Per fare qualsiasi cosa, il primo passo per il BMS sarebbe conoscere lo stato corrente delle celle nel pacco batteria al litio. Questo viene fatto misurando la tensione e la corrente (a volte anche la temperatura) delle celle nel pacco. Solo con questi due valori il BMS può calcolare il SOC o SOH ed eseguire il bilanciamento delle celle ecc. Quindi misurare la tensione e la corrente della cella è vitale per qualsiasi circuito BMS, sia esso un semplice power bank o una batteria per laptop o un pacco complicato come EV / Batterie solari.
In questo articolo impareremo come misurare la tensione delle singole celle delle celle utilizzate in un pacco batteria al litio. Per il bene di questo progetto useremo quattro celle 18650 al litio collegate in serie per formare un pacco batteria e progetteremo un semplice circuito usando amplificatori operazionali per misurare le tensioni delle singole celle e visualizzarlo su uno schermo LCD usando Arduino.
Misurazione della tensione delle singole celle in una pila di batterie in serie
Il problema con la misurazione della tensione delle singole celle in un pacco di batterie collegate in serie è che il punto di riferimento rimane lo stesso. L'immagine sotto illustra lo stesso
Per semplicità, supponiamo che tutte e quattro le celle abbiano un livello di tensione di 4V come mostrato sopra. Ora, se utilizziamo un microcontrollore come Arduino per misurare la tensione della cella, non avremo problemi a misurare la tensione della 1 a cella poiché ha l'altra estremità collegata a massa. Ma per le altre celle dobbiamo misurare la tensione di quella cella insieme alle celle precedenti, ad esempio quando misuriamo la tensione della quarta cella misureremo la tensione di tutte e quattro le celle insieme. Questo perché il punto di riferimento non può essere modificato da terra.
Quindi dobbiamo introdurre qui qualche circuito extra che potrebbe aiutarci a misurare le singole tensioni. In modo approssimativo è usare un potenziale divisore per mappare i livelli di tensione e quindi misurarli, ma questo metodo ridurrà la risoluzione del valore letto a più di 0,1 V. Quindi in questo tutorial useremo il circuito differenziale Op-Amp per misurare la differenza tra i terminali di ciascuna cella per misurare la tensione individuale.
Circuito differenziale per misurare la tensione delle singole celle
Sappiamo già che un amplificatore operazionale quando funziona come amplificatore differenziale fornisce la differenza tra i due valori di tensione forniti al suo pin invertente e non invertente. Quindi, per il nostro scopo di misurare 4 tensioni di cella, abbiamo bisogno di tre amplificatori operazionali differenziali come mostrato di seguito.
Nota che questa immagine è solo per la rappresentazione; il circuito effettivo necessita di più componenti e verrà discusso più avanti in questo articolo. Le prime misure O1 op-amp la tensione del 2 ° cellula calcolando la differenza tra 2 ° terminale cellulare e 1 ° terminale cellulare che è (8-4). Analogamente l'op-amp O2 e O3 misure il 3 ° e 4 ° rispettivamente tensione di cella. Non abbiamo utilizzato un op-amp per il 1 ° cella dal momento che potrebbe essere misurata direttamente.
Schema elettrico
Di seguito è riportato lo schema del circuito completo per il monitoraggio della tensione multicella nel pacco batterie al litio. Il circuito è stato progettato utilizzando EasyEDA e lo useremo anche per fabbricare il nostro PCB.
Come puoi vedere, abbiamo due amplificatori operazionali ad alta tensione Rail to Rail OPA4197 nel nostro circuito entrambi alimentati dalla tensione totale del pacco. Un IC (U1) viene utilizzato per creare un circuito buffer noto anche come seguace di tensione, mentre l'altro IC (U2) viene utilizzato per formare il circuito dell'amplificatore differenziale. È necessario un circuito tampone per impedire che una qualsiasi delle celle venga caricata individualmente, il che non dovrebbe essere consumato corrente da una singola cella ma solo formare il pacco nel suo insieme. Poiché il circuito buffer ha un'impedenza di ingresso molto elevata, possiamo usarlo per leggere la tensione dalla cella senza trarne alimentazione.
Tutti i quattro amplificatori operazionali nell'IC U1 vengono utilizzati rispettivamente per tamponare la tensione delle quattro celle. Le tensioni di ingresso dalle celle sono etichettate da B1 + a B4 + e la tensione di uscita tamponata è etichettata da B1_Out a B4_Out. Questa tensione tamponata viene quindi inviata all'amplificatore differenziale per misurare la tensione della singola cella come discusso sopra. Il valore di tutta la resistenza è impostato su 1K poiché il guadagno dell'amplificatore differenziale è impostato sull'unità. È possibile utilizzare qualsiasi valore di resistenza, ma dovrebbero essere tutti dello stesso valore, ad eccezione dei resistori R13 e R14. Questi due resistori formano un potenziale divisore per misurare la tensione del pacco batteria in modo da poterla confrontare con la somma delle tensioni delle celle misurate.
Rail to Rail, amplificatore operazionale ad alta tensione
Il circuito di cui sopra richiede l'utilizzo di un amplificatore operazionale ad alta tensione Rail to Rail come OPA4197 per due motivi. Entrambi i circuiti integrati dell'amplificatore operazionale funzionano con la tensione del pacco che è un massimo di (4,3 * 4) 17,2 V, quindi l'amplificatore operazionale dovrebbe essere in grado di gestire tensioni elevate. Inoltre, poiché stiamo utilizzando un circuito buffer, l'uscita del buffer dovrebbe essere uguale alla tensione del pacco per il terminale della quarta cella, il che significa che la tensione di uscita dovrebbe essere uguale alla tensione operativa dell'amplificatore operazionale, quindi dobbiamo usare un binario per Amplificatore operazionale ferroviario
Se non riesci a trovare un amplificatore operazionale rail to rail, puoi sostituire l'IC con un semplice LM324. Questo IC può gestire l'alta tensione ma non può fungere da rail to rail, quindi è necessario utilizzare una resistenza di pull up di 10k sul primo pin dell'IC Op-Amp U1.
Progettazione e fabbricazione di PCB utilizzando Easy EDA
Ora che il nostro circuito è pronto, è tempo di fabbricarlo. Poiché l'amplificatore operazionale che sto utilizzando è disponibile solo nel pacchetto SMD, ho dovuto fabbricare un PCB per il mio circuito. Quindi, come sempre abbiamo utilizzato lo strumento EDA online chiamato EasyEDA per fabbricare il nostro PCB perché è molto comodo da usare poiché ha una buona raccolta di impronte ed è open source.
Dopo aver progettato il PCB, possiamo ordinare i campioni di PCB tramite i loro servizi di fabbricazione di PCB a basso costo. Offrono anche un servizio di approvvigionamento dei componenti in cui hanno un ampio stock di componenti elettronici e gli utenti possono ordinare i componenti richiesti insieme all'ordine PCB.
Durante la progettazione dei tuoi circuiti e PCB, puoi anche rendere pubblici i tuoi progetti di circuiti e PCB in modo che altri utenti possano copiarli o modificarli e possano trarre vantaggio dal tuo lavoro, abbiamo anche reso pubblici tutti i nostri layout di circuiti e PCB per questo circuito, controlla il link sottostante:
easyeda.com/CircuitDigest/Multicell-Voltage-measuring-for-BMS
È possibile visualizzare qualsiasi strato (Top, Bottom, Topsilk, Bottomsilk ecc.) Del PCB selezionando il layer dalla finestra "Layers". Recentemente hanno anche introdotto un'opzione di visualizzazione 3D in modo da poter visualizzare anche il PCB di misurazione della tensione multicella, su come si occuperà della fabbricazione utilizzando il pulsante Vista 3D in EasyEDA:
Calcolo e ordinazione di campioni online
Dopo aver completato la progettazione di questo circuito di misurazione della tensione con cella al litio, è possibile ordinare il PCB tramite JLCPCB.com. Per ordinare il PCB da JLCPCB, è necessario Gerber File. Per scaricare i file Gerber del tuo PCB, fai clic sul pulsante Genera file di fabbricazione nella pagina dell'editor EasyEDA, quindi scarica il file Gerber da lì oppure puoi fare clic su Ordina su JLCPCB come mostrato nell'immagine sottostante. Questo ti reindirizzerà a JLCPCB.com, dove puoi selezionare il numero di PCB che desideri ordinare, quanti strati di rame ti servono, lo spessore del PCB, il peso del rame e persino il colore del PCB, come l'istantanea mostrata di seguito:
Dopo aver fatto clic su ordine sul pulsante JLCPCB, ti porterà al sito Web JLCPCB dove puoi ordinare qualsiasi PCB a colori a un prezzo molto basso che è $ 2 per tutti i colori. Anche il loro tempo di costruzione è molto inferiore, ovvero 48 ore con consegna DHL di 3-5 giorni, in pratica riceverai i tuoi PCB entro una settimana dall'ordine. Inoltre, offrono anche uno sconto di $ 20 sulla spedizione per il tuo primo ordine.
Dopo aver ordinato il PCB, puoi controllare lo stato di avanzamento della produzione del tuo PCB con data e ora. Lo controlli andando nella pagina Account e fai clic sul collegamento "Avanzamento produzione" sotto il PCB come, mostrato nell'immagine sottostante.
Dopo pochi giorni dall'ordinazione di PCB, ho ricevuto i campioni di PCB in una bella confezione come mostrato nelle immagini sottostanti.
Dopo esserti assicurato che le tracce e le impronte fossero corrette. Ho proceduto con l'assemblaggio del PCB, ho utilizzato header femminili per posizionare Arduino Nano e LCD in modo da poterli rimuovere successivamente se ne avessi bisogno per altri progetti. La scheda completamente saldata si presenta così sotto
Test del circuito di monitoraggio della tensione
Dopo aver saldato tutti i componenti, è sufficiente collegare il pacco batteria al connettore H1 sulla scheda. Ho utilizzato cavi di collegamento per assicurarmi di non modificare accidentalmente la connessione in futuro. Fare molta attenzione a non collegarlo nel modo sbagliato in quanto potrebbe portare a cortocircuiti e danneggiare le batterie o il circuito in modo permanente. Di seguito è mostrato il mio PCB con la batteria che ho usato per il test.
Ora usa il multimetro sul terminale H2 per misurare le singole tensioni di vendita. Il terminale è contrassegnato da numeri per identificare la tensione della cella che viene misurata. Con qui possiamo concludere che il circuito funziona. Ma per renderlo più interessante, colleghiamo un LCD e utilizziamo un Arduino per misurare questi valori di tensione e visualizzarli sullo schermo LCD.
Misurazione della tensione della cella al litio utilizzando Arduino
Il circuito per collegare Arduino al nostro PCB è mostrato di seguito. Mostra come collegare Arduino Nano all'LCD.
Il pin di intestazione H2 sul PCB deve essere collegato ai pin analogici della scheda Arduino come mostrato sopra. I pin analogici da A1 ad A4 vengono utilizzati per misurare rispettivamente le quattro tensioni di cella, mentre il pin A0 è collegato al pin di intestazione v 'di P1. Questo pin a V può essere utilizzato per misurare la tensione totale del pacco. Abbiamo anche collegato il 1 ° perno P1 al pin Vin di Arduino e 3 ° pin di P1 o pin terra di Arduino al potere Arduino con il pacco batteria.
Possiamo scrivere un programma per misurare tutte le quattro tensioni di cella e il voltaggio del pacco batteria e visualizzarlo sul display LCD. Per renderlo più interessante ho anche aggiunto tutte e quattro le tensioni di cella e confrontato il valore con la tensione misurata del pacco per verificare quanto vicino stiamo effettivamente misurando la tensione.
Programmazione di Arduino
Il programma completo si trova alla fine di questa pagina. Il programma è piuttosto semplice, usiamo semplicemente la funzione di lettura analogica per leggere le tensioni delle celle utilizzando il modulo ADC e visualizzare il valore di tensione calcolato sul display LCD utilizzando la libreria LCD.
float Cell_1 = analogRead (A1) * (5.0 / 1023.0); // Misura la tensione della prima cella lcd.print ("C1:"); lcd.print (Cell_1);
Nello snippet sopra abbiamo misurato la tensione della cella 1 e l'abbiamo moltiplicata per 5/1023 per convertire il valore ADC da 0 a 1023 in 0 a 5V effettivi. Quindi visualizziamo il valore di tensione calcolato sull'LCD. Allo stesso modo lo facciamo per tutte e quattro le celle e anche per il pacco batteria totale. Abbiamo anche utilizzato la tensione totale variabile per sommare tutte le tensioni delle celle e visualizzarle sul display LCD come mostrato di seguito.
float Total_Voltage = Cell_1 + Cell_2 + Cell_3 + Cell_4; // Somma tutti e quattro i valori di tensione misurati lcd.print ("Total:"); lcd.print (Total_Voltage);
Visualizzazione della tensione delle singole celle funzionante
Una volta che sei pronto con il circuito e il codice, carica il codice sulla scheda Arduino e collega il power bank al PCB. Il display LCD dovrebbe ora visualizzare la tensione delle singole celle di tutte e quattro le celle come mostrato di seguito.
Come puoi vedere, la tensione visualizzata per le celle da 1 a 4 è rispettivamente 3,78 V, 3,78 V, 3,82 V e 3,84 V. Quindi ho usato il mio multimetro per controllare la tensione effettiva di queste celle che si è rivelata leggermente diversa, la differenza è tabulata di seguito.
Tensione misurata |
Tensione effettiva |
3,78 V. |
3,78 V. |
3,78 V. |
3,78 V. |
3.82V |
3,81V |
3.84V |
3.82V |
Come puoi vedere, stiamo ottenendo risultati accurati per le celle uno e due, ma c'è un errore fino a 200 mV per le celle 3 e 4. È molto probabile che questo sia previsto per il nostro progetto. Poiché stiamo utilizzando un circuito differenziatore op-amp, la precisione della tensione misurata diminuirà all'aumentare del numero di celle.
Ma questo errore è un errore fisso e può essere corretto nel programma, prendendo le letture del campione e aggiungendo un moltiplicatore per correggere l'errore. Sullo schermo LCD successivo è anche possibile vedere la somma della tensione misurata e la tensione effettiva del pacco misurata attraverso il potenziale divisore. Lo stesso è mostrato di seguito.
La somma delle tensioni misurate è 15,21V e la tensione effettiva misurata attraverso il pin A0 di Arduino risulta essere 15,22V. Quindi la differenza è di 100 mV, il che non è male. Mentre questo tipo di circuito può essere utilizzato per un numero minore di fecce come nei power bank o nelle batterie dei laptop. Il BMS del veicolo elettrico utilizza un tipo speciale di circuiti integrati come l'LTC2943 perché anche un errore di 100 mV non è tollerabile. Tuttavia abbiamo imparato come farlo per circuiti su piccola scala in cui il prezzo è un vincolo.
Il funzionamento completo dell'allestimento si trova nel video linkato di seguito. Spero che il progetto ti sia piaciuto e che abbia imparato qualcosa di utile da esso. Se hai domande, lasciale nella sezione commenti o usa i forum per risposte più rapide.