
Jest to moja pierwsza konstrukcja z mikrokontrolerem (Atmega8), którą zacząłem tworzyć w 2015 roku. Powstała dzięki znanej wszyskim książce BB oraz dzięki temu forum. Wypada więc mi zaprezentować tę konstrukcję.
Do wykonania tego zegara skłonił mnie mój słabnący wzrok - leżąc w łóżku bez okularów nie mogłem odczytać godziny na zagarkach wbudowanych w sprzęt RTV - cyfry wyświetlaczy są po prostu dla mnie zbyt małe.
Miałem w zapasach 4 czerwone wyświetlacze LED z cyframi o wysokości 20mm (po nieużywanym zagarze na MC1203 - przeżytek w ogromnej obudowie), które idealnie się nadawały. Rolę sekundnika pełni punkt dziesiętny pomiędzy drugą, a trzecią cyfrą.
W trakcie realizacji projektu, założenia stawały się coraz bardziej wygórowane. Ostatecznie zagar miał być bezobsługowy, czyli:
- bardzo stabilny, bez konieczności okresowej korekcji czasu,
- łatwa zmiana czasu letni/zimowy, bez konieczności nastawiania,
- podtrzymanie czasu podczas braku zasilania, bez konieczności okresowej wymiany baterii,
- zmiana jasności wyświetlaczy LED w zależności od oświetlenia, żeby po ciemku nie raził w oczy.
Świadomie zrezygnowałem z wyświetlania daty, ponieważ jak żyję, jeszcze mi się nie zdarzyło w ten sposób sprawdzać daty - od tego jest kalendarz.








Początkowo, jako RTC miał być użyty proponowany w książce PCF8583, Jednak, gdy zapoznałem się z parametrami kostki DS3231, od razu postanowiłem go wypróbować i płytkę przygotowałem pod oba układy.
Podtrzymanie zasilania pozostało z koncepcji dla PCF-a, ale zrobione jest z sperkondensatorem Gold-Cap 1F 5,5V.
Jako zasilacza, wykorzystałem "ładowarkę" 5V z wtykiem mini-usb po jakimś telefonie.
Na zdjęciach widać, że płytki modułu RTC i wyświetlacza zrobione są metodą termotransferu. Niestety, z powodu awarii drukarki laserowej, płytkę zegara musiałem rysować pisakiem i nie prezentuje się ona zbyt dobrze.
Wszystkie trzy płytki są jednostronne. Połączenia na górnych stronach płytek, wykonane są odcinkami srebrzanki.
Płytki wyświetlacza i zegara skręcone są stronami z miedzią. Odległość między nimi ustalają tulejki dystansowe. Niestety otwory służace do skręcenia płytek nie wyszły mi precyzyjnie i musiałem je dopiłować okrągłym iglakiem.
Moduł RTC połączony jest z płytką zegara 8-mio stykowym goldpinem i przykręcony śrubką M3 do gwintowanego słupka.
Gniazdo miniUSB przylutowane jest do kawałka płytki uniwersalnej (ok. 10x10mm) i wlutowane w płytkę zegara pod kątem prostym za pomocą dwóch krótkich odcinków drutu.
Gold-Cap w wersji do montażu pionowego, wlutowany jest do kawałka płytki przykręconej z boku płytki zegara. Nie potrafiłem znaleźć dla niego bardziej dogodnego miejsca.
Całość umieszczona jest w półprzejrzystej, czerwonej obudowie Z-77. Przez tylną poktywę przechodzi gniazdo miniUSB i przycisk microswitcha.
Microswitch jest tak wlutowany, że jego przycisk wystaje ok. 1mm ponad pokrywę.
Boczne ścianki obudowy są lekko skośne, więc żeby zegar stał pionowo, przy przedniej dolnej krawędzi przykleiłem dwie gumowe nóżki oderwane z uszkodzonego tunera TV USB.






Mikrokontroler Atmega8 taktowany jest wewnętrznym zegarem 8Mhz. Nie było sensu stabilizować go kwarcem, ponieważ zajmuje się tylko odczytem czasu z układu RTC, multpleksowaniem wyświetlacza oraz mierzeniem napięcia na fotorezystorze. I to wszystko co 1 sekundę. Oprócz tego timer sprzętowy wytwarza przebieg PWM z wypełnieniem przebiegu proporcjonalnym do zmierzonego napięcia na fotorezystorze. Wartość odczytana z rejestru ACDH jest bezpośrednio przypisywana do rejestru timera OCR1A. W tym przypadku nie ma potrzeby przeliczania wyniku pomiaru napięcia na wartość w woltach.
Przetwornik ADC wykorzystyje wewnętrzne napięcie odniesienia 2,56V.
Potencjometrem nastawnym R19 ustawia się maksymalną jasność wyświetlaczy w świetle dziennym po przykryciu fotorezystora obudową.
Przycisk S1 służy do zmiany czasu zimowy/letni. Zmiana czasu zapisywana jest w pamięci EEPROM mikrokontrolera. Dzięki temu po zaniku zasilania godzina nie ulega zmianie.
Program napisany jest w C i w dużej mierze to zmodyfikowany kod z BB. Działanie opisane jest w komentarzach w kodzie.
Po ponad dwóch latach, zegar przyspieszył o 36 sekund. Stabilność RTC szacuję na poziomie 0,5ppm.
Nie potrafię powiedzieć jak długo Gold-Cap potrafi zapewnić zasilanie dla układu RTC, bo tego nie sprawdzałem. Najdłuższa przerwa w zasilaniu (po gwałtownej burzy) trwała ponad 7 godzin. Po włączeniu zegar "ożył" z prawidłowym wskazaniem czasu.
Trudno określić koszt całego urządzenia, bo część elementów już miałem w swoich zapasach, a niektóre pochodziły z demontażu moich wcześniejszych konstrukcji.
Do zagara kupiłem tylko:
ATmega8 - 6zł
DS3231 - 13zł
Obudowa KRADEX Z-77 - 7zł
Gold-Cap 1F - 6zł
gniazdo miniUSB - 1,50zł
koszty przesyłek - 18zł
Już po zamówieniu układu DS3231 zauważyłem, że dostępne są chińskie moduły z tą kostką w porównywalnej cenie.