Witam, nie wiem dlaczego, ale dopiero teraz znalazłem ten dział i widzę że pora nadrobić stracony czas
W związku z tym, myślę, że warto pochwalić się jednym z moich projektów DIY, tym bardziej że jest on skończony w 100% (no może w 99,9%) i jest moim oczkiem w głowie.
Projekt dotyczy może się niektórym wydawać banalnego zegarka, ale ja uważam, że jest on bardzo fajną i udaną konstrukcją, która idealnie spełnia swoje zadanie. Zegar oparty jest na płytce z czterema wyświetlaczami 1,8” (NE093) z bardzo starego zestawu o symbolu NE062 i płytki bazowej własnego projektu, która zawiera mikrokontroler ATtiny2313, układy zasilające, sterujące jak i drivery wyświetlacza oraz modułu RTC wykonanego przez mojego kolegę, opartego o genialny scalaczek DS3231.
Na początek jednak nieco historii, zestaw NE062 gotowy już zmontowany przez znajomego, zakupiłem kilkanaście lat temu, składał się on z wspomnianej wyżej płytki z dużymi wyświetlaczami oraz płytki bazowej zawierającej scalony zegar MC1204 polskiej produkcji CEMI. Od samego początku konstrukcja ta miała jedną ogromną wadę - dokładność, a właściwie jej brak. Układ MC1204 taktowany był z popularnego zewnętrznego kwarcu 32,768kHz z dołączonym trymerem umożliwiającym korygowanie pracy dokładności zegara. Mimo wielokrotnych prób ustawienia dużej precyzji zegara nigdy nie udało mi się osiągnąć tolerancji mniejszej niż +/- 1 minuta na miesiąc, latem zegar chodził szybciej, zimą wolniej, także sekcja zasilania miała znaczny wpływ na jego pracę, która zawsze była dość niestabilna. Dlatego od dawien dawna marzył mi się precyzyjny zegar, którego nie muszę co chwilę kalibrować, aby poprawnie wskazywał czas.
Na początku 2012 roku, wspólnie z kolegą odkryliśmy bardzo dokładne układy RTC o symbolu DS3231 (także ich bliźniaki DS3232), zaraz dość szybko powstała maleńka konstrukcja modułu RTC z wyprowadzonymi wszystkimi wejściami na złącza goldpin, które to służyły nam do testów w zestawach uruchomieniowych i zabawy z oprogramowaniem dla takiego zestawienia - moduły te zastąpiły nam niezbyt precyzyjne moduliki oparte o popularne DS1307 którymi się wcześniej interesowaliśmy. Po kilku miesiącach testów i obserwacji dokładności, okazało się że dokładność mamy na poziomie +/- 1-3 sekundy na kilka miesięcy! Dlatego definitywnie nadszedł czas na, aby raz na zawsze rozprawić się z moim niedokładnym zegarem
Było to gdzieś na przełomie 2012/2013 roku.
Wsad do mikrokontrolera pisałem w Bascom-ie bazując na pajęczynie w oparciu o płytkę stykową, po czym dopiero powstał projekt płytki, której wykonanie zleciłem firmie zewnętrznej, skompletowałem niezbędne elementy i powstał mój Goliat AVR. Poniżej zamieszczam fotki i w załączniku kod źródłowy bas (może nie jest on doskonały, ale nie mam nic do ukrycia, może ktoś sobie częściowo lub w całości wykorzysta, poprawi, skoryguje).
Zegar realizuje następujące funkcje: dokładnie odmierzanie czasu
możliwość wyświetlenia temperatury z układu DS3231 (wywołanie na żądanie jednym z przycisków), zmianę stanu diody led znajdującej się w module (cykle: świecenie, miganie 1Hz, wygaszenie), menu ustawień gg i mm (podczas ustawiania danej sekcji wyświetlacze im odpowiadające migają) z możliwością zapisu do układu RTC z wyzerowanymi sekundami gg:mm:00 w momencie naciśnięcia przycisku.
Całość nie posiada żadnej obudowy (lubię goliznę) i stoi sobie na podstaweczce na najwyższym elemencie segmentu w pokoju, nie wyobrażam sobie funkcjonowania bez niego
Docelowo kolejnym moim wyzwaniem, jest napisanie takiego samego programu (może lepszego) w oparciu o język C, który realizował będzie dokładnie takie same funkcje, kto wie może uda się też coś nowego tu wdrożyć
Póki co trochę nauki i opanowania świata C przede mną, ale wierzę że ten czas wcześniej czy później nadejdzie.
Wszelkie komentarze, opinie, zapytania będą mile widziane.
Elementy składowe:Moduł RTC:Tak to wygląda już złożone w całość:Foto zrobione podczas działania (widok ogólny, czas, temperatura):Tu jako ciekawostka, stara płytka z dziadkiem MC1204 na pokładzie: