Cześć,
Chciałbym dziś zaprezentować proste aczkolwiek przydatne urządzenie 2w1 do pomiaru wewnętrznej rezystancji (Rw) ogniw Li-Ion oraz rozładowywarka tychże ogniw do bezpiecznego i zalecanego dla nich poziomu napięcia (gdy chcemy przechowywać ogniwo przez dłuższy czas bez jego obsługi). Projekt ten zrealizowałem jakiś dłuższy czas temu. Dzięki temu urządzeniu „odsiejemy” w kilka sekund ogniwa nie nadające się „do niczego sensownego co wymaga więcej amper” czyli takie o Rw>200mΩ (testujemy w pełni naładowane ogniwa, najlepiej takie po odczekanych kilku godzinach od naładowania). Całość opiera się o mikrokontroler PIC12F1840 działający na wewnętrznym oscylatorze ustawionym na 16MHz i napięciu 5V, wyświetlaczu OLED SSD1306 I2C (taktowanie I2C 100kHz), 3 przyciskach (reset, program 1, program 2) oraz sterowaniu tranzystorem N-MOSFET (APM4416 - pochodzi z "wylutu"). Kod skompilowanego programu zajmuje 83% RAM oraz 83% Flash i 1 bajt pamięci EEPROM ciężko tam już coś więcej wcisnąć. Całość napisałem w języku C. W przyszłości planuję dodać obudowę, aktualnie jej nie ma.
Główne cechy urządzenia:
- pomiar rezystancji wewnętrznej ogniwa li-ion (pomiar poprzez obciążenie ogniwa przez 3s i pomiar spadku napięcia na ogniwie),
- rozładowywanie ogniwa Li-Ion do zalecanego napięcia (rozładowywanie do == 3,7V poprzez rezystory mocy, 6s rozładowywanie potem 1s brak rozładowywania i pomiar na ogniwie i tak w kółko aż do == 3,7V na ogniwie),
- możliwość zmiany rezystorów mocy na inne wartości niż na zdjęciu oraz wprowadzenia do pamięci EEPROM nowej wartości tych rezystorów (aby zaprogramować nową wartość należy przytrzymać przycisk 1 lub 2 w trakcie włączania zasilania),
- dokładność końcowa urządzenia na pewno lepsza niż +/- 5% (porównywałem ręcznie obliczenia i wyniki z tego urządzenia), gdyż uwzględniłem rezystancję przewodów testowych,
- sterowanie zaledwie 3 przyciskami (Reset, program 1 – pomiar RW ; 2 – rozładowywarka),
- prosty woltomierz (taki bardzo bardzo ubogi woltomierz.. bo od 0V do +10V
widoczny w głównym menu)
- działa ze wszystkimi wyświetlaczami OLED SSD1306 I2C bez zawieszania się (rozwiązałem problem który kiedyś przysparzał mi problemy z najtańszymi wyświetlaczami https://www.elektroda.pl/rtvforum/topic3409460.html ),
- regulacja dokładności wyświetlanego napięcia przy pomocy potencjometru R34 (podłączamy na czas regulacji np. 1V na wejście i kręcimy tak długo aż ukaże się 1V na OLED),
- obliczenia dokonywane na INT'ach, nie na FLOAT'ach
Tak wygląda przykładowy wynik pomiaru ogniwa o przeciętnej+ kondycji (wynik dla tego ogniwa przy jego pełnym naładowaniu to 83mΩ):
A - napięcie na ogniwie przed pomiarem
B - napięcie pod koniec 3 sekundy obciążenia
* wzór użyty do obliczeń https://pl.wikipedia.org/wiki/Opór_wewnętrzny_ogniwa
Schemat:
W załączniku skompilowany HEX (wersja 0.4) – wystarczy wgrać programatorem np. PICKIT3 do PIC’a, sam mikrokontroler łatwo dostępny (nawet u chińczyków) a programator stosunkowo niedrogi.
W dalszej przyszłości planuję dodać pomiar pojemności ogniwa li-ion (wyrażone w mAh) jest to w sumie proste dodanie kilkunastu-kilkudziesięciu linii kodu, lecz będzie to wymagać nie lada zachodu z optymalizacją i aktualnym już brakiem miejsca w tym uC
Chciałbym dziś zaprezentować proste aczkolwiek przydatne urządzenie 2w1 do pomiaru wewnętrznej rezystancji (Rw) ogniw Li-Ion oraz rozładowywarka tychże ogniw do bezpiecznego i zalecanego dla nich poziomu napięcia (gdy chcemy przechowywać ogniwo przez dłuższy czas bez jego obsługi). Projekt ten zrealizowałem jakiś dłuższy czas temu. Dzięki temu urządzeniu „odsiejemy” w kilka sekund ogniwa nie nadające się „do niczego sensownego co wymaga więcej amper” czyli takie o Rw>200mΩ (testujemy w pełni naładowane ogniwa, najlepiej takie po odczekanych kilku godzinach od naładowania). Całość opiera się o mikrokontroler PIC12F1840 działający na wewnętrznym oscylatorze ustawionym na 16MHz i napięciu 5V, wyświetlaczu OLED SSD1306 I2C (taktowanie I2C 100kHz), 3 przyciskach (reset, program 1, program 2) oraz sterowaniu tranzystorem N-MOSFET (APM4416 - pochodzi z "wylutu"). Kod skompilowanego programu zajmuje 83% RAM oraz 83% Flash i 1 bajt pamięci EEPROM ciężko tam już coś więcej wcisnąć. Całość napisałem w języku C. W przyszłości planuję dodać obudowę, aktualnie jej nie ma.
Główne cechy urządzenia:
- pomiar rezystancji wewnętrznej ogniwa li-ion (pomiar poprzez obciążenie ogniwa przez 3s i pomiar spadku napięcia na ogniwie),
- rozładowywanie ogniwa Li-Ion do zalecanego napięcia (rozładowywanie do == 3,7V poprzez rezystory mocy, 6s rozładowywanie potem 1s brak rozładowywania i pomiar na ogniwie i tak w kółko aż do == 3,7V na ogniwie),
- możliwość zmiany rezystorów mocy na inne wartości niż na zdjęciu oraz wprowadzenia do pamięci EEPROM nowej wartości tych rezystorów (aby zaprogramować nową wartość należy przytrzymać przycisk 1 lub 2 w trakcie włączania zasilania),
- dokładność końcowa urządzenia na pewno lepsza niż +/- 5% (porównywałem ręcznie obliczenia i wyniki z tego urządzenia), gdyż uwzględniłem rezystancję przewodów testowych,
- sterowanie zaledwie 3 przyciskami (Reset, program 1 – pomiar RW ; 2 – rozładowywarka),
- prosty woltomierz (taki bardzo bardzo ubogi woltomierz.. bo od 0V do +10V
- działa ze wszystkimi wyświetlaczami OLED SSD1306 I2C bez zawieszania się (rozwiązałem problem który kiedyś przysparzał mi problemy z najtańszymi wyświetlaczami https://www.elektroda.pl/rtvforum/topic3409460.html ),
- regulacja dokładności wyświetlanego napięcia przy pomocy potencjometru R34 (podłączamy na czas regulacji np. 1V na wejście i kręcimy tak długo aż ukaże się 1V na OLED),
- obliczenia dokonywane na INT'ach, nie na FLOAT'ach
Tak wygląda przykładowy wynik pomiaru ogniwa o przeciętnej+ kondycji (wynik dla tego ogniwa przy jego pełnym naładowaniu to 83mΩ):
A - napięcie na ogniwie przed pomiarem
B - napięcie pod koniec 3 sekundy obciążenia
* wzór użyty do obliczeń https://pl.wikipedia.org/wiki/Opór_wewnętrzny_ogniwa
Schemat:
W załączniku skompilowany HEX (wersja 0.4) – wystarczy wgrać programatorem np. PICKIT3 do PIC’a, sam mikrokontroler łatwo dostępny (nawet u chińczyków) a programator stosunkowo niedrogi.
W dalszej przyszłości planuję dodać pomiar pojemności ogniwa li-ion (wyrażone w mAh) jest to w sumie proste dodanie kilkunastu-kilkudziesięciu linii kodu, lecz będzie to wymagać nie lada zachodu z optymalizacją i aktualnym już brakiem miejsca w tym uC
Fajne? Ranking DIY