Innehållsförteckning:

Arduino LTC6804 BMS - Del 2: Balansbräda: 5 steg
Arduino LTC6804 BMS - Del 2: Balansbräda: 5 steg

Video: Arduino LTC6804 BMS - Del 2: Balansbräda: 5 steg

Video: Arduino LTC6804 BMS - Del 2: Balansbräda: 5 steg
Video: Battery Management System (BMS) Design Part 5 - Active Cell / Battery Balancing 2024, Juli
Anonim
Arduino LTC6804 BMS - Del 2: Balansbräda
Arduino LTC6804 BMS - Del 2: Balansbräda

Del 1 är här

Ett batterihanteringssystem (BMS) innehåller funktioner för att känna av viktiga batteriparametrar inklusive cellspänningar, batteriström, celltemperaturer etc. Om något av dessa ligger utanför ett fördefinierat intervall kan paketet kopplas bort från dess last eller laddare eller andra lämpliga åtgärder kan vidtas. I ett tidigare projekt (https://www.instructables.com/id/Arduino-LTC6804-Battery-Management-System/) diskuterade jag min BMS-design, som är baserad på Linear Technology LTC6804 Multicell Battery Monitor chip och en Arduino mikrokontroller. Detta projekt förlänger BMS -projektet genom att lägga till batteripaketbalansering.

Batteripaket byggs upp från enskilda celler i parallella och/eller seriekonfigurationer. Till exempel skulle ett 8p12s-paket konstrueras med 12 seriekopplade uppsättningar med 8 parallellt anslutna celler. Det skulle finnas totalt 96 celler i förpackningen. För bästa prestanda bör alla 96 celler ha väl matchade egenskaper, men det kommer alltid att finnas en viss variation mellan cellerna. Till exempel kan vissa celler ha lägre kapacitet än andra celler. När paketet laddas kommer cellerna med lägre kapacitet att nå sin maximala säkra spänning före resten av förpackningen. BMS kommer att upptäcka denna högspänning och avbryta ytterligare laddning. Resultatet blir att mycket av förpackningen inte är fulladdad när BMS avbryter laddningen på grund av den högre spänningen i den svagaste cellen. En liknande dynamik kan hända under urladdning, när celler med högre kapacitet inte kan ladda ur helt eftersom BMS kopplar ur lasten när det svagaste batteriet når sin lågspänningsgräns. Förpackningen är därför bara lika bra som sina svagaste batterier, som en kedja som är lika stark som sin svagaste länk.

En lösning på detta problem är att använda en balansbräda. Även om det finns många strategier för att balansera förpackningen, är de enklaste "passiva" balansbrädorna utformade för att blöda bort en del av laddningen från de högsta spänningscellerna när förpackningen närmar sig full laddning. Medan en del energi går till spillo kan förpackningen som helhet lagra mer energi. Blödning sker genom att släppa ut lite kraft genom en resistor/switch -kombination som styrs av en mikrokontroller. Denna instruerbara beskriver ett passivt balanseringssystem som är kompatibelt med arduino/LTC6804 BMS från ett tidigare projekt.

Tillbehör

Du kan beställa Balance Board PCB från PCBWays här:

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

Steg 1: Operationsteori

Operationsteori
Operationsteori

Sidan 62 i LTC6804 -databladet diskuterar cellbalansering. Det finns två alternativ: 1) att använda den interna N-kanal MOSFETS för att avlufta ström från de höga cellerna, eller 2) att använda den interna MOSFETS för att styra externa switchar som bär avluftningsströmmen. Jag använder det andra alternativet eftersom jag kan designa min egen blödningskrets för att hantera högre ström än vad som kan göras med de interna omkopplarna.

De interna MOSFETS är tillgängliga via stift S1-S12 medan cellerna själva nås med stift C0-C12. Bilden ovan visar en av de 12 identiska blödningskretsarna. När Q1 slås på kommer strömmen att flöda från C1 till marken genom R5, vilket avlägsnar en del av laddningen i cell 1. Jag valde en 6 Ohm, 1 Watt resistor, som ska kunna hantera flera milliamper avblödningsström. Det finns en LED tillagd så att användaren kan se vilka celler som balanserar vid varje given tidpunkt.

