Სარჩევი:

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/) განვიხილე ჩემი BMS დიზაინი, რომელიც დაფუძნებულია ხაზოვანი ტექნოლოგიის LTC6804 მრავალუჯრედიანი ბატარეის მონიტორის ჩიპზე და Arduino მიკროკონტროლერზე რა ეს პროექტი აფართოებს BMS პროექტს ბატარეის პაკეტის დაბალანსების დამატებით.

ბატარეის პაკეტები აგებულია ცალკეული უჯრედებიდან პარალელურად და/ან სერიულ კონფიგურაციებში. მაგალითად, 8p12s პაკეტი აშენდება 12 სერიასთან დაკავშირებული 8 პარალელურად დაკავშირებული უჯრედის გამოყენებით. პაკეტში სულ 96 უჯრედი იქნებოდა. საუკეთესო შესრულებისათვის ყველა 96 უჯრედს უნდა ჰქონდეს მჭიდროდ შესაბამისი თვისებები, თუმცა, უჯრედებს შორის ყოველთვის იქნება გარკვეული ცვალებადობა. მაგალითად, ზოგიერთ უჯრედს შეიძლება ჰქონდეს უფრო დაბალი ტევადობა, ვიდრე სხვა უჯრედებს. პაკეტის დატენვისას, ქვედა ტევადობის უჯრედები მიაღწევენ მაქსიმალურ უსაფრთხო ძაბვას პაკეტის დანარჩენ ნაწილებამდე. BMS გამოავლენს ამ მაღალ ძაბვას და შეწყვეტს შემდგომ დატენვას. შედეგი იქნება ის, რომ პაკეტის დიდი ნაწილი სრულად არ არის დამუხტული, როდესაც BMS შეწყვეტს დატენვას სუსტი უჯრედის უფრო მაღალი ძაბვის გამო. მსგავსი დინამიკა შეიძლება მოხდეს გამონადენის დროს, როდესაც უფრო მაღალი სიმძლავრის უჯრედები ვერ ახერხებენ სრულად განმუხტვას, რადგან BMS წყვეტს დატვირთვას, როდესაც ყველაზე სუსტი ბატარეა მიაღწევს დაბალ ძაბვის ზღვარს. ამრიგად, შეფუთვა ისეთივე კარგია, როგორც მისი სუსტი ბატარეები, ისევე როგორც ჯაჭვი ისეთივე ძლიერი, როგორც მისი ყველაზე სუსტი რგოლი.

ამ პრობლემის ერთ -ერთი გადაწყვეტა არის ბალანსის დაფის გამოყენება. მიუხედავად იმისა, რომ პაკეტის დაბალანსების მრავალი სტრატეგია არსებობს, უმარტივესი "პასიური" ბალანსის დაფები შექმნილია იმისთვის, რომ ამოიღოს უმაღლესი ძაბვის უჯრედების ზოგიერთი მუხტი, როდესაც პაკეტი სრულ დატენვას უახლოვდება. მიუხედავად იმისა, რომ ენერგია იკარგება, პაკეტს მთლიანობაში შეუძლია მეტი ენერგიის შენახვა. სისხლდენა ხდება მიკროკონტროლერის მიერ კონტროლირებადი რეზისტორ/გადამრთველის კომბინაციის მეშვეობით გარკვეული ენერგიის გაფანტვით. ეს ინსტრუქცია აღწერს პასიური დაბალანსების სისტემას, რომელიც შეესაბამება arduino/LTC6804 BMS– ს წინა პროექტიდან.

მარაგები

თქვენ შეგიძლიათ შეუკვეთოთ ბალანსის დაფის PCB 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 Ohm, 1 Watt რეზისტორი, რომელსაც უნდა შეეძლოს სისხლდენის რამდენიმე მილიამპერი დამუშავება. დაემატა LED, რათა მომხმარებელმა დაინახოს რომელი უჯრედები აბალანსებს ნებისმიერ დროს.

ქინძისთავები S1-S12 კონტროლდება CFGR4 და CFGR5 რეგისტრაციის ჯგუფების პირველი 4 ბიტი (იხ. LTC6804 მონაცემთა ფურცლის 51 და 53 გვერდები). ეს რეგისტრირებული ჯგუფები მითითებულია არდუინოს კოდში (ქვემოთ განხილული) ფუნქციაში balance_cfg.

ნაბიჯი 2: სქემატური

სქემატური
სქემატური

BMS ბალანსის დაფის სქემა შეიქმნა Eagle CAD– ის გამოყენებით. ეს არის საკმაოდ პირდაპირი. ბატარეის პაკეტის სერიის თითოეული სეგმენტისთვის არის ერთი სისხლდენის წრე. კონცენტრატორები კონტროლდება სიგნალებით LTC6804 JP2 სათაურის მეშვეობით. სისხლდენის დენი მიედინება ბატარეის პაკეტიდან სათაურში JP1. გაითვალისწინეთ, რომ სისხლდენის დენი მიედინება შემდეგი ქვედა ბატარეის სეგმენტზე, მაგალითად, C9 სისხლში C8 და ა.შ. Arduino Uno ფარის სიმბოლო მოთავსებულია სქემა 3 -ში აღწერილი PCB განლაგებისათვის. წარმოდგენილია უფრო მაღალი გარჩევადობის სურათი zip ფაილში. ქვემოთ მოცემულია ნაწილების სია (რატომღაც Instructables ფაილის ატვირთვის ფუნქცია არ მუშაობს ჩემთვის …)

Qty Value მოწყობილობის პაკეტის ნაწილების აღწერა

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, Q7, Q8, 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, ამერიკული სიმბოლო 12 200 R-US_R0805 R0805 R1, R2, R3, R28, R29, R30, R31, R32, R33, R34, R35, R36 RESISTOR, ამერიკული სიმბოლო

ნაბიჯი 3: PCB განლაგება

PCB განლაგება
PCB განლაგება

განლაგება ძირითადად განისაზღვრება ძირითადი BMS სისტემის დიზაინით, რომელიც განხილულია ცალკე ინსტრუქციებში (https://www.instructables.com/id/Arduino-LTC6804-Battery-Management-System/). სათაურები JP1 და JP2 უნდა ემთხვეოდეს BMS– ის შესაბამის სათაურებს. Mosfets, bleed resistors და LED- ები ლოგიკურად არის მოწყობილი Arduino Uno ფარზე. Gerber ფაილები შეიქმნა Eagle CAD– ის გამოყენებით და PCB– ები გაიგზავნა სიერას სქემებში გაყალბებისთვის.

თანდართული ფაილი "Gerbers Balance Board.zip.txt" სინამდვილეში არის გერბების შემცველი zip ფაილი. თქვენ შეგიძლიათ უბრალოდ წაშალოთ ფაილის სახელის.txt ნაწილი და შემდეგ გახსნათ იგი როგორც ჩვეულებრივი zip ფაილი.

გამომიგზავნეთ შეტყობინება, თუ გსურთ მიიღოთ PCB, შეიძლება მე მაინც დამრჩეს.

ნაბიჯი 4: PCB ასამბლეა

ბალანსის დაფის PCB- ები შედუღდა ხელით Weller WESD51 ტემპერატურის კონტროლირებადი გამწოვი სადგურის გამოყენებით ETB ET სერიის 0.093 "ხრახნიანი" წვერით და 0.3 მმ -იანი შედუღებით. მიუხედავად იმისა, რომ მცირე რჩევები შეიძლება უკეთესი იყოს რთული სამუშაოსთვის, ისინი არ ინარჩუნებენ სითბოს და რეალურად ართულებენ საქმეს. შედუღებამდე PCB ბალიშების გასაწმენდად გამოიყენეთ ნაკადიანი კალამი. 0.3 მმ შედუღება კარგად მუშაობს SMD ნაწილების ხელით შესადუღებლად. მოათავსეთ ცოტა შედუღება ერთ ბალიშზე და შემდეგ მოათავსეთ ნაწილი პინცეტით ან x-acto დანით და მიამაგრეთ ეს ბალიში. დარჩენილი ბალიში შეიძლება შემობანდეს ნაწილის გადაადგილების გარეშე. დარწმუნდით, რომ არ გაათბოთ ნაწილი ან PCB ბალიშები. იმის გამო, რომ კომპონენტების უმეტესობა საკმაოდ დიდია SMD სტანდარტებით, PCB საკმაოდ ადვილად იკრიბება.

ნაბიჯი 5: კოდი

კოდი
კოდი

Arduino– ს სრული კოდი მოცემულია წინა ინსტრუქციებში, რომელიც დაკავშირებულია ზემოთ. აქ მე თქვენს ყურადღებას გავამახვილებ იმ განყოფილებაზე, რომელიც აკონტროლებს უჯრედების დაბალანსებას. როგორც ზემოთ აღვნიშნეთ, S1-S12 კონტროლდება CFGR4 და CFGR5 რეგისტრირებული ჯგუფების პირველი 4 ბიტი LTC6804– ზე (იხ. LTC6804 მონაცემთა 51 და 53 გვერდები). Arduino კოდის მარყუჟის ფუნქცია გამოავლენს ყველაზე მაღალი ძაბვის ბატარეის პაკეტს და ათავსებს მის რიცხვს ცვლადი უჯრედში Max_i. თუ cellMax_i– ს ძაბვა უფრო დიდია ვიდრე CELL_BALANCE_THRESHOLD_V, კოდი დაურეკავს ფუნქციას balance_cfg (), გადის მაღალი სეგმენტის ნომერს, cellMax_i. ფუნქცია balance_cfg ადგენს შესაბამისი LTC6804 რეგისტრის მნიშვნელობებს. ზარი LTC6804_wrcfg შემდეგ წერს ამ მნიშვნელობებს IC- ზე, ჩართავს S pin- ს, რომელიც დაკავშირებულია cellMax_i– სთან.

გირჩევთ: