Badacz akumulatorków

Nastały takie czasy, że w szufladach znajdujesz sporo i coraz więcej akumulatorków AAA, AA, 18650 i o innych kształtach i wymiarach. Nie są to tanie rzeczy a ich prądy i moce mogą zaskoczyć. Współczesne akumulatory nawet te najmniejsze, gromadzą dużą energię. Badanie ich jakości wymaga więc ładowania i rozładowania czyli wymiany energii, która jest dwukrotnie tracona. Proponowane rozwiązanie minimalizuje straty energii.

Ocena czy dany akumulator jest dobry i w jakim stopniu jest lepszy od innego nie może polegać tylko na pomiarze napięcia. Pomiar pojemności jest możliwy ale to proces długotrwały i marnowanie sporej energii, która musi być rozwiewana hałasującymi wentylatorami.

Mój pomysł, który rodził się długo polega na badaniu wykresu rozładowania a także ładowania. Testy pomiarowe zbudowanego układu pokazują liniową zależność tych procesów, oczywiście w rozsądnym zakresie napięć.

Program napisany w języku LUA steruje tranzystorami według funkcji zadawanych z menu, które są wybierane impulsatorem obrotowym. Proces pomiarowy jest w znacznym stopniu automatyczny warunkowany pomiarem napięcia i czasu. Ekstrapolacja i testowanie napięcia następuje cyklicznie Odczytujemy na ekranie OLED ekstrapolowaną wartość czasu badania oraz napięcia i wartość ekstrapolowaną czasu a po przekroczeniu napięcia granicznego układ zatrzymuje proces rozładowania lub ładowania.

Lista potrzebnych elementów

  • tranzystor MOSFET typu P
  • tranzystor MOSFET typu N
  • transoptor
  • opornik 15 Ω
  • ESP8266
  • ADS1115 ( dokładny pomiar napięcia )
  • INA219 ( pomiar napięcia, prądu, mocy )
  • Rotary encoder,
  • display oled SH1106LUA lub SSD1306

Jako dolny MOSFET N zastosowałem IRF8714

jego zadaniem jest rozładowywanie akumulatora, który może mieć 3 lub 4 V

czyli powinien pracować już od napięć 2,5 V chodzi oczywiście o napięcie źródło – dren.

      Oprogramowanie

      NodeMcu na układzie ESP8266 powinien mieć wgrany w miarę aktualny firmware ze strony: https://nodemcu-build.com/ zaznaczając moduły:

      • adc ads1115
      • INA219 ( własny driver )
      • bit
      • enduser_setup
      • file
      • gpio
      • i2c
      • mqtt
      • net node
      • ow ( one wire )
      • rotary ( impulsator )
      • rtctime tmr
      • uart wifi.

      Programy wykonawcze napisane w języku LUA obsługują wyświetlacz oled, impulsator obrotowy, sterują tranzystorami, odczytują napięcia i odmierzają czas. Obsługa oled jest dostępna pod adresem: https://github.com/t1ak/SH1106LUA

      Układ ma trzy główne stany pracy:

      • przewodzi tranzystor górny typ (P) i wtedy przez opornik ładowany jest akumulator
      • przewodzi tranzystor dolny typu N i wtedy akumulator jest rozładowywany przez opornik
      • trzeci stan to tranzystory otwarte i układ oczekuje na polecenia po włączeniu lub po zakończeniu cyklu pomiarowego

      Idea układu i symboliczne połączenia do kontrolera ESP.

      Pomiar jaki przedstawiono na wykresie pochodził bezpośrednio z ADC jaki posiada wewnętrznie ESP8266 (pin A0). Funkcjonowanie projektu testera wypadało marnie ale po zastosowaniu matematycznej metody najmniejszych kwadratów nastąpiła znaczna poprawa dokładności. Kolejny etap to zastosowaniu układu ADS1115, wtedy otrzymałem rewelacyjnie dokładne i gładkie pomiary napięcia jak z najlepszego multimetru laboratoryjnego. Co ważne driver tego układu zawarty w firmware LUA ma kalibrację i daje odczyty bezpośrednio w mV.

      Proces ładowania podlega rozbudowanej, podwójnej kontroli pomiarowej. Powiązanej z automatycznymi działaniami sterującymi. Pomocnym narzędziem kontroli parametrów w czasie uruchamiania i testów okazał się ( jak zwykle ) MQTT Explorer.

      Aplikacja monitorująca na smartfonie

      Elementy ekranu budowałem aplikacją IoT Panel MQTT pro, która korzysta z danych gromadzonych na serwerze MQTT ( ja polecam do tego celu „mosquitto” )

      Ekran telefonu / smartfona, który prezentuje proces testowania akumulatora.

      Aplikacja pobiera dane z serwera MQTT gdzie dostarcza je kontroler ESP.

      Opis ekranu monitorującego:

      Górna część zawiera aktywny klawisz „0REGLIN”, który powoduje, że regresja liniowa zaczyna od zera co warto zrobić kiedy współczynnik R kalibracji jest „mały”. Środkowe pole informuje o aktywnym połączeniu z serwerem MQTT przez WiFi. Po prawej stronie jest informacja o oporności wewnętrznej akumulatora „Rin”. Ta wyznaczana jest na koniec procesu rozładowania. Napięcie Uina wykonuje układ ina219 a dokładniejszy jest Uglb „zielony” wykonywany układem ADS1115. Kolejny „żółty” ujemnie rosnący wykres to pomiary prądu rozładowującego, który tak naprawdę maleje z czasem.

      wersja 2 została uzupełniona o obliczanie oporności wewnętrznej badanego akumulatora c. d. n. prace nad wersją 3 trwają