Spisu treści:

Arduino LTC6804 BMS - Część 2: Płytka równoważąca: 5 kroków
Arduino LTC6804 BMS - Część 2: Płytka równoważąca: 5 kroków

Wideo: Arduino LTC6804 BMS - Część 2: Płytka równoważąca: 5 kroków

Wideo: Arduino LTC6804 BMS - Część 2: Płytka równoważąca: 5 kroków
Wideo: Lithium-Ion Battery Management System | BMS | LTC6804-2 2024, Listopad
Anonim
Arduino LTC6804 BMS - Część 2: Płytka równowagi
Arduino LTC6804 BMS - Część 2: Płytka równowagi

Część 1 jest tutaj

System zarządzania akumulatorem (BMS) obejmuje funkcję wykrywania ważnych parametrów akumulatora, w tym napięcia ogniw, prądu akumulatora, temperatury ogniw itp. Jeśli którykolwiek z nich jest poza zdefiniowanym zakresem, pakiet można odłączyć od obciążenia lub ładowarki lub można podjąć inne odpowiednie działania. W poprzednim projekcie (https://www.instructables.com/id/Arduino-LTC6804-Battery-Management-System/) omawiałem mój projekt BMS, który opiera się na układzie Linear Technology LTC6804 Multicell Battery Monitor i mikrokontrolerze Arduino. Ten projekt rozszerza projekt BMS o równoważenie pakietów baterii.

Pakiety akumulatorów są zbudowane z pojedynczych ogniw w konfiguracjach równoległych i/lub szeregowych. Na przykład pakiet 8p12s zostałby skonstruowany przy użyciu 12 połączonych szeregowo zestawów 8 połączonych równolegle komórek. W paczce byłoby łącznie 96 ogniw. Aby uzyskać najlepszą wydajność, wszystkie 96 ogniw powinno mieć ściśle dopasowane właściwości, jednak zawsze będą występować pewne różnice między ogniwami. Na przykład niektóre ogniwa mogą mieć mniejszą pojemność niż inne. Gdy pakiet jest ładowany, ogniwa o mniejszej pojemności osiągną swoje maksymalne bezpieczne napięcie przed resztą pakietu. BMS wykryje to wysokie napięcie i odetnie dalsze ładowanie. W rezultacie znaczna część pakietu nie jest w pełni naładowana, gdy BMS odetnie ładowanie z powodu wyższego napięcia najsłabszego ogniwa. Podobna dynamika może mieć miejsce podczas rozładowania, gdy ogniwa o większej pojemności nie mogą się całkowicie rozładować, ponieważ BMS odłącza obciążenie, gdy najsłabszy akumulator osiągnie dolną granicę napięcia. Pakiet jest zatem tak dobry, jak jego najsłabsze akumulatory, tak jak łańcuch jest tak mocny, jak jego najsłabsze ogniwo.

Jednym z rozwiązań tego problemu jest użycie deski balansowej. Chociaż istnieje wiele strategii równoważenia pakietu, najprostsze „pasywne” płyty równoważące są zaprojektowane tak, aby spuszczać część ładunku z ogniw o najwyższym napięciu, gdy pakiet zbliża się do pełnego naładowania. Podczas gdy część energii jest marnowana, opakowanie jako całość może przechowywać więcej energii. Odpowietrzanie odbywa się poprzez rozproszenie części mocy przez kombinację rezystora/przełącznika sterowaną przez mikrokontroler. Ta instrukcja opisuje pasywny system równoważenia kompatybilny z arduino/LTC6804 BMS z poprzedniego projektu.

Kieszonkowe dzieci

Możesz zamówić płytkę Balance Board od PCBWays tutaj:

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

Krok 1: Teoria działania

teoria operacji
teoria operacji

Strona 62 arkusza danych LTC6804 omawia równoważenie komórek. Istnieją dwie opcje: 1) użycie wewnętrznych tranzystorów MOSFET z kanałem N do upuszczania prądu z ogniw o wysokim poziomie lub 2) użycie wewnętrznych tranzystorów MOSFETS do sterowania zewnętrznymi przełącznikami, które przenoszą prąd upływu. Używam drugiej opcji, ponieważ mogę zaprojektować własny obwód upustowy, aby obsłużyć wyższy prąd, niż można to zrobić za pomocą wewnętrznych przełączników.

Wewnętrzne tranzystory MOSFET są dostępne przez piny S1-S12, podczas gdy same komórki są dostępne za pomocą pinów C0-C12. Powyższy obrazek przedstawia jeden z 12 identycznych obwodów upustowych. Gdy Q1 jest włączony, prąd płynie z C1 do uziemienia przez R5, rozpraszając część ładunku w ogniwie 1. Wybrałem rezystor 6 Ohm, 1 W, który powinien wytrzymać kilka miliamperów prądu upustu. dodana dioda LED, dzięki której użytkownik może zobaczyć, które komórki w danym momencie się równoważą.

Piny S1-S12 są sterowane przez CFGR4 i pierwsze 4 bity grup rejestrów CFGR5 (patrz strony 51 i 53 arkusza danych LTC6804). Te grupy rejestrów są ustawiane w kodzie Arduino (omówione poniżej) w funkcji balance_cfg.

Krok 2: Schemat

Schematyczny
Schematyczny

Schemat płyty wagi BMS został zaprojektowany przy użyciu Eagle CAD. To dość proste. Dla każdego segmentu serii akumulatorów istnieje jeden obwód upustowy. Przełączniki są sterowane sygnałami z LTC6804 poprzez złącze JP2. Prąd upustowy płynie z akumulatora przez złącze JP1. Zwróć uwagę, że prąd upływu płynie do następnego dolnego segmentu akumulatora, więc na przykład C9 uchodzi do C8 itd. Symbol osłony Arduino Uno jest umieszczony na schemacie układu PCB opisanego w kroku 3. Dostępny jest obraz o wyższej rozdzielczości w pliku zip. Poniżej znajduje się lista części (z jakiegoś powodu funkcja przesyłania plików Instructables nie działa dla mnie….)

Ilość Wartość Opakowanie urządzenia Części Opis

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-Mosfet 2 PINHD-1X13_BIG 1X13-DUŻY JP1, JP2 NAGŁÓWEK STYKÓW 12 16 R-US_R2512 R2512 R5, R7, R9, R11, R13, R15, R17, R19, R21, R23, REZYSTOR R25, R27, symbol amerykański 12 1K R-US_R0805 R0805 R4, R6, R8, R10, R12, R14, R16, R18, R20, R22, R24, R26 REZYSTOR, symbol amerykański 12 200 R-US_R0805 R0805 R1, R2, R3, R28, R29, R30, R31, R32, R33, R34, R35, R36 REZYSTOR, symbol amerykański

Krok 3: Układ PCB

Układ PCB
Układ PCB

Układ jest w większości określony przez projekt głównego systemu BMS omówionego w oddzielnej instrukcji (https://www.instructables.com/id/Arduino-LTC6804-Battery-Management-System/). Nagłówki JP1 i JP2 muszą pasować do pasujących nagłówków w BMS. Mosfety, rezystory upustowe i diody LED są rozmieszczone w logiczny sposób na tarczy Arduino Uno. Pliki Gerber zostały utworzone za pomocą Eagle CAD, a płytki drukowane zostały wysłane do Sierra Circuits w celu wykonania.

Załączony plik „Gerbers Balance Board.zip.txt” jest w rzeczywistości plikiem zip zawierającym Gerbery. Możesz po prostu usunąć część.txt nazwy pliku, a następnie rozpakować ją jak normalny plik zip.

Wyślij mi wiadomość, jeśli chciałbyś otrzymać płytkę PCB, może jeszcze trochę mi zostało.

Krok 4: Montaż PCB

Płytki PCB wagi lutowano ręcznie za pomocą stacji lutowniczej Weller WESD51 z kontrolą temperatury z końcówką ETB ET serii 0,093 „śrubokręt” i lutem 0,3 mm. Chociaż mniejsze końcówki mogą wydawać się lepsze do skomplikowanej pracy, nie zatrzymują ciepła i faktycznie utrudniają pracę. Użyj topnika, aby wyczyścić pady PCB przed lutowaniem. Lut 0,3 mm dobrze sprawdza się przy lutowaniu ręcznym części SMD. Umieść trochę lutowia na jednym padu, a następnie umieść część pęsetą lub nożem x-acto i przymocuj ten pad. Pozostały pad może być następnie lutowany bez poruszania się części. Uważaj, aby nie przegrzać części ani podkładek PCB. Ponieważ większość komponentów jest dość duża jak na standardy SMD, płytka PCB jest dość łatwa w montażu.

Krok 5: Kod

Kod
Kod

Pełny kod Arduino znajduje się w poprzedniej instrukcji połączonej z powyższym. Tutaj zwrócę uwagę na sekcję dotyczącą równoważenia komórek. Jak wspomniano powyżej, S1-S12 są kontrolowane przez CFGR4 i pierwsze 4 bity grup rejestrów CFGR5 w LTC6804 (patrz strony 51 i 53 arkusza danych LTC6804). Funkcja pętli kodu Arduino wykrywa segment akumulatora o najwyższym napięciu i umieszcza jego numer w zmiennej cellMax_i. Jeśli napięcie cellMax_i jest większe niż CELL_BALANCE_THRESHOLD_V, kod wywoła funkcję balance_cfg(), przekazując numer wyższego segmentu, cellMax_i. Funkcja balance_cfg ustawia wartości odpowiedniego rejestru LTC6804. Wywołanie LTC6804_wrcfg następnie zapisuje te wartości do układu scalonego, włączając pin S powiązany z cellMax_i.

Zalecana: