Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Zegar binarny z 6 LED-ami na PIC12F683

tsmki 04 Wrz 2018 11:14 1758 5
  • Zegar binarny z 6 LED-ami na PIC12F683

    Do zbudowania tego zegara zainspirował mnie "Zegarek binarny na czterech diodach led".
    https://www.elektroda.pl/rtvforum/viewtopic.php?p=15819782#15819782
    Obejrzałem również film, ilustrujący działanie tego zegarka, jednak trudno mi było jednoznacznie zinterpretować wyświetlane na Ledach stany.

    Postanowiłem stworzyć własną konstrukcję, która byłaby łatwiejsza w użytkowaniu. Poniżej przedstawiam jej schemat.

    Zegar binarny z 6 LED-ami na PIC12F683

    Użyłem procesora PIC12F683 z zewnętrznym rezonatorem kwarcowym 4 MHz, zasilany lub ogniwami LiIon 3,8V. Do ustawiania zegara służy miniaturowy przycisk. Do sterowania Ledami pozostały tylko trzy porty procesora, zatem do wyświetlania zastosowałem technikę charlieplexingu. Wykorzystuje ona możliwość ustawiania portów procesora nie tylko w stany wyjściowe wysokie i niskie, ale też w stan wejściowy. Dzięki temu trzy porty procesora mogą obsłużyć 6 Ledów.
    Wymyśliłem, że cztery Ledy będą wyświetlały binarnie liczbę odpowiednio: dziesiątek godzin, jednostek godzin, dziesiątek minut, jednostek minut.
    Pozostałe dwa Ledy będą sygnalizowały, czy wyświetlane są aktualnie godziny czy minuty.
    Cykl wyświetlania trwa 10 sekund. Każde wskazanie wyświetlane jest przez dwie sekundy, zatem po ośmiu sekundach wyświetlacz jest wygaszany.
    Korygowanie wskazań odbywa się za pomocą przycisku. Gdy przyciśniemy go przez 2 sekundy w trakcie wyświetlania godzin, nieważne czy dziesiątek czy jedności, wejdziemy w tryb korekcji. Następuje wyświetlenie licznika godzin, a właściwie jego części wyświetlającej jedności. Każde kolejne wciśnięcie przycisku zwiększa stan tego licznika. Zaprzestanie naciskania przez cztery sekundy powoduje wyjście z trybu korekcji i powrót do cyklicznego wyświetlania czasu.
    Analogicznie można korygować licznik minut, rozpoczynając naciskanie przycisku podczas wyświetlania minut.
    Jeśli rozpoczęcie naciskania nastąpi w czasie dwusekundowej przerwy po wyświetlaniu czasu, mamy możliwość ustawienia licznika sekund w stan zero. Sygnalizowane jest to zaświeceniem obu dodatkowych Ledów. Następnie każdorazowe naciśnięcie przycisku zeruje licznik sekund. Po czterech sekundach od zaprzestania naciskania następuje powrót do trybu wyświetlania czasu.




    Procesor pracuje z zewnętrznym kwarcem 4 MHz. Aby wskazania zegara były dokładne, należy dobrać pojemności kondensatorów współpracujących z kwarcem tak, by częstotliwość generacji wynosiła dokładnie 4 MHz. Jeśli mierzylibyśmy częstotliwość generacji bezpośrednio na nóżce procesora przyłączonej do rezonatora, wewnętrzna pojemność dołączonej sondy pomiarowej zakłócałaby warunki pracy generatora. Z tego względu wprowadziłem dodatkową funkcjonalność układu. Po włączeniu zasilania, do momentu pierwszego naciśnięcia przycisku, na 7 nóżce procesora generowany jest przebieg prostokątny o częstotliwości 100 kHz, który może zostać wykorzystany do dostrojenia kondensatorów w generatorze. W tym czasie wyświetlacz pozostaje wygaszony.
    Pobór prądu działającego zegara wynosi około 0,8 mA. Zakładając pojemność baterii 2000mAh, energii powinno wystarczyć na ponad 3 miesiące pracy.



    Wsad do procesora zamieściłem w pliku binarny_hex.txt.
    Na zamieszczonym filmie widać działanie tego zegara, wyświetlającego godzinę 18:49 a następnie 18:50.
    Fotografie pokazują zegar w obudowie oraz konstrukcję wewnętrzną (zegar zmontowałem na płytce uniwersalnej).

    Zegar binarny z 6 LED-ami na PIC12F683


    Fajne!
  • #2 05 Wrz 2018 09:24
    adversus
    Poziom 24  

    Prosta ale bardzo ciekawa konstrukcja.
    Duży plus za estetykę.
    Jak wygląda stabilność wskazań w dłuższym czasie?

    @h3c4, nie kompromituj się, skoro nie masz nic ciekawego do napisania to się nie wypowiadaj, albo sam zaprezentuj jakaś swoją konstrukcję...

  • #3 05 Wrz 2018 11:16
    tsmki
    Poziom 10  

    Zegar wykonałem niedawno i nie miałem możliwości zebrać obserwacji. Jednak z doświadczenia wiem, że rezonator kwarcowy 4 MHz jest o wiele bardziej stabilny niż ceramiczne rezonatory 32 kHz stosowane w zegarkach naręcznych i mechanizmach zegarów ściennych. Ponadto zastosowałem możliwość ustawiania dokładnej częstotliwości rezonansu rezonatora - przebieg 100 kHz na wyjściu testowym można precyzyjnie ustawić przy użyciu trymerów zastępujących kondensatory 24 pF. Jeżeli ustawiłoby się odrobinę większą częstotliwość, tzn jeśli zegar nieco spieszyłby się, wówczas można co jakiś czas skorzystać z możliwości zerowania licznika sekund, porównując z czasem wzorcowym.

  • #4 06 Wrz 2018 08:48
    kolgreen
    Poziom 14  

    Tutaj podobny projekt zegara binarnego, również na mikrokontrolerze PIC. Z tym, że jest tam 6 bitów plus dwa ledy informujące czy mamy wyświetlaną godzinę, czy minuty.
    Sposób wyświetlania jaki proponujesz na 4 bitach jest trochę uciążliwy.

  • #5 10 Wrz 2018 15:11
    ditomek
    Poziom 20  

    Wykonanie OK. Kwestionuje tylko ideę tak "skąpego" wyświetlacza.
    Odczyt zajmuje sporo czasu i nawet przyzwyczajenie się do binarnego przedstawiania liczb wymaga oczekiwania na pokazanie wszystkich informacji.
    Czy ten zegar jest rzeczywiście funkcjonalny?

  • #6 11 Wrz 2018 15:50
    tsmki
    Poziom 10  

    Czy zegar jest funkcjonalny? To kwestia przyzwyczajenia. Dla mnie jest bardziej funkcjonalny niż odczyt pełnej liczby binarnej . Zresztą odczyt liczby BCD czyli wpierw dziesiątki, a potem jedności jest bardziej naturalny, nawet jeśli liczby nie są przedstawiane jako cyfry dziesiętne tylko binarne liczby czterobitowe. Łatwiej odczytać liczbę minut 57 zakodowaną jako 0101 i 0111 niż policzyć ile to jest 111001.
    Oczywiście ten zegar to taka ciekawostka, aczkolwiek funkcjonalna. Jeśli ktoś chce wygodnego odczytu, nie musi używać zegara binarnego, jest pełno zegarów z wyświetlaczami 7-segmentowymi.
    Chciałem stworzyć zegar możliwie najprostszy, jest on znacznie prostszy od układu zaproponowanego przez Kolgreena, gdzie użyty został moduł RTC, notabene z mało dokładnym rezonatorem ceramicznym 32 kHz.