Indholdsfortegnelse:

Arduino LTC6804 BMS - Del 2: Balance Board: 5 trin
Arduino LTC6804 BMS - Del 2: Balance Board: 5 trin

Video: Arduino LTC6804 BMS - Del 2: Balance Board: 5 trin

Video: Arduino LTC6804 BMS - Del 2: Balance Board: 5 trin
Video: Lithium-Ion Battery Management System | BMS | LTC6804-2 2024, Juli
Anonim
Arduino LTC6804 BMS - Del 2: Balance Board
Arduino LTC6804 BMS - Del 2: Balance Board

Del 1 er her

Et batteristyringssystem (BMS) indeholder funktionalitet til at registrere vigtige batteriparametre, herunder cellespændinger, batteristrøm, celletemperaturer osv. Hvis nogen af disse er uden for et foruddefineret område, kan pakken afbrydes fra dens belastning eller oplader eller andre passende foranstaltninger kan træffes. I et tidligere projekt (https://www.instructables.com/id/Arduino-LTC6804-Battery-Management-System/) diskuterede jeg mit BMS-design, der er baseret på Linear Technology LTC6804 Multicell Battery Monitor chip og en Arduino mikrokontroller. Dette projekt udvider BMS -projektet ved at tilføje batteripakkebalancering.

Batteripakker opbygges fra individuelle celler i en parallel- og/eller seriekonfiguration. For eksempel ville en 8p12s-pakke blive konstrueret ved hjælp af 12 serieforbundne sæt af 8 parallelt forbundne celler. Der ville være i alt 96 celler i pakken. For at opnå den bedste ydeevne bør alle 96 celler have egenskaber, der matcher hinanden tæt, men der vil altid være en vis variation mellem cellerne. For eksempel kan nogle celler have lavere kapacitet end andre celler. Da pakken er ladet, når cellerne med lavere kapacitet deres maksimale sikre spænding inden resten af pakken. BMS registrerer denne højspænding og afbryder yderligere opladning. Resultatet vil være, at meget af pakken ikke er fuldt opladet, når BMS afbryder opladningen på grund af den højere spænding i den svageste celle. En lignende dynamik kan ske under afladning, når celler med højere kapacitet ikke kan aflades fuldstændigt, fordi BMS afbryder belastningen, når det svageste batteri når sin lavspændingsgrænse. Pakken er derfor kun så god som dens svageste batterier, ligesom en kæde kun er så stærk som dens svageste led.

En løsning på dette problem er at bruge et balancebord. Selvom der er mange strategier til at balancere pakken, er de enkleste 'passive' balancebrædder designet til at afbløde noget af ladningen fra de højeste spændingsceller, når pakken nærmer sig fuld opladning. Mens noget energi går til spilde, kan pakken som helhed lagre mere energi. Blødning sker ved at aflede noget strøm gennem en modstand/switch -kombination, der styres af en mikrokontroller. Denne instruerbare beskriver et passivt afbalanceringssystem, der er kompatibelt med arduino/LTC6804 BMS fra et tidligere projekt.

Forbrugsvarer

Du kan bestille Balance Board PCB fra PCBWays her:

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

Trin 1: Teori om drift

Operationsteori
Operationsteori

Side 62 i LTC6804 -databladet beskriver cellebalancering. Der er to muligheder: 1) at bruge den interne N-kanal MOSFETS til at udlufte strøm fra de høje celler, eller 2) at bruge den interne MOSFETS til at styre eksterne switches, der bærer udluftningsstrømmen. Jeg bruger den anden mulighed, fordi jeg kan designe mit eget udluftningskredsløb til at håndtere højere strøm, end man kunne gøre ved hjælp af de interne kontakter.

De interne MOSFETS er tilgængelige via ben S1-S12, mens cellerne selv er tilgængelige ved hjælp af ben C0-C12. Billedet ovenfor viser et af de 12 identiske blødningskredsløb. Når Q1 er tændt, strømmer strømmen fra C1 til jorden gennem R5, og spreder noget af ladningen i celle 1. Jeg valgte en 6 Ohm, 1 Watt resister, som skulle kunne håndtere flere milliampere blødningsstrøm.. Der er en LED tilføjet, så brugeren til enhver tid kan se, hvilke celler der balancerer.