Stiften S1-S12 styrs av CFGR4 och de första 4 bitarna i CFGR5-registergrupperna (se sidorna 51 och 53 i LTC6804-databladet). Dessa registergrupper är inställda i Arduino -koden (diskuteras nedan) i funktionen balance_cfg.

Steg 2: Schematisk

Schematisk
Schematisk

Schemat för BMS -balansbordet har utformats med Eagle CAD. Det är ganska enkelt. Det finns en avluftningskrets för varje batteripaketssegment. Växlarna styrs av signaler från LTC6804 genom JP2 -rubriken. Blödningsströmmen rinner från batteriet genom rubriken JP1. Observera att avluftningsströmmen flödar till nästa lägre batteripacksegment, så till exempel blöder C9 in i C8, etc. Arduino Uno -sköldsymbolen är placerad på schemat för PCB -layouten som beskrivs i steg 3. En bild med högre upplösning tillhandahålls i zip -filen. Följande är listan med delar (Av någon anledning fungerar inte filöverföringsfunktionen för instruktioner för mig …)

Antal värde Enhetspaketets delar Beskrivning

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, Q7, Q8, Q6, 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, amerikansk symbol 12 1K R-US_R0805 R0805 R4, R6, R8, R10, R12, R14, R16, R18, R20, R22, R24, R26 RESISTOR, Amerikansk symbol 12 200 R-US_R0805 R0805 R1, R2, R3, R28, R29, R30, R31, R32, R33, R34, R35, R36 RESISTOR, amerikansk symbol

Steg 3: PCB -layout

PCB -layout
PCB -layout

Layouten bestäms mestadels av utformningen av det huvudsakliga BMS-systemet som diskuteras i en separat instruerbar (https://www.instructables.com/id/Arduino-LTC6804-Battery-Management-System/). Rubrikerna JP1 och JP2 måste matcha matchande rubriker på BMS. Mosfets, blödningsmotstånd och lysdioder är arrangerade på ett logiskt sätt på Arduino Uno -skölden. Gerber -filer skapades med Eagle CAD och kretskorten skickades ut till Sierra Circuits för tillverkning.

Den bifogade filen "Gerbers Balance Board.zip.txt" är faktiskt en zip -fil som innehåller Gerbers. Du kan bara ta bort.txt -delen av filnamnet och sedan packa upp den som en vanlig zip -fil.

Skicka ett meddelande till mig om du vill skaffa ett kretskort, jag kanske fortfarande har några kvar.

Steg 4: Kretskortmontering

Balansplatta PCB löddes för hand med en Weller WESD51 temperaturkontrollerad lödstation med ETB ET -serien 0,093 "skruvmejsel" spets och 0,3 mm lödning. Även om mindre tips kan verka bättre för invecklat arbete, behåller de inte värmen och gör faktiskt jobbet svårare. Använd en flusspenna för att rengöra kretskortsdynorna före lödning. 0,3 mm lödning fungerar bra för handlödning av SMD -delar. Lägg lite löd på en platta och lägg sedan delen med en pincett eller x-acto-kniv och slå ner den. Den återstående dynan kan sedan lödas utan att delen rör sig. Var noga med att inte övervärma delen eller PCB-plattorna. Eftersom de flesta komponenterna är ganska stora enligt SMD -standarder är kretskortet ganska enkelt att montera.

Steg 5: Kod

Koda
Koda

Den fullständiga Arduino -koden finns i den tidigare instruerbara länken till ovan. Här uppmärksammar jag avsnittet som styr cellbalansering. Som nämnts ovan styrs S1-S12 av CFGR4 och de första 4 bitarna i CFGR5-registergrupperna på LTC6804 (se sidorna 51 och 53 i LTC6804-databladet). Loopfunktionen för Arduino -koden detekterar batterisegmentet med högsta spänning och placerar dess nummer i variabeln cellMax_i. Om spänningen för cellMax_i är större än CELL_BALANCE_THRESHOLD_V, kommer koden att kalla funktionen balance_cfg () och passera numret för det höga segmentet, cellMax_i. Funktionen balance_cfg anger värdena för det lämpliga LTC6804 -registret. Ett samtal till LTC6804_wrcfg skriver sedan dessa värden till IC och aktiverar S -stiftet som är associerat med cellMax_i.

Rekommenderad: