Агуулгын хүснэгт:

Arduino LTC6804 BMS - 2 -р хэсэг: Тэнцвэрийн самбар: 5 алхам
Arduino LTC6804 BMS - 2 -р хэсэг: Тэнцвэрийн самбар: 5 алхам

Видео: Arduino LTC6804 BMS - 2 -р хэсэг: Тэнцвэрийн самбар: 5 алхам

Видео: Arduino LTC6804 BMS - 2 -р хэсэг: Тэнцвэрийн самбар: 5 алхам
Видео: Lithium-Ion Battery Management System | BMS | LTC6804-2 2024, Долдугаар сарын
Anonim
Arduino LTC6804 BMS - 2 -р хэсэг: Тэнцвэрийн самбар
Arduino LTC6804 BMS - 2 -р хэсэг: Тэнцвэрийн самбар

1 -р хэсэг энд байна

Батерейны удирдлагын систем (BMS) нь үүрний хүчдэл, батерейны гүйдэл, эсийн температур гэх мэт батерейны чухал параметрүүдийг мэдрэх функцийг агуулдаг. Хэрэв эдгээрийн аль нэг нь урьдчилан тодорхойлсон хязгаараас хэтэрсэн бол багцыг ачаалал эсвэл цэнэглэгчээс салгаж болно., эсвэл бусад зохих арга хэмжээг авч болно. Өмнөх төсөлд (https://www.instructables.com/id/Arduino-LTC6804-Battery-Management-System/) би Linear Technology LTC6804 Multicell Battery Monitor чип болон Arduino микроконтроллер дээр суурилсан BMS дизайныхаа талаар ярилцсан.. Энэхүү төсөл нь батерейны тэнцвэржүүлэлтийг нэмэх замаар BMS төслийг өргөтгөх болно.

Батерейны багцыг бие даасан эсүүдээс зэрэгцээ ба/эсвэл цуврал хэлбэрээр бүтээдэг. Жишээлбэл, 8p12s багцыг 8 зэрэгцээ холбогдсон 8 эсийн 12 цуваа холбогдсон багц ашиглан бүтээх болно. Багцанд нийт 96 эс байх болно. Хамгийн сайн гүйцэтгэлтэй байхын тулд бүх 96 эсүүд хоорондоо тохирсон шинж чанартай байх ёстой, гэхдээ нүднүүдийн хооронд үргэлж өөрчлөлт байх болно. Жишээлбэл, зарим эсүүд бусад эсүүдээс бага багтаамжтай байж болно. Багцыг цэнэглэж байх үед багтаамж багатай эсүүд бусад багцын өмнө хамгийн их аюулгүй хүчдэлдээ хүрэх болно. BMS нь энэхүү өндөр хүчдэлийг илрүүлж, цаашид цэнэглэхээ зогсооно. Үүний үр дүнд BMS нь хамгийн сул үүрний өндөр хүчдэлийн улмаас цэнэгээ таслахад багцын ихэнх хэсгийг бүрэн цэнэглээгүй болно. Хамгийн сул зай нь бага хүчдэлийн хязгаарт хүрэхэд BMS нь ачааллыг тасалдаг тул өндөр хүчин чадалтай эсүүд бүрэн цэнэглэж чадахгүй бол цэнэг алдах үед ижил төстэй динамик үүсч болно. Тиймээс хайрцаг нь хамгийн сул батерей шиг л сайн байдаг, гинж нь хамгийн сул холбоос шиг хүчтэй байдаг.

Энэ асуудлыг шийдэх нэг арга бол тэнцвэрийн самбар ашиглах явдал юм. Багцыг тэнцвэржүүлэх олон стратеги байдаг боловч хамгийн энгийн "идэвхгүй" тэнцвэрийн самбар нь багцыг бүрэн цэнэглэх дөхөж байх үед хамгийн өндөр хүчдэлийн үүрний зарим цэнэгийг цус алдах зориулалттай. Зарим энергийг үрэн таран хийж байхад багц нь бүхэлдээ илүү их энерги хадгалах боломжтой. Цус алдалт нь микроконтроллероор хянагддаг резистор/унтраалгын хослолоор дамжин зарим хүчийг алдах замаар хийгддэг. Энэхүү зааварчилгаа нь өмнөх төслийн arduino/LTC6804 BMS -тэй нийцсэн идэвхгүй тэнцвэржүүлэх системийг тайлбарласан болно.

Хангамж

Та Balance Board ПХБ -ийг PCBWays дээрээс эндээс захиалж болно.

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

Алхам 1: Үйл ажиллагааны онол

Үйл ажиллагааны онол
Үйл ажиллагааны онол

LTC6804 мэдээллийн хуудасны 62 -р хуудсанд эсийн тэнцвэржүүлэх талаар ярилцсан болно. Хоёр сонголт байдаг: 1) өндөр эсүүдээс гүйдэл авахын тулд дотоод N сувгийн MOSFETS-ийг ашиглах, эсвэл 2) цус алдах гүйдлийг дамжуулдаг гадаад унтраалгыг удирдахын тулд дотоод MOSFETS-ийг ашиглах. Би хоёр дахь сонголтыг ашигладаг, учир нь би өөрийн цус алдалтын хэлхээг дотоод унтраалга ашиглан хийж чадахаас илүү өндөр гүйдэлтэй ажиллахаар төлөвлөж чаддаг.

Дотоод MOSFETS-ийг S1-S12 тээглүүрээр ашиглах боломжтой бөгөөд эсүүдэд өөрсдөө C0-C12 тээглүүрээр нэвтэрдэг. Дээрх зураг нь цус алдах 12 ижил хэлхээний нэгийг харуулж байна. Q1 -ийг асаахад гүйдэл C1 -ээс газар руу R5 -ээр дамжин урсаж, 1 -р үүрэн дэх цэнэгийн зарим хэсгийг сарниулна. Би 6 Ом, 1 Вт эсэргүүцэгчийг сонгосон бөгөөд энэ нь хэд хэдэн миллиамп цус алдалтын гүйдэл дамжуулах чадвартай байх ёстой. LED нэмэгдсэн тул хэрэглэгч ямар ч үед ямар эсүүд тэнцвэржиж байгааг харах боломжтой болно.

S1-S12 тээглүүрийг CFGR4 болон CFGR5 бүртгэлийн бүлгүүдийн эхний 4 битээр хянадаг (LTC6804 мэдээллийн хуудасны 51, 53-р хуудсыг үзнэ үү). Эдгээр бүртгэлийн бүлгүүдийг тэнцвэрт_cfg функцын Arduino код (доор хэлэлцсэн) -д тохируулсан болно.

Алхам 2: Схем

Схем
Схем

BMS балансын самбарыг Eagle CAD ашиглан бүтээсэн болно. Энэ нь нэлээд шулуун юм. Батерейны цуврал сегмент бүрт нэг цус алдах хэлхээ байдаг. Шилжүүлэгчийг LTC6804 дохионоос JP2 толгойгоор дамжуулж хянадаг. Цус алдах гүйдэл нь зайны багцаас JP1 толгойгоор дамждаг. Цус алдах гүйдэл нь зайны дараагийн багцын сегмент рүү урсаж байгааг анхаарна уу, жишээлбэл, C9 нь C8 гэх мэт цус алддаг. Arduino Uno бамбай тэмдгийг 3 -р алхамд тайлбарласан ПХБ -ийн схемд байрлуулсан болно. Илүү өндөр нарийвчлалтай зургийг оруулсан болно. zip файлд. Доорх хэсгүүдийн жагсаалт байна (Зарим шалтгаанаар Instructables файл байршуулах функц надад тохирохгүй байна.)

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, 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, Америкийн тэмдэг 12 1K R-US_R0805 R0805 R4, R6, R8, R10, R12, R14, R16, R18, R20, R22, R24, R26 RESISTOR, Америкийн тэмдэг 12200 R-US_R0805 R0805 R1, R2, R3, R28, R29, R30, R31, R32, R33, R34, R35, R36 RESISTOR, Америкийн тэмдэг

Алхам 3: ПХБ -ийн зохион байгуулалт

ПХБ -ийн зохион байгуулалт
ПХБ -ийн зохион байгуулалт

Байршлыг голчлон тусдаа зааварчилгаанд хэлэлцсэн үндсэн BMS системийн дизайнаар тодорхойлдог (https://www.instructables.com/id/Arduino-LTC6804-Battery-Management-System/). JP1 ба JP2 толгой нь BMS дээрх тохирох толгойтой таарч байх ёстой. Мосфет, цус алдах резистор, LED -ийг Arduino Uno бамбай дээр логик байдлаар байрлуулсан бөгөөд Гербер файлыг Eagle CAD ашиглан үүсгэж, ПХБ -ийг үйлдвэрлэх зорилгоор Сьерра хэлхээ рүү илгээжээ.

Хавсаргасан "Gerbers Balance Board.zip.txt" файл нь үнэндээ Gerbers агуулсан зип файл юм. Та файлын нэрийн.txt хэсгийг устгаад энгийн зип файл шиг задалж болно.

Хэрэв та ПХБ авахыг хүсч байвал надад мессеж илгээгээрэй, надад жаахан үлдсэн байж магадгүй.

Алхам 4: ПХБ -ийн угсралт

Тэнцвэр хавтангийн ПХБ -ийг WELD WESD51 температурын хяналттай гагнуурын станц ашиглан ETB ET серийн 0.093 "халив" үзүүр, 0.3 мм гагнуур ашиглан гагнасан. Жижиг зөвлөмжүүд нь нарийн төвөгтэй ажилд илүү сайн мэт санагдах боловч дулааныг хадгалж чаддаггүй бөгөөд энэ нь ажлыг улам хүндрүүлдэг. Плюс үзэг ашиглан гагнахаас өмнө ПХБ -ийн дэвсгэрийг цэвэрлээрэй. 0.3 мм -ийн гагнуур нь SMD эд ангиудыг гараар гагнахад сайн ажилладаг. Нэг дэвсгэр дээр жаахан гагнуур хийж, дараа нь хямсаа эсвэл х-акто хутгаар хийж, дэвсгэрийг нь наа. Үлдсэн дэвсгэрийг хэсэг хөдлөхгүйгээр гагнах боломжтой. Хэсэг эсвэл ПХБ-ийн дэвсгэрийг хэт халаахгүй байхыг анхаарна уу. Ихэнх бүрэлдэхүүн хэсгүүд нь SMD стандартын дагуу нэлээд том хэмжээтэй тул ПХБ -ийг угсрахад нэлээд хялбар байдаг.

Алхам 5: Код

Код
Код

Arduino -ийн бүрэн кодыг дээр дурдсан зааврын дагуу өгсөн болно. Энд би таны анхаарлыг эсийн тэнцвэржүүлэлтийг хянадаг хэсэгт хандуулах болно. Дээр дурдсанчлан, S1-S12 нь CFGR4 болон LTC6804 дээрх CFGR5 бүртгэлийн бүлгүүдийн эхний 4 битээр хянагддаг (LTC6804 мэдээллийн хүснэгтийн 51, 53-р хуудсыг үзнэ үү). Arduino кодын давталтын функц нь хамгийн өндөр хүчдэлийн батерейны сегментийг илрүүлж, түүний тоог хувьсагч cellMax_i -д байрлуулдаг. Хэрэв cellMax_i -ийн хүчдэл CELL_BALANCE_THRESHOLD_V -ээс их байвал код нь cellMax_i гэсэн өндөр сегментийн тоог дамжуулж тэнцвэр_ффг () функцийг дуудах болно. Balance_cfg функц нь зохих LTC6804 регистрийн утгыг тохируулдаг. LTC6804_wrcfg руу залгахад эдгээр утгуудыг IC дээр бичээд cellMax_i -тай холбоотой S зүүг асаана.

Зөвлөмж болгож буй: