Innehållsförteckning:
- Tillbehör
- Steg 1: Operationsteori
- Steg 2: Schematisk
- Steg 3: PCB -layout
- Steg 4: Kretskortmontering
- Steg 5: Kod
Video: Arduino LTC6804 BMS - Del 2: Balansbräda: 5 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:37
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
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
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
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
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:
Arduino Car Reverse Parking Alert System - Steg för steg: 4 steg
Arduino Car Reverse Parking Alert System | Steg för steg: I det här projektet kommer jag att utforma en enkel Arduino Car Reverse Parking Sensor Circuit med Arduino UNO och HC-SR04 Ultrasonic Sensor. Detta Arduino -baserade bilomvändningsvarningssystem kan användas för autonom navigering, robotavstånd och andra
Akustisk levitation med Arduino Uno Steg-för-steg (8-steg): 8 steg
Akustisk levitation med Arduino Uno Steg-för-steg (8-steg): ultraljudsgivare L298N Dc kvinnlig adapter strömförsörjning med en manlig DC-pin Arduino UNOBreadboardHur det fungerar: Först laddar du upp kod till Arduino Uno (det är en mikrokontroller utrustad med digital och analoga portar för att konvertera kod (C ++)
Öppen källkod 3/4/5S Litium BMS: 4 steg
Öppen källkod 3/4/5S litium BMS: I denna instruktionsbok kommer utformningen av BMS345 att förklaras. Designen är helt öppen källkod, designfilerna finns i GitHub-länken i det sista steget. Det finns också en begränsad tillgång på Tindie. BMS345 är ett BatteryManagement
Li-jon batteripaket 12s 44,4V med BMS: 5 steg
Li-ion batteripaket 12s 44,4V med BMS: Li-ion celler finns i många storlekar och kapaciteter. Det är dock inte lätt att få en " redo att köra " batteripaket för det egna projektet. Jag tillbringade lite tid att designa mitt eget paket lämpligt för applikationer med hög effekt, modulär design för att öka
DIY 4S litiumbatteri med BMS: 6 steg
DIY 4S litiumbatteripaket med BMS: Jag har tittat och läst mer än en handledning eller instruktioner om litiumjonbatterier och batteripaket, men jag har inte riktigt sett ett som ger dig många detaljer. Som nybörjare hade jag svårt att hitta bra svar, så mycket av detta var tri