- wskazywanie czasu (godzin i minut) w trybie 24-godzinnym,
- wskazywanie aktualnego dnia tygodnia przy użyciu pełnego słowa w języku polskim lub angielskim,
- podtrzymanie odliczania po zaniku zasilania,
- wybór koloru tła i liter przy użyciu zworki,
- zasilanie napięciem stałym 4,5…15 V, ok. 60 mA.
Na łamach EP opublikowano wiele różnych zegarów, lecz każdy różnił się od pozostałych. Ten zegar ma wbudowany wyświetlacz graficzny o przekątnej 1,8 ”, który może wyświetlać czarne litery na białym tle bądź odwrotnie. Cyfry o wysokości ok. 9 mm są widoczne z daleka i czytelne nawet w słoneczny dzień.
Budowa
Funkcjonowaniem całego urządzenia steruje mikrokontroler STM32F051K8T6. Spośród jego licznych peryferiów w tym projekcie mają zastosowanie: I2C do komunikacji z układem RTC oraz SPI, którym przebiega komunikacja z wyświetlaczem graficznym.
Częstotliwość zegara mikrokontrolera wynosi 48 MHz i nie musi być szczególnie stabilna, ponieważ nie służy do odmierzania czasu. Mikrokontroler w tej wersji obudowy nie ma dodatkowego wejścia zasilania bateryjnego, które mogłoby podtrzymywać odliczanie wewnętrznego RTC, dlatego użyto zewnętrznego układu.
Do programowania pamięci Flash mikrokontrolera zostało przewidziane złącze J3, na które wyprowadzono cztery podstawowe linie interfejsu SWD: NRST, SWCLK, SWDIO oraz masę. Linie sygnałowe zostały podciągnięte do zapięcia zasilającego przy użyciu rezystorów R7…R9, aby odprowadzać z nich ładunki elektrostatyczne, które mogłyby zakłócać prawidłowe działanie układu. Kondensator C11 jest zalecany przez producenta mikrokontrolera i służy chwilowemu wymuszeniu sprzętowego zerowania układu po włączeniu zasilania.
Do wyświetlacza graficznego zostały dołączone dwie linie sprzętowego interfejsu SPI1. Są to MOSI (wyjście danych z układu nadrzędnego) i SCK (sygnał zegarowy danych), oznaczone na schemacie jako SDI i SCLK. Użycie sprzętowego interfejsu, zarządzanego przez DMA, pozwoliło na znacznie przyspieszenie przesyłu danych, których ilość, składająca się na jeden pełny obraz, jest pokaźna. Pozostałe linie (A0 – wybór dane/komenda, RESET – sprzętowe zerowanie, CS – wybór układu) są zarządzane czysto programowo, ponieważ nie są krytyczne czasowo.
Do ustawiania aktualnego czasu (minut, godzin i dni tygodnia) służą przyciski S1…S3, których jednokrotne przyciśnięcie powoduje zmianę danej wartości o 1. Aby zapobiec przypadkowej zmianie, dodano przycisk S4, który trzeba trzymać wciśnięty, żeby regulacja była możliwa. Bez tego nie jest możliwe wymuszanie niskiego stanu logicznego na odpowiednich liniach prowadzących do mikrokontrolera, natomiast stan wysoki po zwolnieniu przycisków utrzymują rezystory R2…R4.
Użytkownik może wybrać kolor tła i znaków. Kiedy zworka JP1 jest zwarta, wejście mikrokontrolera jest w stanie niskim i układ wyświetla czarne znaki na białym tle. Po jej rozwarciu rezystor podciągający R1 ustala jej stan na wysoki i kolory odwracają się: znaki stają się czarne, a tło białe.