Talaan ng mga Nilalaman:

Arduino LTC6804 BMS - Bahagi 2: Balanse ng Lupon: 5 Mga Hakbang
Arduino LTC6804 BMS - Bahagi 2: Balanse ng Lupon: 5 Mga Hakbang

Video: Arduino LTC6804 BMS - Bahagi 2: Balanse ng Lupon: 5 Mga Hakbang

Video: Arduino LTC6804 BMS - Bahagi 2: Balanse ng Lupon: 5 Mga Hakbang
Video: Lithium-Ion Battery Management System | BMS | LTC6804-2 2024, Hulyo
Anonim
Arduino LTC6804 BMS - Bahagi 2: Balanse ng Lupon
Arduino LTC6804 BMS - Bahagi 2: Balanse ng Lupon

Ang Bahagi 1 ay narito

Ang isang Battery Management System (BMS) ay may kasamang pagpapaandar upang maunawaan ang mahalagang mga parameter ng pack ng baterya kabilang ang mga voltages ng cell, kasalukuyang baterya, temperatura ng cell, atbp. Kung alinman sa mga ito ay wala sa isang paunang natukoy na saklaw, ang pack ay maaaring maalis sa pagkakarga mula sa load o charger nito, o iba pang naaangkop na aksyon ay maaaring gawin. Sa isang nakaraang proyekto (https://www.instructables.com/id/Arduino-LTC6804-Battery-Management-System/) Tinalakay ko ang aking disenyo ng BMS, na batay sa Linear Technology LTC6804 Multicell Battery Monitor chip at isang Arduino microcontroller. Pinapalawak ng proyektong ito ang proyekto ng BMS sa pamamagitan ng pagdaragdag ng pagbabalanse ng pack ng baterya.

Ang mga pack ng baterya ay binuo mula sa mga indibidwal na cell sa isang parallel at / o mga pagsasaayos ng serye. Halimbawa, ang isang 8p12s pack ay itatayo gamit ang 12 na hanay na nakakonekta sa serye ng 8 parallel-connected cells. Magkakaroon ng isang kabuuang 96 na mga cell sa pack. Para sa pinakamahusay na pagganap ng lahat ng 96 na mga cell ay dapat na malapit na maitugma ang mga pag-aari, subalit, palaging mayroong ilang pagkakaiba-iba sa mga cell. Halimbawa, ang ilang mga cell ay maaaring may mas mababang kapasidad kaysa sa iba pang mga cell. Habang sisingilin ang pack, maaabot ng mas mababang mga cell na may kapasidad ang kanilang maximum na ligtas na boltahe bago ang natitirang pack. Madiskubre ng BMS ang mataas na boltahe na ito at tatanggalin ang karagdagang pagsingil. Ang resulta ay ang karamihan sa mga pakete ay hindi ganap na sisingilin kapag ang BMS ay tumigil sa pagsingil dahil sa mas mataas na boltahe ng pinakamahina na cell. Ang isang katulad na pabagu-bago ay maaaring mangyari sa panahon ng paglabas, kung ang mga mas mataas na kapasidad na mga cell ay hindi maaaring ganap na maalis dahil ang BMS ay nagdidiskonekta ng pagkarga kapag ang pinakamahina na baterya ay umabot sa mababang limitasyong boltahe. Samakatuwid ang pack ay kasing ganda lamang ng pinakamahina nitong mga baterya, tulad ng isang kadena na kasing lakas lamang ng pinakamahina nitong link.

Ang isang solusyon sa problemang ito ay ang paggamit ng isang balanse board. Habang maraming mga diskarte upang balansehin ang pack, ang pinakasimpleng 'passive' na mga board ng balanse ay idinisenyo upang dumugo ang ilan sa pagsingil ng pinakamataas na boltahe na mga cell kapag ang pack ay malapit nang buong singil. Habang ang ilang enerhiya ay nasayang, ang pack ay maaaring bilang isang buo ay maaaring mag-imbak ng mas maraming enerhiya. Ang pagdurugo ay ginagawa sa pamamagitan ng pagwawaldas ng ilang lakas sa pamamagitan ng kombinasyon ng resistor / switch na kinokontrol ng isang microcontroller. Ang itinuturo na ito ay naglalarawan ng isang passive balancing system na katugma sa arduino / LTC6804 BMS mula sa isang nakaraang proyekto.

Mga gamit

Maaari kang mag-order ng Balance Board PCB mula sa PCBWays dito:

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

Hakbang 1: Teorya ng Pagpapatakbo

Teorya ng Pagpapatakbo
Teorya ng Pagpapatakbo

Ang pahina 62 ng LTC6804 datasheet ay tumatalakay sa pagbabalanse ng cell. Mayroong dalawang mga pagpipilian: 1) gamit ang panloob na N-channel MOSFETS upang dumugo kasalukuyang mula sa mataas na mga cell, o 2) gamit ang panloob na MOSFETS upang makontrol ang mga panlabas na switch na nagdadala ng kasalukuyang dumugo. Ginagamit ko ang pangalawang pagpipilian dahil maaari akong magdisenyo ng aking sariling circuit ng dugo upang hawakan ang mas mataas na kasalukuyang kaysa sa maaaring gawin gamit ang mga panloob na switch.

Ang panloob na MOSFETS ay magagamit sa pamamagitan ng mga pin na S1-S12 habang ang mga cell mismo ay na-access gamit ang mga pin na C0-C12. Ipinapakita ng imahe sa itaas ang isa sa 12 magkatulad na mga circuit ng dugo. Kapag ang Q1 ay naka-on, ang kasalukuyang ay dumadaloy mula sa C1 patungo sa lupa sa pamamagitan ng R5, pinapawi ang ilan sa singil sa cell 1. Pumili ako ng isang 6 Ohm, 1 Watt resister, na dapat hawakan ang maraming mga milliamp ng kasalukuyang dumugo.. Mayroong idinagdag ang isang LED upang makita ng gumagamit kung aling mga cell ang nagbabalanse sa anumang naibigay na oras.

Ang mga pin na S1-S12 ay kinokontrol ng CFGR4 at ang unang 4 na piraso ng mga pangkat ng rehistro ng CFGR5 (tingnan ang mga pahina 51 at 53 ng datosheet ng LTC6804). Ang mga pangkat ng rehistro ay nakatakda sa Arduino code (tinalakay sa ibaba) sa function na balanse_cfg.

Hakbang 2: Skematika

Skematika
Skematika

Ang eskematiko para sa board ng balanse ng BMS ay dinisenyo gamit ang Eagle CAD. Ito ay medyo prangka. Mayroong isang circuit ng dumugo para sa bawat segment ng serye ng pack ng baterya. Ang mga switch ay kinokontrol ng mga signal mula sa LTC6804 sa pamamagitan ng header ng JP2. Ang kasalukuyang daloy ng dugo ay dumadaloy mula sa pack ng baterya sa pamamagitan ng header JP1. Tandaan na ang kasalukuyang dumadaloy na daloy sa susunod na mas mababang segment ng baterya, kaya halimbawa, ang C9 ay dumudugo sa C8, atbp. Ang simbolo ng Arduino Uno na kalasag ay inilalagay sa eskematiko para sa layout ng PCB na inilarawan sa Hakbang 3. Ang isang mas mataas na imahe ng resolusyon ay ibinigay sa zip file. Ang sumusunod ay ang listahan ng mga bahagi (Para sa ilang kadahilanan na ang tampok na Pag-upload ng file na Instructables ay hindi gumagana para sa akin….)

Paglalarawan ng Mga Bahagi ng Package ng Qty Value ng Device

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

Hakbang 3: Layout ng PCB

Layout ng PCB
Layout ng PCB

Ang layout ay halos natutukoy ng disenyo ng pangunahing sistema ng BMS na tinalakay sa isang hiwalay na maaaring turuan (https://www.instructables.com/id/Arduino-LTC6804-Battery-Management-System/). Ang mga header na JP1 at JP2 ay kailangang tumugma sa mga tumutugma na header sa BMS. Ang mga Mosfet, bleed resistors at LEDs ay nakaayos sa isang lohikal na paraan sa Arduino Uno na kalasag. Ang mga mas malalaking file ay nilikha gamit ang Eagle CAD at ang mga PCB ay ipinadala sa Sierra Circuits para sa katha.

Ang nakalakip na file na "Gerbers Balance Board.zip.txt" ay talagang isang zip file na naglalaman ng mga Gerbers. Maaari mo lamang tanggalin ang bahagi ng.txt ng pangalan ng file at pagkatapos ay i-unzip ito tulad ng isang normal na zip file.

Magpadala sa akin ng isang mensahe kung nais mong makakuha ng isang PCB, maaaring mayroon pa akong natitira.

Hakbang 4: Assembly ng PCB

Ang mga PCB ng board ng balanse ay na-solder ng kamay gamit ang isang Weller WESD51 temperatura na kinokontrol na istasyon ng paghihinang na may serye ng ETB ET na serye ng 0.093 "distornilyong" at 0.3mm na panghinang. Bagaman ang mas maliit na mga tip ay mukhang mas mahusay para sa masalimuot na trabaho, hindi nila pinapanatili ang init at talagang pinahihirapan ang trabaho. Gumamit ng isang flux pen upang linisin ang mga pad ng PCB bago maghinang. Gumagana nang maayos ang 0.3 mm na solder para sa mga paghihinang na bahagi ng SMD. Maglagay ng kaunting solder sa isang pad at pagkatapos ay ilagay ang bahagi gamit ang isang tweezers o x-acto na kutsilyo at itama ang pad na iyon. Ang natitirang pad ay maaaring solder nang hindi gumagalaw ang bahagi. Siguraduhing hindi labis na maiinit ang bahagi o mga pad ng PCB. Dahil ang karamihan sa mga bahagi ay medyo malaki sa pamamagitan ng mga pamantayan ng SMD, ang PCB ay medyo madaling magtipun-tipon.

Hakbang 5: Code

Code
Code

Ang kumpletong Arduino code ay ibinibigay sa nakaraang itinuro na naka-link sa itaas. Dito ay kukunin ko ang iyong pansin sa seksyon na kumokontrol sa pagbabalanse ng cell. Tulad ng nabanggit sa itaas, ang S1-S12 ay kinokontrol ng CFGR4 at ang unang 4 na piraso ng mga grupo ng rehistro ng CFGR5 sa LTC6804 (tingnan ang mga pahina 51 at 53 ng datosheet ng LTC6804). Ang pag-andar ng loop ng Arduino code ay nakakakita ng pinakamataas na boltahe ng segment ng baterya at inilalagay ang bilang nito sa variable na cellMax_i. Kung ang boltahe ng cellMax_i ay mas malaki kaysa sa CELL_BALANCE_THRESHOLD_V, tatawagan ng code ang function na balanse_cfg (), na ipinapasa ang bilang ng mataas na segment, cellMax_i. Ang setting ng balanse_cfg ay nagtatakda ng mga halaga ng naaangkop na rehistro ng LTC6804. Ang isang tawag sa LTC6804_wrcfg pagkatapos ay isusulat ang mga halagang ito sa IC, buksan ang S pin na nauugnay sa cellMax_i.

Inirerekumendang: