
Witam!
Chciałbym przedstawić własną konstrukcję zegara matrycowego opartego na popularnych elementach. Konstrukcja powstała jako prezent dla ukochanej dziewczyny ❤️
Konstrukcja urządzenia
Zegar w założeniu miał być typu stołowego, zasilany z zewnętrznego zasilacza. Skonstruowany jest z dwóch zasadniczych części - płytki sterującej oraz płytki wyświetlacza.
Płytka sterująca jest sercem całego urządzenia, znajduje się na niej logika sterująca oraz zabezpieczenie zasilania. Za sterowanie odpowiedzialny jest układ ATmega328 (prawdopodobnie chiński klon) taktowany wewnętrznym generatorem, układem odpowiedzialnym za zliczanie czasu i utrzymywanie godziny jest ds3231. Dodałem również zabezpieczenie typu crowbar przeciw przekroczeniu napięciu zasilania na tyrystorze BTAP128 (po przekroczeniu ustalonego napięcia tyrystor jest wyzwalany i zwiera zasilanie przepalając bezpiecznik i odcinając dopływ energii). Jako stabilizator dałem popularny układ 7805 na bardzo dużym radiatorze (jest dość mocno na wyrost ale nie stanowi to absolutnie problemu, dodaje masy zegarowi dzięki czemu jest stabilniejszy).
Płytka sterująca ma rozmiar około 103 x 33mm i wykonałem ją metodą termo transferu żelazkowego, a wytrawiałem chlorkiem żelaza (III). Wszystko udało się zmieścić na jednej warstwie i są tylko dwie przelotki (jakby się uprzeć to i bez nich dałoby się zrobić)
We wcześniejszej wersji (ta obecna jest drugą) zastosowałem moduł z układem ds1307, niestety z przyczyn bliżej nie znanych moduł "gubił" minuty w trakcie działania (różnice rzędu 30 minut w ciągu dnia), moje usilne próby korekty tego programowo (w kodzie źródłowym jest "resztka" po próbach programowej korekty, całe dodatkowe menu sterowania korektą sekund, teraz w postaci komentarza) spełzły na niczym (korekta działała na zasadzie dodawania wybranej przez użytkownika liczby sekund co godzinę, w praktyce różnice w sekundach były różne i rozwiązanie to nie działało) i zdecydowałem się na inny moduł, który teraz działa tak jak powinien.
Jako swego rodzaju bajer, dodałem również cyfrowy termometr mierzący temperaturę wewnątrz pomieszczenia, posłużyłem się czujnikiem z układem ds18b20, bardzo prosty w obsłudze także nie sprawiło większych problemów dodanie go do projektu.
W roli wyświetlacza użyłem modułu zamówionego na dalekim wschodzie opartego na czterech układach MAX7219 połączonych ze sobą szeregowo i sterujących czterema wyświetlaczami led 8x8. Wyświetlacz jest bardzo jasny, zastanawiałem się nawet nad zmienieniem rezystorów które sterują jasnością ledów, ale ostatecznie po zasłonięciu frontu plexą jasność jest jak najbardziej okej.
Oprogramowanie
Cały kod napisałem w języku C w środowisku Microchip Studio firmy Microchip. Programowanie kontrolera zrobiłem przez USBasp sprzężony z tymże środowiskiem. Cały program zajął około 8 KB pamięci kontrolera, więc jest baardzo dużo luzu (można by się uprzeć i bardzo to odchudzić i wrzucić np na atmegę8, ale działa więc po co).
Do użytkownika są dostępne trzy przyciski umieszczone z tyłu obudowy. W trybie normalnej pracy mają następujące funkcje - jasność (regulowana skokowo w 5 krokach) oraz włączenie menu ustawień, jeden przycisk nie ma w tym trybie funkcji (w pierwotnej wersji było tam menu regulacji korekcji czasu)
Zegar ma dwa tryby pracy:
- normalną (czyli po prostu wyświetlanie godziny / daty / temperatury) oraz
- tryb ustawień (wklepywanie odpowiedniej godziny / daty, wybór jednostki temperatury (stopnie Celsjusza, Farenheita oraz kelwiny) oraz wybór wyświetlanych danych (można ustawić dowolną kombinację wyświetlania tzn, można mieć tylko godzinę albo godzinę i temperaturę albo temperaturę i datę i tak dalej...). Wykluczenie danego parametru dokonuje się poprzez podświetlenie go.
Wyświetlane czcionki zapożyczyłem z datasheet'u układu HD44780.
Zegar działa już kilka miesięcy i poza wspomnianym problemem z późnieniem się czasu (rozwiązany przez zamianę modułu) nie ma z nim żadnych kłopotów, spełnia swoje zadanie u wybranki mego serca 😘
Poniżej znajduje się mini galeria przedstawiająca zegar oraz filmik ogólnie pokazujący menu oraz pracę









Cool? Ranking DIY