Wraz z szybkim rozwojem systemów wbudowanych, a zwłaszcza urządzeń Internetu Rzeczy (IoT), rośnie zapotrzebowanie na ulepszenia systemów akumulatorowych, które je zasilają. W szczególności wiele aplikacji może zyskać na opłacalnym, ale dokładnym mierniku poziomu naładowania akumulatora. Podczas gdy większość zastosowań ogniw w motoryzacji, medycynie czy wojsku wymaga zastosowania kompletnego systemu zarządzania baterią (BMS), wiele innych, prostszych produktów radzi sobie doskonale z prostym wskaźnikiem poziomu naładowania, który informuje użytkownika tylko ogólnie, ile energii jest dostępne do zasilania urządzenia.
Rys.1. Jednopunktowy wyświetlacz słupkowy
stanowi kompaktową i energooszczędną
alternatywę dla zwykłego wskaźnika baterii
z wykresem słupkowym.Pomysł na opisany poniżej projekt streścić można w jednym zdaniu - wskaźnik poziomu naładowania, który wykorzystuje tylko jedną diodę LED. Ciężko wyobrazić sobie wyświetlacz słupkowy ([i]bar-graph[/b]) wykorzystujący tylko jeden punkt, ale zaprezentowana konstrukcja stanowi prostą, kompaktową, tanią i energooszczędną alternatywę dla zwykłego, zazwyczaj czteropunktowego wskaźnika słupkowego baterii. Układ składa się z pojedynczej diody LED RGB sterowanej przez mały mikrokontroler - w tym przypadku PIC10F220 lub PIC10F222 firmy Microchip, dostępny w kompaktowej, 6-pinowej obudowie. Cały układ udało się zaimplementować na płytce drukowanej o wielkości zaledwie 3,1 mm x 3,2 mm. Dzięki czemu łatwo go zintegrować z istniejącą konstrukcją (patrz rysunek 1).
Niewielki rozmiar płyty z prototypem układu ułatwia dodawanie konstrukcji do istniejących już produktów, które obecnie nie posiadają miernika stanu baterii. W tym przykładzie jest on zamontowany w obudowie powerbanku z ogniwami litowo-jonowymi.
Zasada działania konstrukcji jest bardzo prosta. Mikrokontroler PIC mierzy napięcie akumulatora (wykrywane na jego własnym pinie zasilania - VDD) za pomocą wewnętrznego źródła napięcia odniesienia (0,6 V). Pomiar wykonany za pomocą wbudowanego przetwornika ADC wyrażany jest w liczbie opisującej, jaką częścią mierzonego napięcia jest wartość odniesienia 0,6 V. Z uwagi na to, że pomiar zwracany jest jako stosunek 0,6 V do VDD, to wraz ze wzrostem napięcia zasilającego, wynik pomiaru będzie się zmniejszać i odwrotnie - jest to typowa zależność typu 1/x. W nocie aplikacyjnej Microchipa (AN1072) opisano w pełni, w jaki sposób z tej wartości uzyskać napięcie VDD.
Podobnie jak w przypadku każdego miernika stanu naładowania akumulatora, konstrukcja ta również musi uwzględniać nieliniową krzywą napięcia względem stanu naładowania wykazywaną przez akumulatory litowo-jonowe przy wyborze napięć progowych, przy których mikrokontroler wyświetli kolejny kolor, który odpowiada stanowi naładowania akumulatora (czerwony, żółty i zielony lub niebieski). Aby uniknąć trudności związanych z używaniem ograniczonych możliwości matematycznych PIC do obliczania stanu naładowania za każdym razem, gdy mierzone jest VDD, autor stworzył tabelę odnośników, która może być przechowywana w pamięci programu PIC. Tabela (dostępna jest na stronie z projektem - link na dole) została utworzona za pomocą Excela i obejmuje jedynie zakres napięć oczekiwanych od prawidłowo działającego akumulatora, w tym przypadku są to napięcia od 2,9 V do 4,3 V. Zmierzone za pomocą 8-bitowego ADC wbudowanego w PICa, napięcia te dadzą wartości wyjściowe między 52 a 35.
Aby zminimalizować zużycie energii, w projekcie zastosowano diodę LED RGB o wysokiej jasności. Mikrokontroler skonfigurowany jest do pozostawania w trybie uśpienia, dopóki nie otrzyma okresowego przerwania od timera nadzorującego (mniej więcej raz na sekundę). Po przebudzeniu z trybu uśpienia kontroler mierzy napięcie obecne na pinie VDD i krótko mruga odpowiednią diodą LED (1 ms przez około 0,25 s), ustawiając piny diody związane z kolorem odpowiadającym wartości ostatniego pomiaru.
Do pobrania ze strony z projektem dostępne są dwie wersje kodu źródłowego asemblera dla mikrokontrolera, dzięki czemu można sterować diodami LED RGB ze wspólną anodą lub katodą. Listingi są w pełni pokomentowane, a kod zoptymalizowany pod względem wielkości. Firmware używa makr, aby ułatwić odczyt napięcia. Oprogramowanie zajmuje tylko 85 słów kodu i 3 bajty danych, co ułatwia wdrożenie go w dowolnej aplikacji i niemalże w każdym układzie. Co więcej, dzięki temu kompaktowemu rozwiązaniu, podobne zaaplikować można na dowolnym innym małym mikrokontrolerze.
Źródło: https://www.edn.com/simplify-the-battery-gauge-with-a-1-dot-bar-graph-display/
Od redaktora: Postanowiłem tutaj od razu odpowiedzieć na kwestie, które - jak znam użytkowników naszego Forum - na pewno zostaną poruszone. Układ ten da się zrealizować na kilku komparatorach i ew. bramkach logicznych. Rozwiązanie to będzie jednak droższe i zajmie więcej miejsca na PCB niż pojedynczy mikrokontroler w obudowie SOT23 czy podobnej. Nie mówiąc już o tym, że w takim uC da się zawrzeć ciut więcej logiki sterującej, jeśli się chce. Zwiększając odrobinę układ można zrobić np. zabezpieczenie przed zbyt głębokim rozładowaniem ogniwa itp.

Rys.1. Jednopunktowy wyświetlacz słupkowy
stanowi kompaktową i energooszczędną
alternatywę dla zwykłego wskaźnika baterii
z wykresem słupkowym.
Niewielki rozmiar płyty z prototypem układu ułatwia dodawanie konstrukcji do istniejących już produktów, które obecnie nie posiadają miernika stanu baterii. W tym przykładzie jest on zamontowany w obudowie powerbanku z ogniwami litowo-jonowymi.
Zasada działania konstrukcji jest bardzo prosta. Mikrokontroler PIC mierzy napięcie akumulatora (wykrywane na jego własnym pinie zasilania - VDD) za pomocą wewnętrznego źródła napięcia odniesienia (0,6 V). Pomiar wykonany za pomocą wbudowanego przetwornika ADC wyrażany jest w liczbie opisującej, jaką częścią mierzonego napięcia jest wartość odniesienia 0,6 V. Z uwagi na to, że pomiar zwracany jest jako stosunek 0,6 V do VDD, to wraz ze wzrostem napięcia zasilającego, wynik pomiaru będzie się zmniejszać i odwrotnie - jest to typowa zależność typu 1/x. W nocie aplikacyjnej Microchipa (AN1072) opisano w pełni, w jaki sposób z tej wartości uzyskać napięcie VDD.
Podobnie jak w przypadku każdego miernika stanu naładowania akumulatora, konstrukcja ta również musi uwzględniać nieliniową krzywą napięcia względem stanu naładowania wykazywaną przez akumulatory litowo-jonowe przy wyborze napięć progowych, przy których mikrokontroler wyświetli kolejny kolor, który odpowiada stanowi naładowania akumulatora (czerwony, żółty i zielony lub niebieski). Aby uniknąć trudności związanych z używaniem ograniczonych możliwości matematycznych PIC do obliczania stanu naładowania za każdym razem, gdy mierzone jest VDD, autor stworzył tabelę odnośników, która może być przechowywana w pamięci programu PIC. Tabela (dostępna jest na stronie z projektem - link na dole) została utworzona za pomocą Excela i obejmuje jedynie zakres napięć oczekiwanych od prawidłowo działającego akumulatora, w tym przypadku są to napięcia od 2,9 V do 4,3 V. Zmierzone za pomocą 8-bitowego ADC wbudowanego w PICa, napięcia te dadzą wartości wyjściowe między 52 a 35.
Aby zminimalizować zużycie energii, w projekcie zastosowano diodę LED RGB o wysokiej jasności. Mikrokontroler skonfigurowany jest do pozostawania w trybie uśpienia, dopóki nie otrzyma okresowego przerwania od timera nadzorującego (mniej więcej raz na sekundę). Po przebudzeniu z trybu uśpienia kontroler mierzy napięcie obecne na pinie VDD i krótko mruga odpowiednią diodą LED (1 ms przez około 0,25 s), ustawiając piny diody związane z kolorem odpowiadającym wartości ostatniego pomiaru.
Do pobrania ze strony z projektem dostępne są dwie wersje kodu źródłowego asemblera dla mikrokontrolera, dzięki czemu można sterować diodami LED RGB ze wspólną anodą lub katodą. Listingi są w pełni pokomentowane, a kod zoptymalizowany pod względem wielkości. Firmware używa makr, aby ułatwić odczyt napięcia. Oprogramowanie zajmuje tylko 85 słów kodu i 3 bajty danych, co ułatwia wdrożenie go w dowolnej aplikacji i niemalże w każdym układzie. Co więcej, dzięki temu kompaktowemu rozwiązaniu, podobne zaaplikować można na dowolnym innym małym mikrokontrolerze.
Źródło: https://www.edn.com/simplify-the-battery-gauge-with-a-1-dot-bar-graph-display/
Od redaktora: Postanowiłem tutaj od razu odpowiedzieć na kwestie, które - jak znam użytkowników naszego Forum - na pewno zostaną poruszone. Układ ten da się zrealizować na kilku komparatorach i ew. bramkach logicznych. Rozwiązanie to będzie jednak droższe i zajmie więcej miejsca na PCB niż pojedynczy mikrokontroler w obudowie SOT23 czy podobnej. Nie mówiąc już o tym, że w takim uC da się zawrzeć ciut więcej logiki sterującej, jeśli się chce. Zwiększając odrobinę układ można zrobić np. zabezpieczenie przed zbyt głębokim rozładowaniem ogniwa itp.
Cool? Ranking DIY