- zakres pomiarowy mierzonego napięcia: 0…34 V,
- rozdzielczość pomiaru napięcia: 10 mV,
- zakres pomiarowy mierzonego prądu: 0…10 A,
- rozdzielczość pomiaru prądu: 1 mA,
- zakres pomiarowy mierzonej mocy: 0…340 W,
- rozdzielczość pomiaru mocy: 100 mW,
- zakres pomiarowy dostarczonego ładunku: 0…100 Ah,
- rozdzielczość pomiaru ładunku: 10 mAh,
- częstotliwość rejestracji danych na karcie SD: 5 razy na sekundę,
- maksymalny pobór prądu ze źródła napięcia zasilającego: 40 mA.
Pomysł na ten projekt podsunął mi jeden z naszych Czytelników (przy okazji: pozdrowienia dla Pana Janusza), który w mailu skierowanym do mnie wyrażał uznanie dla mojej inwencji twórczej – jednym z jej przejawów miał być projekt opublikowany w numerze 2/2023 „Elektroniki Praktycznej”, urządzenie o nazwie powerMonitor. Zadaniem tej konstrukcji było monitorowanie parametrów elektrycznych odbiornika energii prądu stałego. Niestety, a może i na szczęście, do zachwytów dodana została przysłowiowa łyżka dziegciu. Wspomniany Czytelnik zauważył, iż tego typu monitor powinien być wyposażony w opcję rejestrowania mierzonych wartości elektrycznych, by można było je później poddać analizie – gdyż ich prezentacja na tak małym wyświetlaczu jest dyskusyjna. Cóż, nie sposób nie zgodzić się z tego rodzaju tezą, w związku z czym zabrałem się ochoczo za prace projektowe. Postanowiłem zbudować urządzenie o zbliżonej funkcjonalności, lecz wyposażone w możliwość rejestracji danych na karcie micro SD. W ten prozaiczny sposób narodził się projekt o nazwie powerTracker, który jest tematem niniejszego artykułu. Przystępując do prac konstrukcyjnych, poczyniłem wstępne założenia co do funkcjonalności urządzenia, które prezentują się następująco:
- możliwość pomiaru napięcia na zaciskach odbiornika,
- możliwość pomiaru prądu i mocy pobieranej przez odbiornik,
- możliwość pomiaru ładunku przekazanego do odbiornika,
- możliwość generowania alarmów po przekroczeniu konfigurowalnych parametrów – niezależnie dla każdej z wielkości elektrycznych (alarm powyżej lub poniżej ustawionej wartości),
- możliwość rejestracji parametrów elektrycznych na karcie micro SD sformatowanej zgodnie z systemem plików FAT16/FAT32.
Jako że, konstruując poprzednie urządzenie, zdobyłem niezbędne doświadczenie w kwestii wykorzystywanych peryferiów, postanowiłem użyć ich i tym razem. Jedynym dodatkowym problemem, z jakim musiałem się zmierzyć, była implementacja obsługi karty standardu SD oraz systemu plików, co z góry wykluczało zastosowanie prostego mikrokontrolera ATtiny84 z poprzedniego projektu. Tym razem musiałem sięgnąć po bardziej nowoczesny procesor, którego zasoby sprzętowe sprostałyby stawianemu przed nim zadaniu. Tak oto powstał system mikroprocesorowy.
Jak widać, mamy tu bardzo prosty układ, którego sercem jest niewielki, acz nowoczesny mikrokontroler firmy Microchip (dawniej Atmel) typu ATtiny1604 (należący do nowej rodziny 0-series AVR), taktowany wewnętrznym generatorem RC o częstotliwości 3,333 MHz. Odpowiada on za sprzętową implementację interfejsu I²C (nazywanego przez firmę Microchip mianem TWI), przy użyciu którego mikrokontroler realizuje obsługę układu INA226 – będącego specjalizowanym, bardzo dokładnym, 16-bitowym, różnicowym przetwornikiem ADC – oraz niewielkiego, ale bardzo efektownego wyświetlacza OLED o rozdzielczości 128×32 px, stanowiącego element graficznego interfejsu użytkownika. Wybór tego konkretnego mikrokontrolera z szerokiej rodziny układów firmy Microchip podyktowany był chęcią utrzymania małego footprintu obudowy (podobnie jak ATtiny84) oraz wymogiem dostępności większej ilości pamięci Flash i RAM. Inną, trochę mniej oczywistą przyczyną wyboru tego układu była chęć poznania nowej rodziny mikrokontrolerów AVR oraz sposobu obsługi zaktualizowanych peryferiów, w jakie je wyposażono – ale także chęć zgłębienia nowego podejścia do ich programowania (z zastosowaniem nowych plików nagłówkowych, definicji nowych typów, struktur, unii itp.). Ponadto zastosowanie układu ATtiny1604 wymusiło na mnie przesiadkę z dobrze znanego mi środowiska Eclipse (z plug-inem AVR) na Microchip Studio, z którego dobrodziejstw korzystałem już kilka razy w implementacji innych urządzeń, a co do którego siła przyzwyczajenia nie pozwalała mi podchodzić zbyt przychylnie. Zresztą niesłusznie, gdyż możliwość debugowania czy symulowania pracy mikrokontrolera jest nie do przecenienia.