Ostatnio postanowiłem udoskonalić mój poprzedni rejestrator temperatury. Celem było stworzenie mniejszego i stabilnego urządzenia. Projekt został całkowicie przebudowany.
Płytka uległa znacznemu zmniejszeniu, gniazdo na kartę pamięci poszło pod spód, przez co mogłem zrezygnować z górnej warstwy. Po długiej zabawie z edytorem layoutów w Eaglu udało mi się zmieścić układ w obszarze ~8x7cm. Dodałem tranzystory sterujące zasilaniem peryferiów (zegar/termometr/karta/lcd) i podświetleniem wyświetlacza oraz drugi rezonator kwarcowy 32k dla zegara wybudzającego z trybu uśpienia. Jak poprzednio, wszystkie elementy są w obudowach do montażu przewlekanego (za wyjątkiem gniazda na SD/MMC. Układ można łatwo rozbudować dodając dodatkowe gniazda np. na czujnik wilgotności, ciśnienia, anemometr itp.
Program w C również dużo się zmienił. Przepisałem go prawie od nowa. W przeciwieństwie do niedbale napisanego i niedokończonego softu w wersji 0.2x (includy .c w main, etc.), jest ładnie podzielony na moduły, zoptymalizowany i stabilny. Nie zawiesza się już po wyjęciu i włożeniu karty itp. Ponadto zrezygnowałem z biblioteki Dharmaniego, w której znalazłem błędy na rzecz dużo lepszej – FATFS. Teraz oprócz FAT32 rejestrator obsługuje systemy FAT12 i FAT16. Dopisałem również obsługę oszczędzania energii. W trybie oszczędnym wyświetlacz jest wyłączony, peryferia włączane tylko kiedy potrzeba, a po zapisie mikrokontroler przechodzi w stan uśpienia do następnego pomiaru, co znacznie zmniejszyło pobór mocy. Według mojego taniego, chińskiego multimetru rejestrator pobiera około 13-14uA w uśpieniu.
Aktualnie testuję wstępną wersję programu (0.30A). Pierwsze testy wypadły bardzo pozytywnie.
Zmiany w wersji 0.30A
– tryb oszczędzania energii – możliwość włączenia na stałe;
– obsługa FAT12/16/32;
– wyeliminowany problem niekompatybilności z niektórymi kartami;
– LCD 2×16 znaków z podświetleniem i regulacja jasności.
– zwiększona stabilność
Planowane zmiany w docelowej wersji 0.30:
– zamiana beepera z generatorem na membranę piezo (taką jak w poprzedniej wersji) i – w chwili montażu miałem tylko beeper 😉 ;
– pominięcie napisu „oszczędzanie energii” przy starcie w trybie oszczędnym – aktualnie jest tylko w celach testowych;
– obsługa pozostałych błędów zapisu – np. brak wolnego miejsca na karcie
– kilka drobnych poprawek
Demo wstępnej wersji:
Na razie nie udostępniam schematu/programu.