Tappene S1-S12 styres af CFGR4 og de første 4 bits i CFGR5-registergrupperne (se side 51 og 53 i LTC6804-databladet). Disse registergrupper er indstillet i Arduino -koden (diskuteret nedenfor) i funktionen balance_cfg.

Trin 2: Skematisk

Skematisk
Skematisk

Skematikken for BMS balancebrættet blev designet ved hjælp af Eagle CAD. Det er ret ligetil. Der er et udluftningskredsløb for hvert segment af batteripakker. Skifterne styres af signaler fra LTC6804 gennem JP2 -headeren. Blødningsstrømmen strømmer fra batteripakken gennem overskrift JP1. Bemærk, at blødningsstrømmen strømmer til det næste lavere batteripakkesegment, så for eksempel bløder C9 ind i C8 osv. Arduino Uno -afskærmningssymbolet er placeret på skematikken for PCB -layoutet beskrevet i trin 3. Et billede med højere opløsning leveres i zip -filen. Det følgende er delelisten (Af en eller anden grund fungerer Instructables -filoverførselsfunktionen ikke for mig ….)

Antal Værdi Enhedspakke Dele Beskrivelse

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, 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

Trin 3: PCB -layout

PCB -layout
PCB -layout

Layoutet bestemmes for det meste af designet af det vigtigste BMS-system, der diskuteres i en separat instruerbar (https://www.instructables.com/id/Arduino-LTC6804-Battery-Management-System/). Overskrifterne JP1 og JP2 skal matche de matchende overskrifter på BMS. Mosfets, blødningsmodstande og lysdioder er arrangeret på en logisk måde på Arduino Uno -skjoldet. Gerber -filer blev oprettet ved hjælp af Eagle CAD og printkortene blev sendt ud til Sierra Circuits til fremstilling.

Den vedhæftede fil "Gerbers Balance Board.zip.txt" er faktisk en zip -fil, der indeholder Gerbers. Du kan bare slette.txt -delen af filnavnet og derefter pakke det ud som en normal zip -fil.

Send mig en besked, hvis du gerne vil have et printkort, jeg kan stadig have nogle tilbage.

Trin 4: PCB -samling

Balance board PCB blev loddet i hånden ved hjælp af en Weller WESD51 temperaturstyret loddestation med en ETB ET serie 0.093 "skruetrækker" spids og 0,3 mm lodning. Selvom mindre tips kan virke bedre til indviklet arbejde, bevarer de ikke varmen og gør faktisk jobbet vanskeligere. Brug en fluspen til at rengøre printkortene før lodning. 0,3 mm lodning fungerer godt til håndlodning af SMD -dele. Læg en smule loddemateriale på den ene pude, og anbring derefter delen med en pincet eller x-acto-kniv, og sæt den pude ned. Den resterende pude kan derefter loddes uden at delen bevæger sig. Sørg for ikke at overopvarme delen eller printkortene. Fordi de fleste komponenter er ret store efter SMD -standarder, er printkortet ret let at samle.

Trin 5: Kode

Kode
Kode

Den komplette Arduino -kode findes i den tidligere instruerbare link til ovenstående. Her vil jeg henlede din opmærksomhed på det afsnit, der styrer cellebalancering. Som nævnt ovenfor styres S1-S12 af CFGR4 og de første 4 bit af CFGR5-registergrupperne på LTC6804 (se side 51 og 53 i LTC6804-databladet). Loop -funktionen i Arduino -koden registrerer batteripakkesegmentet med den højeste spænding og placerer dens nummer i variablen cellMax_i. Hvis spændingen for cellMax_i er større end CELL_BALANCE_THRESHOLD_V, vil koden kalde funktionen balance_cfg () og passere nummeret på det høje segment, cellMax_i. Funktionen balance_cfg angiver værdierne for det relevante LTC6804 -register. Et opkald til LTC6804_wrcfg skriver derefter disse værdier til IC'en og tænder S -pin, der er knyttet til cellMax_i.

Anbefalede: