Cuprins:

Arduino LTC6804 BMS - Partea 2: Placă de echilibru: 5 pași
Arduino LTC6804 BMS - Partea 2: Placă de echilibru: 5 pași

Video: Arduino LTC6804 BMS - Partea 2: Placă de echilibru: 5 pași

Video: Arduino LTC6804 BMS - Partea 2: Placă de echilibru: 5 pași
Video: Lithium-Ion Battery Management System | BMS | LTC6804-2 2024, Iulie
Anonim
Arduino LTC6804 BMS - Partea 2: Placă de echilibru
Arduino LTC6804 BMS - Partea 2: Placă de echilibru

Partea 1 este aici

Un sistem de gestionare a bateriei (BMS) include funcționalitate pentru a detecta parametrii importanți ai acumulatorului, inclusiv tensiunile celulei, curentul bateriei, temperaturile celulei, etc., sau alte acțiuni adecvate pot fi luate. Într-un proiect anterior (https://www.instructables.com/id/Arduino-LTC6804-Battery-Management-System/) am discutat despre designul meu BMS, care se bazează pe cipul Linear Technology LTC6804 Multicell Battery Monitor și un microcontroler Arduino. Acest proiect extinde proiectul BMS prin adăugarea echilibrului bateriei.

Pachetele de baterii sunt construite din celule individuale în configurații paralele și / sau seriale. De exemplu, un pachet de 8p12s ar fi construit folosind 12 seturi conectate în serie de 8 celule conectate în paralel. În pachet ar fi un total de 96 de celule. Pentru cele mai bune performanțe, toate cele 96 de celule ar trebui să aibă proprietăți apropiate, cu toate acestea, vor exista întotdeauna unele variații între celule. De exemplu, unele celule pot avea o capacitate mai mică decât alte celule. Pe măsură ce pachetul este încărcat, celulele cu capacitate mai mică vor atinge tensiunea maximă de siguranță înainte de restul pachetului. BMS va detecta această înaltă tensiune și va întrerupe încărcarea suplimentară. Rezultatul va fi că o mare parte din pachet nu este complet încărcată atunci când BMS întrerupe încărcarea din cauza tensiunii mai mari a celei mai slabe celule. O dinamică similară se poate întâmpla în timpul descărcării, când celulele cu capacitate mai mare nu se pot descărca complet, deoarece BMS deconectează sarcina atunci când cea mai slabă baterie atinge limita sa de tensiune scăzută. Prin urmare, pachetul este la fel de bun ca bateriile sale cele mai slabe, ca un lanț care este la fel de puternic ca și veriga sa cea mai slabă.

O soluție la această problemă este utilizarea unui tablou de echilibru. În timp ce există multe strategii de echilibrare a pachetului, cele mai simple plăci de echilibru „pasive” sunt concepute pentru a elimina o parte din încărcarea celulelor cu cea mai mare tensiune atunci când pachetul se apropie de încărcare completă. În timp ce o anumită energie este irosită, pachetul poate, în ansamblu, să stocheze mai multă energie. Sângerarea se face prin disiparea unei puteri printr-o combinație de rezistență / comutator controlată de un microcontroler. Acest instructable descrie un sistem de echilibrare pasivă compatibil cu arduino / LTC6804 BMS dintr-un proiect anterior.

Provizii

Puteți comanda PCB Board Balance de la PCBWays aici:

www.pcbway.com/project/shareproject/Balance_board_for_Arduino_BMS.html

Pasul 1: Teoria funcționării

Teoria operațiunii
Teoria operațiunii

Pagina 62 din foaia de date LTC6804 discută echilibrarea celulei. Există două opțiuni: 1) utilizarea MOSFET-urilor interne cu canal N pentru a curge curentul din celulele mari sau 2) folosirea MOSFET-urilor interne pentru a controla comutatoarele externe care transportă curentul de purjare. Folosesc a doua opțiune, deoarece îmi pot proiecta propriul circuit de purjare pentru a gestiona curent mai mare decât s-ar putea face folosind comutatoarele interne.

MOSFET-urile interne sunt disponibile prin pinii S1-S12, în timp ce celulele în sine sunt accesate folosind pinii C0-C12. Imaginea de mai sus prezintă unul dintre cele 12 circuite de purjare identice. Când Q1 este pornit, curentul va curge de la C1 la sol prin R5, disipând o parte din încărcătura din celula 1. Am selectat un rezistor de 6 Ohm, 1 Watt, care ar trebui să poată gestiona câțiva miliamperi de curent de purjare.. Există s-a adăugat un LED, astfel încât utilizatorul să poată vedea ce celule se echilibrează la un moment dat.

Pinii S1-S12 sunt controlați de CFGR4 și de primii 4 biți ai grupurilor de registre CFGR5 (vezi paginile 51 și 53 ale fișei tehnice LTC6804). Aceste grupuri de registre sunt setate în codul Arduino (discutat mai jos) în funcția balance_cfg.

Pasul 2: Schematic

Schematic
Schematic

Schema pentru placa de echilibru BMS a fost proiectată utilizând Eagle CAD. Este destul de simplu. Există un circuit de purjare pentru fiecare segment de serie de baterii. Comutatoarele sunt controlate de semnale de la LTC6804 prin antetul JP2. Curentul de purjare curge din acumulator prin antetul JP1. Rețineți că curentul de purjare curge către următorul segment inferior al bateriei, astfel încât, de exemplu, C9 sângerează în C8, etc. în fișierul zip. Următoarea este lista pieselor (Din anumite motive, funcția de încărcare a fișierelor Instructables nu funcționează pentru mine ….)

Valoare cantitate Pachetul dispozitivului Descrierea pieselor

12 LEDCHIPLED_0805 CHIPLED_0805 LED1, LED2, LED3, LED4, LED5, LED6, LED7, LED8, LED9, LED10, LED11, LED12 LED 12 BSS308PEH6327XTSA1 MOSFET-P SOT23-R Q1, Q2, Q3, Q4, Q5, Q6, Q7,, Q9, Q10, Q11, Q12 P-Channel Mosfet 2 PINHD-1X13_BIG 1X13-BIG JP1, JP2 PIN HEADER 12 16 R-US_R2512 R2512 R5, R7, R9, R11, R13, R15, R17, R19, R21, R23, R25, R27 RESISTOR, simbol american 12 1K R-US_R0805 R0805 R4, R6, R8, R10, R12, R14, R16, R18, R20, R22, R24, R26 RESISTOR, simbol american 12 200 R-US_R0805 R0805 R1, R2, R3, R28, R29, R30, R31, R32, R33, R34, R35, R36 RESISTOR, simbol american

Pasul 3: Aspect PCB

Aspect PCB
Aspect PCB

Aspectul este determinat în cea mai mare parte de proiectarea sistemului BMS principal discutat într-un instructable separat (https://www.instructables.com/id/Arduino-LTC6804-Battery-Management-System/). Anteturile JP1 și JP2 trebuie să se potrivească cu anteturile potrivite de pe BMS. Mosfeturile, rezistențele de purjare și LED-urile sunt aranjate într-un mod logic pe scutul Arduino Uno. Fișierele Gerber au fost create folosind Eagle CAD și PCB-urile au fost trimise către Sierra Circuits pentru fabricare.

Fișierul atașat „Gerbers Balance Board.zip.txt” este de fapt un fișier zip care conține Gerbers. Puteți doar să ștergeți partea.txt a numelui fișierului și apoi să o dezarhivați ca un fișier zip normal.

Trimiteți-mi un mesaj dacă doriți să obțineți un PCB, este posibil să mai am câteva.

Pasul 4: Asamblarea PCB

PCB-urile plăcii de echilibru au fost lipite manual folosind o stație de lipit Weller WESD51 cu temperatură controlată, cu vârful ETB ET 0,093 „șurubelniță” și lipit 0,3 mm. Deși sfaturile mai mici pot părea mai bune pentru munca complicată, ele nu rețin căldura și, de fapt, îngreunează munca. Utilizați un stilou pentru curățarea tampoanelor PCB înainte de lipire. Lipirea de 0,3 mm funcționează bine pentru lipirea manuală a pieselor SMD. Așezați un pic de lipit pe un tampon și apoi așezați piesa cu o pensetă sau cuțitul x-acto și fixați-l pe tampon. Tamponul rămas poate fi apoi lipit fără ca piesa să se miște. Asigurați-vă că nu supraîncălziți piesa sau tampoanele PCB. Deoarece majoritatea componentelor sunt destul de mari conform standardelor SMD, PCB este destul de ușor de asamblat.

Pasul 5: Cod

Cod
Cod

Codul Arduino complet este furnizat în instrucțiunile anterioare legate de mai sus. Aici vă voi atrage atenția asupra secțiunii care controlează echilibrarea celulei. După cum s-a menționat mai sus, S1-S12 sunt controlate de CFGR4 și de primii 4 biți ai grupurilor de registre CFGR5 de pe LTC6804 (vezi paginile 51 și 53 din foaia de date LTC6804). Funcția de buclă a codului Arduino detectează cel mai mare segment de baterie de tensiune și plasează numărul său în celula variabilă Max_i. Dacă tensiunea cellMax_i este mai mare decât CELL_BALANCE_THRESHOLD_V, codul va apela funcția balance_cfg (), trecând numărul segmentului înalt, cellMax_i. Funcția balance_cfg setează valorile registrului LTC6804 corespunzător. Un apel către LTC6804_wrcfg scrie apoi aceste valori pe IC, pornind pinul S asociat cu cellMax_i.

Recomandat: