Skocz do zawartości
atlantis86

Jeszcze jeden zegar binarny

Pomocna odpowiedź

Napisano (edytowany)

Amatorską elektroniką zainteresowałem się po raz pierwszy w połowie lat dziewięćdziesiątych, będąc jeszcze dzieciakiem ze szkoły podstawowej. Moja aktywność na tym polu ograniczała się wówczas głównie do składania cudzych konstrukcji z pojedynczych tranzystorów, analogowych układów scalonych czy bramek logicznych. Brakowało mi wiedzy i narzędzi, aby zająć się czymś poważniejszym. Szczególnie wejście w świat mikrokontrolerów nie wchodziło w grę - zakup programatora i podręczników z kieszonkowego nie wchodził w grę, a i same elementy do tanich nie należały. Największą popularnością cieszyła się wówczas rodzina 8051, szczególnie w wykonaniu firmy Atmel (np. AT89C2051 albo AT89C51). Tematem mikrokontrolerów zająłem się wiele lat później, na początku obecnej dekady, standardowo zaczynając od AVR-ów.

Kilka lat temu przy okazji zakupów na Allegro zauważyłem jednak w ofercie jednego ze sprzedawców stare układy AT89C51, co spowodowało natychmiastowy "atak" nostalgii. Od razu zamówiłem kilka sztuk. Dopiero potem zorientowałem się, że nie dysponuję programatorem. Na szczęście okazało się, że te można bez większych problemów kupić na najpopularniejszym chińskim serwisie aukcyjnym. Czekając na przesyłkę zorientowałem się w temacie programowania tych mikrokontrolerów w czasach współczesnych, wczytując się w dokumentację kompilatora SDCC. Po kilku tygodniach dysponowałem już podstawami wiedzy i zestawem narzędzi potrzebnych do realizacji projektu. Na tym etapie musiałem odpowiedzieć sobie na pytanie o jego temat. Szukałem czegoś, co byłoby popularną konstrukcją wśród amatorów elektroników w czasach, gdy ja zaczynałem zajmować się tym hobby. Zegar binarny zdawał się być oczywistą odpowiedzią.

Urządzenie powstawało głównie wieczorami, w ciągu kilku tygodni. Składają się na nie dwie jednostronne płytki drukowane. Pierwsza zawiera wyświetlacz oparty na LED-ach oraz zestaw przycisków, druga logikę sterującą. Składają się na nią mikrokontroler AT89C51, zegar czasu rzeczywistego DS1307 z gniazdem baterii podtrzymującej, układ zasilania oraz niewielki głośnik piezoelektryczny. Przeznaczenie tego ostatniego jest dość specyficzne - co sekundę, przy odświeżaniu zawartości wyświetlacza generuje on dźwięk przypominający "tykanie" klasycznego zegara mechanicznego. Celem projektu było stworzenie urządzenia w stylu lat dziewięćdziesiątych, bez współczesnych ulepszeń w stylu automatycznej synchronizacji czasu za pomocą łączności sieciowej albo modułu GSM. Zegar nie robi nic poza wyświetlaniem czasu w formie binarnej (a właściwie BCD), a ustawia się go ręcznie.

Oprogramowanie sterujące zostało napisane w języku C i skompilowane za pomocą kompilatora SDCC, szczelnie wypełniając dostępne 4kB pamięci flash mikrokontrolera.Obudowa urządzenia została wycięta laserowo. Za pomocą tego samego narzędzia został na niej wygrawerowany rysunek.

Obecnie w realizacji (z uwagi na brak czasu i ważniejsze projekty) jest projekt bliźniaczego zegara, który tym razem będzie korzystał ze współczesnej elektroniki, opartej na module ESP8266.

9656621537290899605.jpg6845111537290930457.jpg28337395_10214593828814536_3399701974988196776_o.jpg28337095_10214593832694633_5251559914135483405_o.jpg3069581537290961121.jpg1465611488742869920.jpg16797069_10211191697123370_9137389105955870151_o.jpg

Edytowano przez Treker
Poprawiłem formatowanie.
  • Lubię! 2

Udostępnij ten post


Link to post
Share on other sites

Właśnie zaakceptowałem Twój opis, możesz go teraz zgłosić do akcji rabatowej umieszczając link w temacie zbiorczym. Dziękuję za przedstawienie ciekawego projektu, zachęcam do prezentowania kolejnych DIY oraz aktywności na naszym forum 🙂

Udostępnij ten post


Link to post
Share on other sites

Gratuluje kolejnego, ciekawego wpisu. Bardzo podoba mi się obudowa i wykonanie projektu, ale jako programista amator, mam pewien niedosyt związany z brakiem kodu a więc nie mogę podpatrzeć i uczyć się od lepszych.

Nie rozumiem czemu zakupiłeś zestaw 140 przycisków? Pewnie masz jeszcze dużo projektów, no i w hurcie jest jednak taniej. Druga sprawa, skoro masz RTC na DS1307 z baterią, to czemu ustawiasz czas ręcznie?

Pozdrawiam i czekam niecierpliwie na twoje kolejne projekty

Udostępnij ten post


Link to post
Share on other sites
23 godziny temu, atlantis86 napisał:

co spowodowało natychmiastowy "atak" nostalgii.

Widząc ten projekt od razu przypomina mi się moje niedoszłe dzieło - zegarek binarny ukryty w kopercie zegarka naręcznego. Nieudana próba robienia dwustronnej płytki w warunkach domowych na niespełna 2cm krążku laminatu... Udałoby się, gdyby ktoś pamiętał żeby odbić lustrzanie scalony układ SMD. 😥

23 godziny temu, atlantis86 napisał:

bez współczesnych ulepszeń w stylu automatycznej synchronizacji czasu za pomocą łączności sieciowej albo modułu GSM

Zawsze można synchronizować zegar sygnałem z sieci energetycznej - układ LM8560 i jemu podobne tak robią. 

Projekt naprawdę fajny,  na pewno wzbudza zainteresowanie każdego niezwiązanego z branżą 😁

Udostępnij ten post


Link to post
Share on other sites
(edytowany)
9 godzin temu, narbej napisał:

Gratuluje kolejnego, ciekawego wpisu. Bardzo podoba mi się obudowa i wykonanie projektu, ale jako programista amator, mam pewien niedosyt związany z brakiem kodu a więc nie mogę podpatrzeć i uczyć się od lepszych.

A co mi tam. 😉 Tylko ostrzegam, że kod jest miejscami dość specyficzny, wynikający z zastosowanego sprzętu i kompilatora. Raczej nie przyda się do nauki współcześnie stosowanych mikrokontrolerów. Biblioteki do obsługi I2C i zegara poskładane z fragmentów znalezionych w sieci, ewentualnie przeportowane z kodu AVR dołączonego do jakichś tutoriali, jeśli mnie pamięć nie myli.

BinaryClock.zip

Cytat

Nie rozumiem czemu zakupiłeś zestaw 140 przycisków? Pewnie masz jeszcze dużo projektów, no i w hurcie jest jednak taniej.

Nie twierdziłem, że na potrzeby tego projektu kupiłem akurat 140 przycisków. To tylko przykład. Niemniej należą one do elementów, których zapas lubię mieć zawsze pod ręką. Z doświadczenia wiem, że zwykle szybko "schodzą" przy różnych projektach i potem brak przycisku bywa frustrujący, gdy chciałoby się szybko zakończyć jakiś projekt. 😉

Cytat

Druga sprawa, skoro masz RTC na DS1307 z baterią, to czemu ustawiasz czas ręcznie?

RTC z baterią też trzeba raz na jakiś czas ustawić, o ile układ nie ma dostępu do zewnętrznego wzorca czasu (DCF77, NTP, GPS). A w tym projekcie nie ma.

Najpierw trzeba powiedzieć zegarowi która godzina, a potem co jakiś czas konieczna jest delikatna korekta wskazań. To tylko zegar kwarcowy, więc akumulacja niedokładności po jakimś czasie staje się zauważalna.

Cytat

Pozdrawiam i czekam niecierpliwie na twoje kolejne projekty

Niewiele zostało zakończonych, które nadają się do publikacji i pasują do tematyki forum. 😉

43 minuty temu, Gieneq napisał:

Widząc ten projekt od razu przypomina mi się moje niedoszłe dzieło - zegarek binarny ukryty w kopercie zegarka naręcznego. Nieudana próba robienia dwustronnej płytki w warunkach domowych na niespełna 2cm krążku laminatu... Udałoby się, gdyby ktoś pamiętał żeby odbić lustrzanie scalony układ SMD. 😥

Warto spróbować jeszcze raz. 😉 Wbrew pozorom mniejsze płytki dwustronne robi się łatwiej - im większa, tym trudniej o zgranie warstw.

Cytat

Zawsze można synchronizować zegar sygnałem z sieci energetycznej - układ LM8560 i jemu podobne tak robią. 

Mówimy o dwóch różnych rzeczach. Te układy są taktowane z sieci energetycznej, czyli pobierają z niej tylko częstotliwość 50 Hz, która jest dzielona i wykorzystywana do wytworzenia sygnału 1Hz, z którego korzysta zegar. Stanowi to alternatywę dla rezonatora kwarcowego. Układy tego typu nie są natomiast w stanie pobierać z sieci informacji o aktualnym czasie - ten trzeba ustawić ręcznie albo podać z zewnętrznego źródła. Co jakiś czas konieczna jest też korekta.

Okazuje się też, że częstotliwość sieci energetycznej wcale nie jest takim wiarygodnym wzorcem częstotliwości. Ostatnio było o tym głośno, gdy w pewnym momencie uzbierało się dość zauważalne odchylenie...

Cytat

Projekt naprawdę fajny,  na pewno wzbudza zainteresowanie każdego niezwiązanego z branżą 😁

Większość znajomych spoza środowiska nie ma pojęcia, że to zegar. 😉

Edytowano przez atlantis86
  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

"Co do generatora 50Hz. Kolega powyżej ma rację , teraz sieć jest synchronizowana dobowo i jest dokładnie 50Hz (kiedyś było różnie). Też posiadam ten zegar (z generatorem, jak z Radioelekronika) , no bo proszę zwrócić uwagę co się stanie jak zabraknie prądu (wzorca 50Hz) .... zaśpimy do pracy, szkoły itd.. W sytuacji z generatorem akumulatorek na 9V zasila całość prócz wyświetlaczy i budzik nas nie zawiedzie."

Powyżej, fragment dyskusji z forum elektroda.pl, na temat wykorzystania tego układu, a zegarków obrodziło jak grzybów [mam na myśli moje mieszkanie], kuchenka, radio, telewizor, dekoder ..... no i jeszcze arduino ;-). W części sprzętów może jest ten układ - po wyłączeniu prądu trzeba nastawiać zegarek ręcznie [kuchenka i radiobudzik - nie wymieniłem baterii ;-)]

link: https://www.elektroda.pl/rtvforum/topic2761385.html

26 minut temu, atlantis86 napisał:

Nie twierdziłem, że na potrzeby tego projektu kupiłem akurat 140 przycisków. To tylko przykład.

Wiedziałem, to był taki [niewinny?] żarcik ;-), dzięki za kod.

Udostępnij ten post


Link to post
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »

×