Sisällysluettelo:

Arduino LTC6804 BMS - Osa 2: Tasauspöytä: 5 vaihetta
Arduino LTC6804 BMS - Osa 2: Tasauspöytä: 5 vaihetta

Video: Arduino LTC6804 BMS - Osa 2: Tasauspöytä: 5 vaihetta

Video: Arduino LTC6804 BMS - Osa 2: Tasauspöytä: 5 vaihetta
Video: Lithium-Ion Battery Management System | BMS | LTC6804-2 2024, Marraskuu
Anonim
Arduino LTC6804 BMS - Osa 2: Tasauspöytä
Arduino LTC6804 BMS - Osa 2: Tasauspöytä

Osa 1 on täällä

Akunhallintajärjestelmä (BMS) sisältää toiminnot, joilla voidaan tunnistaa tärkeät akkuparametrit, kuten kennojännitteet, akun virta, kennolämpötilat jne. Jos jokin näistä on ennalta määritellyn alueen ulkopuolella, akku voidaan irrottaa latauksesta tai laturista tai muita asianmukaisia toimenpiteitä. Aiemmassa projektissa (https://www.instructables.com/id/Arduino-LTC6804-Battery-Management-System/) keskustelin BMS-suunnittelustani, joka perustuu Linear Technology LTC6804 Multicell Battery Monitor -siruun ja Arduino-mikrokontrolleriin. Tämä projekti laajentaa BMS -projektia lisäämällä akun tasapainotusta.

Akut on rakennettu yksittäisistä kennoista rinnakkain ja/tai sarjaan. Esimerkiksi 8p12s-paketti rakennettaisiin käyttämällä 12 sarjaan kytkettyä sarjaa, joissa on 8 rinnakkaiskytkettyä solua. Pakkauksessa olisi yhteensä 96 solua. Parhaan suorituskyvyn saavuttamiseksi kaikilla 96 solulla pitäisi olla läheisesti yhteensopivat ominaisuudet, mutta solujen välillä on aina jonkin verran vaihtelua. Esimerkiksi joillakin soluilla voi olla pienempi kapasiteetti kuin muilla soluilla. Kun pakkaus on ladattu, pienemmän kapasiteetin kennot saavuttavat suurimman turvallisen jännitteen ennen muuta pakettia. BMS tunnistaa tämän korkean jännitteen ja katkaisee lisälatauksen. Tuloksena on, että suuri osa pakkauksesta ei ole täysin ladattu, kun BMS katkaisee latauksen heikoimman kennon korkeamman jännitteen vuoksi. Samanlainen dynamiikka voi tapahtua purkauksen aikana, kun suuremman kapasiteetin kennot eivät voi purkautua kokonaan, koska BMS katkaisee kuorman, kun heikoin akku saavuttaa pienjänniterajan. Pakkaus on siksi vain niin hyvä kuin sen heikoimmat akut, kuten ketju on vain niin vahva kuin sen heikoin lenkki.

Yksi ratkaisu tähän ongelmaan on tasapainotuslevyn käyttö. Vaikka pakkauksen tasapainottamiseen on monia strategioita, yksinkertaisimmat 'passiiviset' tasapainotuslevyt on suunniteltu poistamaan osa korkeimman jännitteen kennojen varauksesta, kun pakkaus on lähes latautumassa. Vaikka osa energiasta menee hukkaan, pakkaus voi kokonaisuudessaan tallentaa enemmän energiaa. Ilmaus suoritetaan hajottamalla jonkin verran tehoa mikrokontrollerin ohjaaman vastuksen/kytkimen yhdistelmän kautta. Tämä ohje kuvaa passiivista tasapainotusjärjestelmää, joka on yhteensopiva edellisen projektin arduino/LTC6804 BMS: n kanssa.

Tarvikkeet

Voit tilata Balance Board -piirilevyn PCBWaysilta täältä:

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

Vaihe 1: Toimintateoria

Toiminnan teoria
Toiminnan teoria

LTC6804 -tietolomakkeen sivulla 62 käsitellään solujen tasapainotusta. Vaihtoehtoja on kaksi: 1) sisäisten N-kanavaisten MOSFETS-laitteiden käyttäminen korkeiden kennojen virran poistamiseen tai 2) sisäisten MOSFETS-laitteiden käyttäminen ilmausvirran kantavien ulkoisten kytkimien ohjaamiseen. Käytän toista vaihtoehtoa, koska voin suunnitella oman ilmauspiirin käsittelemään suurempaa virtaa kuin mitä voitaisiin tehdä käyttämällä sisäisiä kytkimiä.

Sisäiset MOSFETS-järjestelmät ovat saatavilla nastojen S1-S12 kautta, kun taas soluihin pääsee käsiksi tappeilla C0-C12. Yllä oleva kuva näyttää yhden 12 identtisestä ilmauspiiristä. Kun Q1 on kytketty päälle, virta virtaa C1: stä maahan R5: n kautta, jolloin osa kennon 1 varauksesta haihtuu. Valitsin 6 ohmin, 1 watin vastuslaitteen, jonka pitäisi kestää useita milliampeereita vuotovirtaa. LED lisätään, jotta käyttäjä voi nähdä, mitkä solut tasapainottuvat milloin tahansa.

Tappeja S1-S12 ohjaavat CFGR4 ja CFGR5-rekisteriryhmien neljä ensimmäistä bittiä (katso LTC6804-tietolomakkeen sivut 51 ja 53). Nämä rekisteriryhmät asetetaan Arduino -koodiin (käsitelty alla) funktiossa balance_cfg.

Vaihe 2: Kaavio

Kaavamainen
Kaavamainen

BMS -tasapainolevyn kaavio on suunniteltu käyttämällä Eagle CAD: ää. Se on melko suoraviivaista. Jokaista akkusarjan segmenttiä kohden on yksi ilmauspiiri. Kytkimiä ohjataan LTC6804: n signaaleilla JP2 -otsikon kautta. Ilmausvirta virtaa akkupakkauksesta otsikon JP1 kautta. Huomaa, että ilmausvirta virtaa seuraavaan alempaan akkuosaan, joten esimerkiksi C9 vuotaa C8: ksi jne. Arduino Uno -suoja symboli asetetaan vaiheessa 3 kuvatun piirilevyn kaavioon. zip -tiedostossa. Seuraava on osaluettelo (Jostain syystä Instructables -tiedoston lataustoiminto ei toimi minulle …)

Määrä Arvo Laitepaketti Osat Kuvaus

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, Q2, Q3, Q4, Q5, Q5, Q9, Q10, Q11, Q12 P-kanava 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, amerikkalainen symboli 12 1K R-US_R0805 R0805 R4, R6, R8, R10, R12, R14, R16, R18, R20, R22, R24, R26 RESISTOR, amerikkalainen symboli 12200 R-US_R0805 R0805 R1, R2, R3, R28, R29, R30, R31, R32, R33, R34, R35, R36 RESISTOR, amerikkalainen symboli

Vaihe 3: Piirilevyasettelu

PCB -asettelu
PCB -asettelu

Asettelu määräytyy enimmäkseen BMS-pääjärjestelmän suunnittelun perusteella, jota käsitellään erillisessä ohjeessa (https://www.instructables.com/id/Arduino-LTC6804-Battery-Management-System/). Otsikoiden JP1 ja JP2 on vastattava BMS: n vastaavia otsikoita. Mosfetit, ilmausvastukset ja LEDit on järjestetty loogisella tavalla Arduino Uno -suojaan.

Liitteenä oleva tiedosto "Gerbers Balance Board.zip.txt" on oikeastaan Gerbers -tiedostoja sisältävä zip -tiedosto. Voit vain poistaa tiedostonimen.txt -osan ja purkaa sen sitten tavallisen zip -tiedoston tapaan.

Lähetä minulle viesti, jos haluat saada piirilevyn, minulla saattaa olla vielä jäljellä.

Vaihe 4: PCB -kokoonpano

Tasapainolevyn piirilevyt juotettiin käsin käyttämällä Weller WESD51 -lämpötilaohjattua juotosasemaa, jossa oli ETB ET -sarjan 0,093 "ruuvimeisselin" kärki ja 0,3 mm: n juote. Vaikka pienemmät kärjet voivat näyttää paremmilta monimutkaisessa työssä, ne eivät säilytä lämpöä ja vaikeuttavat työtä. Puhdista PCB -tyynyt flux -kynällä ennen juottamista. 0,3 mm juotos toimii hyvin SMD -osien käsin juottamiseen. Aseta hieman juotetta yhteen tyynyyn ja aseta sitten osa pinseteillä tai x-acto-veitsellä ja kiinnitä tämä tyyny. Jäljellä oleva tyyny voidaan sitten juottaa ilman, että osa liikkuu. Älä kuumenna osaa tai piirilevyjä liikaa. Koska suurin osa komponenteista on SMD -standardien mukaan melko suuria, piirilevy on melko helppo koota.

Vaihe 5: Koodi

Koodi
Koodi

Täydellinen Arduino -koodi on edellisessä ohjeessa, joka on linkitetty yllä. Tässä kiinnitän huomionne osaan, joka ohjaa solujen tasapainotusta. Kuten edellä mainittiin, S1-S12 ohjataan CFGR4: llä ja LTC6804: n CFGR5-rekisteriryhmien ensimmäisillä 4 bitillä (katso LTC6804-lomakkeen sivut 51 ja 53). Arduino -koodin silmukkatoiminto tunnistaa korkeimman jännitteen akkuosan ja sijoittaa sen numeron muuttuvaan cellMax_i -arvoon. Jos cellMax_i: n jännite on suurempi kuin CELL_BALANCE_THRESHOLD_V, koodi kutsuu funktiota balance_cfg () ja välittää korkean segmentin numeron cellMax_i. Funktio balance_cfg asettaa sopivan LTC6804 -rekisterin arvot. Puhelu numeroon LTC6804_wrcfg kirjoittaa sitten nämä arvot IC: lle ja käynnistää cellMax_i: hen liittyvän S -nastan.

Suositeltava: