Përmbajtje:

Arduino LTC6804 BMS - Pjesa 2: Bordi i Bilancit: 5 Hapa
Arduino LTC6804 BMS - Pjesa 2: Bordi i Bilancit: 5 Hapa

Video: Arduino LTC6804 BMS - Pjesa 2: Bordi i Bilancit: 5 Hapa

Video: Arduino LTC6804 BMS - Pjesa 2: Bordi i Bilancit: 5 Hapa
Video: Lithium-Ion Battery Management System | BMS | LTC6804-2 2024, Korrik
Anonim
Arduino LTC6804 BMS - Pjesa 2: Bordi i Bilancit
Arduino LTC6804 BMS - Pjesa 2: Bordi i Bilancit

Pjesa 1 është këtu

Një Sistem i Menaxhimit të Baterisë (BMS) përfshin funksionalitetin për të ndjerë parametrat e rëndësishëm të paketës së baterisë duke përfshirë tensionet e qelizave, rrymën e baterisë, temperaturat e qelizave, etj. Nëse ndonjë nga këto janë jashtë një diapazoni të paracaktuar, paketa mund të shkëputet nga ngarkesa ose ngarkuesi, ose mund të ndërmerren veprime të tjera të përshtatshme. Në një projekt të mëparshëm (https://www.instructables.com/id/Arduino-LTC6804-Battery-Management-System/) kam diskutuar modelin tim BMS, i cili bazohet në çipin e monitorimit të baterisë së shumëfishtë të teknologjisë LTC6804 dhe një mikrokontrollues Arduino Me Ky projekt shtrin projektin BMS duke shtuar balancimin e paketave të baterive.

Pakot e baterive janë ndërtuar nga qeliza individuale në konfigurime paralele dhe/ose seri. Për shembull, një paketë 8p12s do të ndërtohej duke përdorur 12 seri të lidhura me 8 qeliza të lidhura paralelisht. Në paketë do të ketë gjithsej 96 qeliza. Për performancën më të mirë, të gjitha 96 qelizat duhet të kenë karakteristika të ngjashme, megjithatë, gjithmonë do të ketë një ndryshim midis qelizave. Për shembull, disa qeliza mund të kenë kapacitet më të ulët se qelizat e tjera. Ndërsa pakoja është e ngarkuar, qelizat me kapacitet më të ulët do të arrijnë tensionin e tyre maksimal të sigurt para pjesës tjetër të paketës. BMS do të zbulojë këtë tension të lartë dhe do të ndërpresë ngarkimin e mëtejshëm. Rezultati do të jetë që shumica e paketës nuk ngarkohet plotësisht kur BMS të ndërpresë karikimin për shkak të tensionit më të lartë të qelizës më të dobët. Një dinamikë e ngjashme mund të ndodhë gjatë shkarkimit, kur qelizat me kapacitet më të lartë nuk mund të shkarkohen plotësisht sepse BMS shkëput ngarkesën kur bateria më e dobët arrin kufirin e tensionit të ulët. Prandaj, paketimi është po aq i mirë sa bateritë e tij më të dobëta, si një zinxhir që është po aq i fortë sa lidhja e tij më e dobët.

Një zgjidhje për këtë problem është përdorimi i tabelës së bilancit. Ndërsa ka shumë strategji për të balancuar paketën, tabelat më të thjeshta të bilancit 'pasiv' janë krijuar për të hequr disa nga ngarkesa e qelizave të tensionit më të lartë kur paketa është afër ngarkimit të plotë. Ndërsa një pjesë e energjisë humbet, paketa në tërësi mund të ruajë më shumë energji. Gjakderdhja bëhet duke shpërndarë njëfarë fuqie përmes një kombinimi rezistencë/ndërprerës të kontrolluar nga një mikrokontrollues. Ky udhëzues përshkruan një sistem balancimi pasiv të pajtueshëm me arduino/LTC6804 BMS nga një projekt i mëparshëm.

Furnizimet

Ju mund të porositni PCB -në e Bilancit të Bordit nga PCBWays këtu:

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

Hapi 1: Teoria e Operacionit

Teoria e Operacionit
Teoria e Operacionit

Faqja 62 e fletës së të dhënave LTC6804 diskuton balancimin e qelizave. Ekzistojnë dy mundësi: 1) përdorimi i MOSFETS-it të brendshëm N për të rrjedhur rrymën nga qelizat e larta, ose 2) përdorimi i MOSFETS-it të brendshëm për të kontrolluar çelsat e jashtëm që mbartin rrymën e rrjedhjes. Unë përdor opsionin e dytë sepse mund të krijoj qarkun tim të rrjedhjes për të trajtuar rrymë më të lartë sesa mund të bëhet duke përdorur çelsat e brendshëm.

MOSFET-et e brendshme janë të disponueshme përmes kunjave S1-S12 ndërsa vetë qelizat arrihen duke përdorur kunjat C0-C12. Imazhi i mësipërm tregon një nga 12 qarqet identike të gjakderdhjes. Kur Q1 është i ndezur, rryma do të rrjedhë nga C1 në tokë përmes R5, duke shpërndarë një pjesë të ngarkesës në qelizën 1. Zgjodha një rezistencë 6 Ohm, 1 Watt, e cila duhet të jetë në gjendje të trajtojë disa miliamps të rrymës së gjakosjes. një LED e shtuar në mënyrë që përdoruesi të mund të shohë se cilat qeliza janë duke u balancuar në çdo kohë të caktuar.

Kunjat S1-S12 kontrollohen nga CFGR4 dhe 4 bitet e para të grupeve të regjistrave CFGR5 (shih faqet 51 dhe 53 të fletës së të dhënave LTC6804). Këto grupe regjistrash janë vendosur në kodin Arduino (diskutuar më poshtë) në funksionin balance_cfg.

Hapi 2: Skematike

Skematike
Skematike

Skema për tabelën e bilancit BMS është hartuar duke përdorur Eagle CAD. Fairlyshtë mjaft e drejtpërdrejtë. Ekziston një qark gjakderdhjeje për secilin segment të serisë së paketave të baterive. Çelsat kontrollohen nga sinjalet nga LTC6804 përmes kokës JP2. Rryma e rrjedhjes rrjedh nga paketa e baterisë përmes kokës JP1. Vini re se rryma e rrjedhjes rrjedh në segmentin tjetër më të ulët të paketës së baterisë, kështu për shembull, C9 rrjedh në C8, etj. Simboli i mburojës Arduino Uno vendoset në skemën për paraqitjen e PCB -së të përshkruar në Hapin 3. Ofrohet një imazh me rezolucion më të lartë në skedarin zip. Më poshtë është lista e pjesëve (Për disa arsye funksioni i ngarkimit të skedarit Instructables nuk funksionon për mua ….)

Pjesa e Paketës së Pajisjes me Vlerë Sasi Përshkrimi

12 LEDCHIPLED_0805 CHIPLED_0805 LED1, LED2, LED3, LED4, LED5, LED6, LED7, LED8, LED9, LED10, LED11, LED12, LED12 LED 12 BSS308PEH6327XTSA1 MOSFET-P SOT23-R Q1, T2, Q3, Q4, Q5, Q6, 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, simbol amerikan 12 1K R-US_R0805 R0805 R4, R6, R8, R10, R12, R14, R16, R18, R20, R22, R24, R26 RESISTOR, simbol amerikan 12 200 R-US_R0805 R0805 R1, R2, R3, R28, R29, R30, R31, R32, R33, R34, R35, R36 RESISTOR, simbol amerikan

Hapi 3: Paraqitja e PCB

Paraqitja e PCB -së
Paraqitja e PCB -së

Paraqitja përcaktohet kryesisht nga dizajni i sistemit kryesor BMS të diskutuar në një udhëzues të veçantë (https://www.instructables.com/id/Arduino-LTC6804-Battery-Management-System/). Titujt JP1 dhe JP2 duhet të përputhen me titujt që përputhen në BMS. Mosfets, rezistencat e rrjedhjes dhe LED -të janë rregulluar në një mënyrë logjike në mburojën Arduino Uno. Skedarët Gerber u krijuan duke përdorur Eagle CAD dhe PCB -të u dërguan në Sierra Circuits për fabrikim.

Skedari i bashkangjitur "Gerbers Balance Board.zip.txt" është në të vërtetë një skedar zip që përmban Gerbers. Thjesht mund të fshini pjesën.txt të emrit të skedarit dhe pastaj ta shpaketoni si një skedar zip normal.

Më dërgoni një mesazh nëse dëshironi të merrni një PCB, mund të më ketë mbetur akoma.

Hapi 4: Asambleja e PCB

PCB -të e bordit të bilancit u lidhën me dorë duke përdorur një stacion saldimi të kontrolluar nga temperatura Weller WESD51 me një majë ETB ET 0.093 "kaçavidë" dhe saldim 0.3mm. Edhe pse këshillat më të vogla mund të duken më mirë për punë të ndërlikuara, ato nuk ruajnë nxehtësinë dhe në fakt e bëjnë punën më të vështirë. Përdorni një stilolaps fluksi për të pastruar pllakat e PCB para bashkimit. Saldimi 0.3 mm funksionon mirë për pjesët SMD të saldimit me dorë. Vendosni pak saldim në një jastëk dhe më pas vendoseni pjesën me një piskatore ose thikë x-acto dhe kapeni atë jastëk. Jastëku i mbetur pastaj mund të bashkohet pa lëvizur pjesa. Sigurohuni që të mos e ngrohni shumë pjesën ose pllakat e PCB-së. Për shkak se shumica e përbërësve janë mjaft të mëdhenj sipas standardeve SMD, PCB është mjaft e lehtë për tu montuar.

Hapi 5: Kodi

Kodi
Kodi

Kodi i plotë Arduino jepet në udhëzuesin e mëparshëm të lidhur me më sipër. Këtu do të tërheq vëmendjen tuaj në pjesën që kontrollon balancimin e qelizave. Siç u përmend më lart, S1-S12 kontrollohen nga CFGR4 dhe 4 bitet e para të grupeve të regjistrimit CFGR5 në LTC6804 (shih faqet 51 dhe 53 të fletës së të dhënave LTC6804). Funksioni lak i kodit Arduino zbulon segmentin e paketave të baterive të tensionit më të lartë dhe e vendos numrin e tij në qelizën e ndryshueshmeMax_i. Nëse voltazhi i cellMax_i është më i madh se CELL_BALANCE_THRESHOLD_V, kodi do të thërrasë funksionin balance_cfg (), duke kaluar numrin e segmentit të lartë, cellMax_i. Funksioni balance_cfg vendos vlerat e regjistrit përkatës LTC6804. Një thirrje drejtuar LTC6804_wrcfg pastaj i shkruan këto vlera në IC, duke ndezur pinin S të lidhur me cellMax_i.

Recommended: