INHOUDSOPGAWE:

Arduino LTC6804 BMS - Deel 2: Balansbord: 5 stappe
Arduino LTC6804 BMS - Deel 2: Balansbord: 5 stappe

Video: Arduino LTC6804 BMS - Deel 2: Balansbord: 5 stappe

Video: Arduino LTC6804 BMS - Deel 2: Balansbord: 5 stappe
Video: Bird 2&3 Bms reset | Electric Scooter | #diy #project 2024, Julie
Anonim
Arduino LTC6804 BMS - Deel 2: Balansraad
Arduino LTC6804 BMS - Deel 2: Balansraad

Deel 1 is hier

'N Batterybestuurstelsel (BMS) bevat funksies om belangrike batterypakparameters te bepaal, insluitend selspannings, batteristroom, seltemperature, ens., of ander gepaste stappe gedoen kan word. In 'n vorige projek (https://www.instructables.com/id/Arduino-LTC6804-Battery-Management-System/) het ek my BMS-ontwerp bespreek, wat gebaseer is op die Linear Technology LTC6804 Multicell Battery Monitor-chip en 'n Arduino-mikrobeheerder. Hierdie projek brei die BMS -projek uit deur die balansering van die battery by te voeg.

Batterypakkies word opgebou uit individuele selle in parallelle en/of reekskonfigurasies. Byvoorbeeld, 'n 8p12s-pakket sou saamgestel word met 12 reeks-gekoppelde stelle van 8 parallel gekoppelde selle. Daar is altesaam 96 selle in die verpakking. Vir die beste prestasie behoort alle 96 selle eienskappe te hê wat ooreenstem, maar daar sal altyd 'n mate van variasie tussen selle wees. Sommige selle het byvoorbeeld 'n laer kapasiteit as ander selle. Namate die pak gelaai is, bereik die selle met 'n laer kapasiteit hul maksimum veilige spanning voor die res van die pak. Die BMS sal hierdie hoogspanning opspoor en verdere laai afsny. Die gevolg is dat 'n groot deel van die pakking nie volledig gelaai is as die BMS laai afskakel as gevolg van die hoër spanning van die swakste sel nie. 'N Soortgelyke dinamika kan tydens ontlading plaasvind, wanneer selle met 'n hoër kapasiteit nie heeltemal kan ontlaai nie, omdat die BMS die las ontkoppel wanneer die swakste battery sy laagspanningslimiet bereik. Die pak is dus net so goed soos sy swakste batterye, soos 'n ketting wat net so sterk is as die swakste skakel.

Een oplossing vir hierdie probleem is om 'n balansbord te gebruik. Alhoewel daar baie strategieë is om die pak te balanseer, is die eenvoudigste 'passiewe' balansborde ontwerp om sommige van die lading van die selle met die hoogste spanning te laat afblaas wanneer die pak vol is. Terwyl 'n bietjie energie vermors word, kan die pak in sy geheel meer energie stoor. Bloeding word gedoen deur 'n bietjie krag af te lei deur 'n weerstand/skakelaarkombinasie wat deur 'n mikrobeheerder beheer word. Hierdie instruksies beskryf 'n passiewe balanseringstelsel wat verenigbaar is met die arduino/LTC6804 BMS van 'n vorige projek.

Voorrade

U kan die Balansbord -PCB hier vanaf PCBWays bestel:

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

Stap 1: Teorie van werking

Teorie van werking
Teorie van werking

Bladsy 62 van die LTC6804 -datablad bespreek selbalansering. Daar is twee opsies: 1) die gebruik van die interne N-kanaal MOSFETS om stroom uit die hoë selle te ontlaai, of 2) die gebruik van die interne MOSFETS om eksterne skakelaars wat die afblaasstroom dra, te beheer. Ek gebruik die tweede opsie omdat ek my eie bloedingskring kan ontwerp om 'n hoër stroom te hanteer as wat ek met die interne skakelaars kon doen.

Die interne MOSFETS is beskikbaar via penne S1-S12, terwyl die selle self verkry word met behulp van penne C0-C12. Die prent hierbo toon een van die 12 identiese bloedingbane. As Q1 aangeskakel word, sal die stroom van C1 na die grond vloei deur R5, wat 'n deel van die lading in sel 1. laat verdwyn. 'n LED bygevoeg sodat die gebruiker op 'n gegewe tydstip kan sien watter selle balanseer.

Die penne S1-S12 word beheer deur die CFGR4 en die eerste 4 bisse van die CFGR5 registergroepe (sien bladsy 51 en 53 van die LTC6804 datablad). Hierdie registergroepe is ingestel in die Arduino -kode (hieronder bespreek) in die funksie balance_cfg.

Stap 2: Skematiese

Skematiese
Skematiese

Die skema vir die BMS -balansbord is ontwerp met Eagle CAD. Dit is redelik eenvoudig. Daar is een ontluchtingskring vir elke segment van die batterypakke. Die skakelaars word beheer deur seine van die LTC6804 deur die JP2 -kop. Die bloedstroom vloei uit die battery deur kop JP1. Let daarop dat die ontluchtingsstroom na die volgende laer batterysegment vloei, sodat C9 byvoorbeeld in C8, ens. Vloei. in die zip -lêer. Die volgende is die onderdele -lys (om een of ander rede werk die oplaai -funksie van Instructables nie vir my nie …)

Aantal Waarde Toestel Pakket Onderdele Beskrywing

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

Stap 3: PCB -uitleg

PCB -uitleg
PCB -uitleg

Die uitleg word meestal bepaal deur die ontwerp van die hoof BMS-stelsel wat in 'n aparte instruksies bespreek word (https://www.instructables.com/id/Arduino-LTC6804-Battery-Management-System/). Die opskrifte JP1 en JP2 moet ooreenstem met die bypassende opskrifte op die BMS. Die Mosfets, ontluchtingsweerstands en LED's is op 'n logiese manier op die Arduino Uno -skild gerangskik. Gerber -lêers is met Eagle CAD geskep en die PCB's is na Sierra Circuits gestuur vir vervaardiging.

Die aangehegte lêer "Gerbers Balance Board.zip.txt" is eintlik 'n zip -lêer wat die Gerbers bevat. U kan net die.txt -deel van die lêernaam uitvee en dit dan uitpak soos 'n normale zip -lêer.

Stuur vir my 'n boodskap as u 'n PCB wil kry, miskien het ek nog 'n paar oor.

Stap 4: PCB -samestelling

Balansbord -PCB's is met die hand gesoldeer met 'n Weller WESD51 temperatuurbeheerde soldeerstasie met 'n ETB ET -reeks 0.093 "skroewedraaier" punt en 0.3mm soldeer. Alhoewel kleiner wenke beter lyk vir ingewikkelde werk, behou dit nie hitte nie en maak dit die werk eintlik moeiliker. Gebruik 'n vloeipen om die printplate skoon te maak voordat dit gesoldeer word. 0.3 mm soldeer werk goed vir hand soldeer SMD dele. Plaas 'n bietjie soldeersel op een stuk en plaas dit dan met 'n pincet of 'n x-acto-mes en plak die stuk vas. Die oorblywende kussing kan dan gesoldeer word sonder dat die deel beweeg. Maak seker dat u die onderdeel of die printplate nie te warm maak nie. Omdat die meeste komponente volgens SMD -standaarde redelik groot is, is die PCB redelik maklik om te monteer.

Stap 5: Kode

Kode
Kode

Die volledige Arduino -kode word verskaf in die vorige instruksies wat hierbo gekoppel is. Hier vestig ek u aandag op die gedeelte wat selbalansering beheer. Soos hierbo genoem, word S1-S12 beheer deur die CFGR4 en die eerste 4 bisse van die CFGR5 registergroepe op die LTC6804 (sien bladsy 51 en 53 van die LTC6804 datablad). Die lusfunksie van die Arduino -kode bespeur die batterysegment met die hoogste spanning en plaas sy nommer in die veranderlike cellMax_i. As die spanning van cellMax_i groter is as die CELL_BALANCE_THRESHOLD_V, sal die kode die funksie balance_cfg () noem en die nommer van die hoë segment, cellMax_i, verbysteek. Die funksie balance_cfg stel die waardes van die toepaslike LTC6804 -register in. 'N Oproep na LTC6804_wrcfg skryf hierdie waardes dan aan die IC en skakel die S -pin aan wat met cellMax_i verband hou.

Aanbeveel: