Mundarija:

Arduino LTC6804 BMS - 2 -qism: Balans taxtasi: 5 qadam
Arduino LTC6804 BMS - 2 -qism: Balans taxtasi: 5 qadam

Video: Arduino LTC6804 BMS - 2 -qism: Balans taxtasi: 5 qadam

Video: Arduino LTC6804 BMS - 2 -qism: Balans taxtasi: 5 qadam
Video: Lithium-Ion Battery Management System | BMS | LTC6804-2 2024, Noyabr
Anonim
Arduino LTC6804 BMS - 2 -qism: Balans kengashi
Arduino LTC6804 BMS - 2 -qism: Balans kengashi

1 -qism bu erda

Batareyani boshqarish tizimi (BMS) batareyaning muhim parametrlarini, shu jumladan hujayra kuchlanishlari, batareya oqimi, hujayra harorati va boshqalarni sezish funktsiyasini o'z ichiga oladi. yoki boshqa tegishli choralar ko'rilishi mumkin. Oldingi loyihada (https://www.instructables.com/id/Arduino-LTC6804-Battery-Management-System/) men Linear Technology LTC6804 Multicell Battery Monitor chipi va Arduino mikrokontrolleriga asoslangan BMS dizaynini muhokama qildim.. Ushbu loyiha BMS loyihasini batareyalar balansini qo'shish orqali kengaytiradi.

Batareya paketlari alohida va/yoki ketma -ket konfiguratsiyali alohida hujayralardan qurilgan. Masalan, 8p12s to'plami parallel ulangan 8 ta katakchali 12 ta ketma-ket ulangan to'plam yordamida tuziladi. Paketda jami 96 ta hujayra bo'ladi. Eng yaxshi ishlashi uchun 96 ta hujayra bir -biriga mos xususiyatlarga ega bo'lishi kerak, lekin har doim ham hujayralar o'rtasida farq bo'ladi. Masalan, ba'zi hujayralar boshqa hujayralarga qaraganda pastroq quvvatga ega bo'lishi mumkin. Paket zaryad olganda, quyi sig'imli hujayralar paketning qolgan qismidan oldin maksimal xavfsiz kuchlanish darajasiga etadi. BMS bu yuqori kuchlanishni aniqlaydi va keyingi zaryadlashni to'xtatadi. Natijada, BMS eng zaif hujayraning yuqori kuchlanishi tufayli zaryadlashni to'xtatganda, paketning ko'p qismi to'liq zaryadlanmagan bo'ladi. Zaryadsizlanish paytida ham shunga o'xshash dinamika sodir bo'lishi mumkin, chunki yuqori quvvatli hujayralar to'liq zaryad qila olmaydi, chunki BMS eng zaif batareya past kuchlanish chegarasiga yetganda yukni uzib qo'yadi. Shunday qilib, paket faqat eng zaif batareyalaridek yaxshi, zanjir esa eng zaif halqadek kuchli.

Bu muammoning echimlaridan biri balans taxtasidan foydalanishdir. To'plamni muvozanatlash uchun ko'plab strategiyalar mavjud bo'lsa -da, eng oddiy "passiv" balans taxtasi, to'la zaryadga yaqinlashganda, eng yuqori kuchlanishli xujayralarning zaryadini o'chirishga mo'ljallangan. Bir oz energiya behuda sarflangan bo'lsa -da, paket ko'proq energiya to'plashi mumkin. Qon ketishi, mikrokontroller tomonidan boshqariladigan qarshilik/kalit kombinatsiyasi orqali bir oz kuch sarflash orqali amalga oshiriladi. Bu ko'rsatma oldingi loyihadagi arduino/LTC6804 BMS bilan mos keladigan passiv balans tizimini tavsiflaydi.

Ta'minotlar

PCBWays -dan Balans kengashi PCB -ga buyurtma berishingiz mumkin:

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

1 -qadam: Operatsion nazariyasi

Amaliyot nazariyasi
Amaliyot nazariyasi

LTC6804 ma'lumotlar jadvalining 62 -sahifasida hujayralar muvozanati muhokama qilinadi. Ikkita variant bor: 1) yuqori hujayralardan tokni oqizish uchun ichki N-kanalli MOSFETlardan foydalanish yoki 2) qon oqimi olib boruvchi tashqi kalitlarni boshqarish uchun ichki MOSFETSdan foydalanish. Men ikkinchi variantni ishlataman, chunki men o'zimning o'chirish davrimni ichki kalitlar yordamida bajarilgandan ko'ra yuqori oqim bilan ishlash uchun loyihalashtira olaman.

Ichki MOSFETS S1-S12 pinlari orqali mavjud, hujayralarga C0-C12 pinlari yordamida kirish mumkin. Yuqoridagi rasmda 12 ta bir xil qon ketish davrlaridan biri ko'rsatilgan. Q1 yoqilganda, oqim R1 orqali C1dan erga o'tadi, u zaryadning bir qismini 1 -hujayraga tarqatadi. Men 6 Ohm, 1 Vt quvvatga ega rezistorni tanladim. LED qo'shilgan, shuning uchun foydalanuvchi istalgan vaqtda qaysi hujayralar muvozanatlashayotganini ko'ra oladi.

S1-S12 pinlari CFGR4 va CFGR5 registr guruhlarining dastlabki 4 biti tomonidan boshqariladi (LTC6804 ma'lumotlar jadvalining 51 va 53-betlariga qarang). Bu ro'yxatga olish guruhlari muvozanat_cfg funktsiyasida Arduino kodida (quyida muhokama qilinadi) o'rnatiladi.

2 -qadam: sxematik

Sxematik
Sxematik

BMS balans taxtasi sxemasi Eagle CAD yordamida tuzilgan. Bu juda oddiy. Har bir batareya to'plami segmenti uchun bitta qon ketish davri mavjud. Kalitlar LTC6804 signallari orqali JP2 sarlavhasi orqali boshqariladi. Quvvat oqimi batareyadan JP1 sarlavhasi orqali oqadi. E'tibor bering, oqim oqimi batareyaning keyingi quyi segmentiga o'tadi, masalan, C9 C8 va boshqalarga kiradi. Arduino Uno qalqon belgisi 3 -bosqichda tasvirlangan PCB sxemasi sxemasiga joylashtirilgan. Yuqori aniqlikdagi tasvir taqdim etilgan. zip faylida. Quyida qismlar ro'yxati keltirilgan (negadir Instructables fayllarini yuklash xususiyati men uchun ishlamayapti …)

Qty Value Device Package Parts Description

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

3 -qadam: PCB tartibi

PCB tartibi
PCB tartibi

Joylashtirish, asosan, alohida ko'rsatma sifatida ko'rib chiqiladigan asosiy BMS tizimining dizayni bilan belgilanadi (https://www.instructables.com/id/Arduino-LTC6804-Battery-Management-System/). JP1 va JP2 sarlavhalari BMSda mos keladigan sarlavhalar bilan mos kelishi kerak. Mosfets, shamollatish rezistorlari va LEDlar mantiqiy tarzda Arduino Uno qalqoniga joylashtirilgan, gerber fayllari Eagle CAD yordamida yaratilgan va PCBlar ishlab chiqarish uchun Sierra Circuitsga yuborilgan.

Qo'shilgan "Gerbers Balance Board.zip.txt" fayli aslida Gerbersni o'z ichiga olgan zip faylidir. Siz faqat fayl nomining.txt qismini o'chirib tashlashingiz va uni oddiy zip fayli kabi ochishingiz mumkin.

Agar siz PCB olmoqchi bo'lsangiz, menga xabar yuboring, menda hali ham qolgan bo'lishi mumkin.

4 -qadam: tenglikni yig'ish

Balans taxtasi tenglikni kartalari WELD WESD51 harorat nazoratidagi lehim stantsiyasi yordamida 0,993 "tornavida" ETB seriyali va 0,3 mm diametrli lehim bilan payvandlangan. Kichkina maslahatlar murakkab ish uchun yaxshiroq ko'rinishi mumkin bo'lsa -da, ular issiqlikni saqlamaydi va aslida ishni qiyinlashtiradi. Lehimlashdan oldin tenglikni yostiqchalarini tozalash uchun oq qalamdan foydalaning. 0,3 mm lehim SMD qismlarini qo'lda lehimlashda yaxshi ishlaydi. Bir yostiqqa ozgina lehim qo'ying, so'ngra qismini cımbız yoki x-akto pichog'i bilan joylashtiring va bu yostiqni torting. Qolgan yostiq qismni qimirlatmasdan lehimlanishi mumkin. Qismni yoki tenglikni yostiqchalarini qizib ketmasligiga ishonch hosil qiling. Komponentlarning aksariyati SMD standartlari bo'yicha juda katta bo'lgani uchun, tenglikni yig'ish juda oson.

5 -qadam: kod

Kod
Kod

To'liq Arduino kodi yuqorida ko'rsatilgan havolada keltirilgan. Bu erda men sizning e'tiboringizni hujayralar muvozanatini boshqaruvchi bo'limga qarataman. Yuqorida aytib o'tilganidek, S1-S12 CFGR4 va LTC6804 da CFGR5 registr guruhlarining dastlabki 4 biti tomonidan boshqariladi (LTC6804 ma'lumotlar jadvalining 51 va 53-betlariga qarang). Arduino kodining pastadir funktsiyasi eng yuqori kuchlanishli akkumulyatorlar segmentini aniqlaydi va uning raqamini cellMax_i o'zgaruvchiga joylashtiradi. Agar cellMax_i ning kuchlanishi CELL_BALANCE_THRESHOLD_V dan kattaroq bo'lsa, kod balans_cfg () funktsiyasini chaqiradi, yuqori segment sonidan o'tib, cellMax_i. Balans_cfg funktsiyasi tegishli LTC6804 registrining qiymatlarini o'rnatadi. LTC6804_wrcfg -ga qo'ng'iroq, bu qiymatlarni IC -ga yozib, cellMax_i bilan bog'liq S pinini yoqadi.

Tavsiya: