Tartalomjegyzék:

Arduino LTC6804 BMS - 2. rész: Kiegyenlítő tábla: 5 lépés
Arduino LTC6804 BMS - 2. rész: Kiegyenlítő tábla: 5 lépés

Videó: Arduino LTC6804 BMS - 2. rész: Kiegyenlítő tábla: 5 lépés

Videó: Arduino LTC6804 BMS - 2. rész: Kiegyenlítő tábla: 5 lépés
Videó: Lithium-Ion Battery Management System | BMS | LTC6804-2 2024, Július
Anonim
Arduino LTC6804 BMS - 2. rész: Kiegyenlítő tábla
Arduino LTC6804 BMS - 2. rész: Kiegyenlítő tábla

Az 1. rész itt van

Az Akkumulátorkezelő rendszer (BMS) magában foglalja az akkumulátor fontos paramétereinek érzékelését, beleértve a cellafeszültséget, az akkumulátoráramot, a cellahőmérsékletet stb., vagy más megfelelő intézkedést lehet tenni. Egy korábbi projektben (https://www.instructables.com/id/Arduino-LTC6804-Battery-Management-System/) megbeszéltem a BMS tervezésemet, amely a Linear Technology LTC6804 Multicell Battery Monitor chipen és egy Arduino mikrovezérlőn alapul. Ez a projekt kiterjeszti a BMS projektet az akkumulátorok kiegyensúlyozásával.

Az akkumulátorcsomagok egyes cellákból épülnek fel párhuzamos és/vagy soros konfigurációban. Például egy 8p12s csomagot 12 párhuzamosan kapcsolt cella 12 sorba kapcsolt készletéből készítenének. Összesen 96 sejt lenne a csomagban. A legjobb teljesítmény érdekében mind a 96 cella szorosan illeszkedő tulajdonságokkal rendelkezik, azonban a cellák között mindig lesz némi eltérés. Például egyes cellák kapacitása alacsonyabb lehet, mint más celláké. A csomag feltöltése közben az alacsonyabb kapacitású cellák eléri a maximális biztonságos feszültséget a csomag többi része előtt. A BMS érzékeli ezt a magas feszültséget, és megszakítja a további töltést. Ennek eredményeként a csomag nagy része nincs teljesen feltöltve, amikor a BMS leállítja a töltést a leggyengébb cella nagyobb feszültsége miatt. Hasonló dinamika történhet a kisülés során, amikor a nagyobb kapacitású cellák nem tudnak teljesen lemerülni, mert a BMS leválasztja a terhelést, amikor a leggyengébb akkumulátor eléri az alacsony feszültséghatárt. A csomag tehát csak annyira jó, mint a leggyengébb akkumulátora, mint egy lánc, amely csak olyan erős, mint a leggyengébb láncszeme.

Erre a problémára az egyik megoldás a mérlegtábla használata. Bár sok stratégia létezik a csomag kiegyensúlyozására, a legegyszerűbb „passzív” kiegyensúlyozó táblák úgy vannak kialakítva, hogy lecsökkentsék a legmagasabb feszültségű cellák töltésének egy részét, amikor a csomag a teljes töltés felé közeledik. Bár némi energia kárba vész, a csomag egésze több energiát képes tárolni. A légtelenítés úgy történik, hogy a mikrokontroller által vezérelt ellenállás/kapcsoló kombináción keresztül némi energiát eloszlatnak. Ez az utasítás egy passzív kiegyensúlyozó rendszert ír le, amely kompatibilis az előző projekt arduino/LTC6804 BMS rendszerével.

Kellékek

A Balance Board PCB -t itt rendelheti meg: PCBWays

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

1. lépés: A működés elmélete

A működés elmélete
A működés elmélete

Az LTC6804 adatlap 62. oldala a sejtek kiegyensúlyozását tárgyalja. Két lehetőség közül választhat: 1) a belső N-csatornás MOSFETS használata a magas cellákból származó áram levezetésére, vagy 2) a belső MOSFETS használata a légtelenítő áramot hordozó külső kapcsolók vezérlésére. A második opciót használom, mert saját légtelenítő áramköremet úgy tudom megtervezni, hogy nagyobb áramot kezeljen, mint a belső kapcsolók segítségével.

A belső MOSFETS az S1-S12 csapokon keresztül érhető el, míg maguk a cellák a C0-C12 csapok segítségével érhetők el. A fenti kép a 12 azonos légtelenítő áramkör egyikét mutatja. Amikor a Q1 be van kapcsolva, az áram a C1 -ről a földre áramlik az R5 -en keresztül, és elvezeti a töltés egy részét az 1 -es cellában. 6 ohmos, 1 wattos ellenállást választottam, amely képes kezelni több milliamper légtelenítő áramot. egy LED -et, így a felhasználó láthatja, hogy mely cellák egyensúlyoznak egy adott időpontban.

Az S1-S12 csapokat a CFGR4 és a CFGR5 regisztercsoportok első 4 bitje vezérli (lásd az LTC6804 adatlap 51. és 53. oldalát). Ezeket a regisztercsoportokat az Arduino kód tartalmazza (lásd alább) a balance_cfg függvényben.

2. lépés: Vázlatos

Vázlatos
Vázlatos

A BMS mérlegtábla vázlatát az Eagle CAD segítségével tervezték. Ez meglehetősen egyszerű. Minden akkumulátorcsalád -szegmenshez egy légtelenítő áramkör tartozik. A kapcsolókat az LTC6804 jelei vezérlik a JP2 fejlécen keresztül. A légtelenítő áram az akkumulátorból a JP1 fejrészen keresztül áramlik. Vegye figyelembe, hogy a légtelenítő áram a következő alacsonyabb akkumulátor -szegmensbe áramlik, például a C9 a C8 -ba szivárog, stb. Az Arduino Uno pajzs szimbólum a 3. lépésben leírt NYÁK -elrendezés vázlatán található. a zip fájlban. A következő az alkatrészlista (Valamilyen oknál fogva az Instructables fájlfeltöltési funkció nem működik számomra …)

Mennyiség Érték Eszközcsomag Alkatrészek Leírás

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, Q5, Q5, Q5, Q5, Q9, Q10, Q11, Q12 P-csatorna Mosfet 2 PINHD-1X13_BIG 1X13-BIG JP1, JP2 PIN FEJEZET 16 16 R-US_R2512 R2512 R5, R7, R9, R11, R13, R15, R17, R19, R21, R23, R25, R27 ELLENÁLLÓ, amerikai szimbólum 12 1K R-US_R0805 R0805 R4, R6, R8, R10, R12, R14, R16, R18, R20, R22, R24, R26 RESISTOR, amerikai szimbólum 12 200 R-US_R0805 R0805 R1, R2, R3, R28, R29, R30, R31, R32, R33, R34, R35, R36 RESISTOR, amerikai szimbólum

3. lépés: NYÁK -elrendezés

NYÁK elrendezés
NYÁK elrendezés

Az elrendezést leginkább a fő BMS rendszer kialakítása határozza meg, amelyet külön utasításban tárgyalnak (https://www.instructables.com/id/Arduino-LTC6804-Battery-Management-System/). A JP1 és JP2 fejléceknek meg kell egyezniük a BMS megfelelő fejléceivel. A Mosfets, a légtelenítő ellenállások és a LED -ek logikai módon vannak elrendezve az Arduino Uno pajzson. A Gerber fájlokat az Eagle CAD segítségével hozták létre, és a PCB -ket elküldték a Sierra Circuits -nek gyártás céljából.

A mellékelt "Gerbers Balance Board.zip.txt" fájl valójában egy zip fájl, amely a Gerbereket tartalmazza. Csak törölheti a fájlnév.txt részét, majd kicsomagolhatja, mint egy normál zip fájlt.

Küldjön üzenetet, ha PCB -t szeretne kapni, lehet, hogy még van néhány.

4. lépés: NYÁK -összeszerelés

A kiegyensúlyozott tábla PCB -ket kézzel forrasztották egy Weller WESD51 hőmérséklet -szabályozott forrasztóállomás segítségével, egy ETB ET sorozatú 0,093 "csavarhúzó" csúccsal és 0,3 mm -es forrasztóval. Bár a kisebb tippek jobbnak tűnhetnek a bonyolult munkához, nem tartják meg a hőt, és valójában megnehezítik a munkát. A forrasztás előtt fluxustollal tisztítsa meg a NYÁK párnákat. A 0,3 mm -es forrasztó jól használható SMD alkatrészek kézi forrasztásához. Helyezzen egy kis forrasztást az egyik párnára, majd helyezze az alkatrészt csipesszel vagy x-acto késsel, és ragassza le a betétet. A fennmaradó párna ezután forrasztható, anélkül, hogy az alkatrész elmozdulna. Ügyeljen arra, hogy ne hevítse túl az alkatrészt vagy a NYÁK lapokat. Mivel a legtöbb alkatrész SMD szabvány szerint meglehetősen nagy, a NYÁK -t meglehetősen könnyű összeszerelni.

5. lépés: Kód

Kód
Kód

A teljes Arduino kód megtalálható az előző utasításban, amely a fentiekhez kapcsolódik. Itt felhívom a figyelmét arra a részre, amely a sejtek kiegyensúlyozását szabályozza. Amint fentebb említettük, az S1-S12-t a CFGR4 és a CFGR5 regisztercsoportok első 4 bitje vezérli az LTC6804-en (lásd az LTC6804 adatlap 51. és 53. oldalát). Az Arduino kód hurokfüggvénye érzékeli a legmagasabb feszültségű akkumulátorcsomagot, és a számát a cellMax_i változóba helyezi. Ha a cellMax_i feszültsége nagyobb, mint a CELL_BALANCE_THRESHOLD_V, a kód meghívja a balance_cfg () függvényt, átadva a magas szegmens számát, cellMax_i. A balance_cfg függvény beállítja a megfelelő LTC6804 regiszter értékeit. Az LTC6804_wrcfg hívás ezt követően ezeket az értékeket az IC -be írja, és bekapcsolja a cellMax_i -hez társított S tűt.

Ajánlott: