Sisukord:

Arduino LTC6804 BMS - 2. osa: Tasakaal: 5 sammu
Arduino LTC6804 BMS - 2. osa: Tasakaal: 5 sammu

Video: Arduino LTC6804 BMS - 2. osa: Tasakaal: 5 sammu

Video: Arduino LTC6804 BMS - 2. osa: Tasakaal: 5 sammu
Video: Review of Turmera 4S 12.8V 200A BMS Lithium LiFePo4 Battery Management System | WattHour 2024, Juuli
Anonim
Arduino LTC6804 BMS - 2. osa: Tasakaalulaud
Arduino LTC6804 BMS - 2. osa: Tasakaalulaud

1. osa on siin

Akuhaldussüsteem (BMS) sisaldab funktsioone, mis võimaldavad tuvastada olulisi aku parameetreid, sealhulgas elemendi pinget, aku voolu, elemendi temperatuuri jne. Kui mõni neist on eelnevalt määratletud vahemikust väljas, saab selle laadija või laadija küljest lahti ühendada. või võib võtta muid asjakohaseid meetmeid. Varasemas projektis (https://www.instructables.com/id/Arduino-LTC6804-Battery-Management-System/) arutasin oma BMS-i disaini, mis põhineb Linear Technology LTC6804 multicell Battery Monitor kiibil ja Arduino mikrokontrolleril. See projekt laiendab BMS -i projekti, lisades aku tasakaalustamise.

Akud on ehitatud üksikutest elementidest paralleelselt ja/või seerias. Näiteks ehitatakse 8p12s pakett, kasutades 12 seeriaühendusega 8 paralleelselt ühendatud elemendi komplekti. Pakis oleks kokku 96 rakku. Parima jõudluse tagamiseks peaksid kõik 96 rakku olema tihedalt sobitatud omadustega, kuid rakkude vahel on alati mõningaid erinevusi. Näiteks võivad mõned rakud olla väiksema mahutavusega kui teised. Kui pakend on laetud, saavutavad väiksema mahutavusega elemendid maksimaalse ohutu pinge enne ülejäänud pakki. BMS tuvastab selle kõrgepinge ja katkestab edasise laadimise. Tulemuseks on see, et suur osa pakist ei ole täielikult laetud, kui BMS katkestab laadimise nõrgema elemendi kõrgema pinge tõttu. Sarnane dünaamika võib juhtuda tühjenemise ajal, kui suurema võimsusega elemendid ei saa täielikult tühjeneda, kuna BMS katkestab koormuse, kui nõrgim aku jõuab oma madalpinge piirini. Komplekt on seega ainult nii hea kui selle nõrgimad patareid, nagu kett oleks vaid nii tugev kui selle nõrgim lüli.

Üks lahendus sellele probleemile on tasakaalustusplaadi kasutamine. Kuigi paki tasakaalustamiseks on palju strateegiaid, on lihtsaimad „passiivsed” tasakaalulauad loodud selleks, et tühjendada osa kõrgeima pingega elementide laengust, kui pakend hakkab täis laetama. Kuigi osa energiat raisatakse, võib pakend tervikuna salvestada rohkem energiat. Verejooks toimub nii, et hajutatakse osa võimsusest läbi takisti/lüliti kombinatsiooni, mida juhib mikrokontroller. See juhend kirjeldab passiivset tasakaalustussüsteemi, mis ühildub eelmise projekti arduino/LTC6804 BMS -iga.

Tarvikud

Balance Board PCB saate tellida PCBWays siit:

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

1. samm: toimimise teooria

Operatsiooni teooria
Operatsiooni teooria

LTC6804 andmelehe lehekülg 62 käsitleb rakkude tasakaalustamist. On kaks võimalust: 1) sisemise N-kanaliga MOSFETS-i kasutamine kõrgete elementide voolu eemaldamiseks või 2) sisemise MOSFETS-i kasutamine väljundvoolu kandvate väliste lülitite juhtimiseks. Ma kasutan teist võimalust, sest ma saan kujundada oma verejooksuahela, et käidelda suuremat voolu, kui seda saaks teha sisemiste lülitite abil.

Sisemised MOSFETS-id on saadaval tihvtide S1-S12 kaudu, samas kui rakkudele endile pääseb juurde tihvtide C0-C12 abil. Ülaltoodud pilt näitab ühte 12 identsest verejooksuahelast. Kui Q1 on sisse lülitatud, voolab vool C1 -st maapinnale läbi R5, hajutades osa laengust lahtris 1. Valisin 6 -oomise, 1 -vatise takisti, mis peaks suutma hakkama saada mitme milliamperi tühjendusvooluga. lisatud LED, et kasutaja saaks näha, millised lahtrid igal ajahetkel tasakaalustavad.

Tihvte S1-S12 juhivad CFGR4 ja CFGR5 registrirühmade esimesed 4 bitti (vt LTC6804 andmelehe lehekülgi 51 ja 53). Need registrirühmad on seatud funktsiooni Arduino koodis (mida arutatakse allpool) funktsioonis balanss_cfg.

2. samm: skemaatiline

Skeem
Skeem

BMS tasakaalulaua skemaatiline kujundus on tehtud Eagle CAD abil. See on üsna lihtne. Iga aku seeria segmendi jaoks on üks tühjendusring. Lüliteid juhivad signaalid LTC6804 kaudu JP2 päise kaudu. Tühjendusvool voolab akust läbi päise JP1. Pange tähele, et tühjendusvool voolab järgmisesse madalamasse akuplokki, nii et näiteks C9 voolab C8 -sse jne. Arduino Uno kilbi sümbol asetatakse punktis 3 kirjeldatud trükkplaadi skeemile. Esitatakse kõrgema eraldusvõimega pilt zip -failis. Järgmine on osade loend (mingil põhjusel ei tööta Instructables failide üleslaadimise funktsioon minu jaoks …).

Kogus Väärtus Seadme pakett Osad Kirjeldus

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, Q9, Q10, Q11, Q12 P-kanal 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, Ameerika sümbol 12 1K R-US_R0805 R0805 R4, R6, R8, R10, R12, R14, R16, R18, R20, R22, R24, R26 RESISTOR, Ameerika sümbol 12 200 R-US_R0805 R0805 R1, R2, R3, R28, R29, R30, R31, R32, R33, R34, R35, R36 RESISTOR, Ameerika sümbol

3. samm: PCB paigutus

PCB paigutus
PCB paigutus

Paigutuse määrab enamasti BMS-i põhisüsteemi disain, mida käsitletakse eraldi juhendis (https://www.instructables.com/id/Arduino-LTC6804-Battery-Management-System/). Päised JP1 ja JP2 peavad sobima BMS -i vastavate päistega. Mosfetid, õhutakistid ja LED -id on Arduino Uno kilbil loogilisel viisil paigutatud. Gerberi failid loodi Eagle CAD -i abil ja PCB -d saadeti Sierra Circuits'ile valmistamiseks.

Lisatud fail "Gerbers Balance Board.zip.txt" on tegelikult Gerbersi sisaldav zip -fail. Saate lihtsalt failinime.txt osa kustutada ja seejärel lahti pakkida nagu tavaline ZIP -fail.

Saatke mulle sõnum, kui soovite PCB -d saada, võib -olla on mul mõni osa alles.

4. samm: trükkplaatide kokkupanek

Tasakaaluplaadi trükkplaadid joodeti käsitsi, kasutades Welleri WESD51 temperatuuriga reguleeritud jootmisjaama, millel oli ETB ET -seeria 0,093 "kruvikeeraja" ots ja 0,3 mm joodis. Kuigi väiksemad näpunäited võivad keerulise töö jaoks paremad tunduda, ei säilita need soojust ja raskendavad tegelikult tööd. Puhastage PCB -plaate enne jootmist flux -pliiatsiga. 0,3 mm joodis sobib hästi SMD osade käsitsi jootmiseks. Asetage ühele padjale natuke jootet ja seejärel asetage osa pintsettide või x-acto noaga ja kleepige see padi alla. Seejärel saab järelejäänud padja joota, ilma et osa liiguks. Veenduge, et osa või PCB-plaate ei kuumutataks üle. Kuna enamik komponente on SMD standardite järgi üsna suured, on trükkplaati üsna lihtne kokku panna.

Samm: kood

Kood
Kood

Arduino täielik kood on toodud eelmises ülaltoodud lingis. Siinkohal juhin teie tähelepanu jaotisele, mis kontrollib rakkude tasakaalustamist. Nagu eespool mainitud, juhivad S1-S12 CFGR4 ja LTC6804 CFGR5 registrirühmade esimesed 4 bitti (vt LTC6804 andmelehe lk 51 ja 53). Arduino koodi tsüklifunktsioon tuvastab kõrgeima pingega akupaketi segmendi ja paigutab selle arvu muutuvasse cellMax_i. Kui cellMax_i pinge on suurem kui CELL_BALANCE_THRESHOLD_V, kutsub kood funktsiooni balance_cfg (), edastades kõrge segmendi numbri cellMax_i. Funktsioon balance_cfg määrab vastava registri LTC6804 väärtused. Kõne numbrile LTC6804_wrcfg kirjutab need väärtused IC -le, lülitades sisse cellMax_i -ga seotud S -tihvti.

Soovitan: