Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Zegar LED z bardzo dużym wyświetlaczem

Gizmoń 29 Paź 2015 12:24 7491 9
  • Zegar LED z bardzo dużym wyświetlaczem

    Postanowiłem zaprezentować ten zegar teraz, ponieważ minął już pierwszy rok jego pracy, z której wszyscy domownicy są bardzo zadowoleni. Skonstruowałem go po to, by oglądając telewizję, można było jednym spojrzeniem sprawdzić, która godzina. Bardzo duży wyświetlacz umożliwia wygodny odczyt nie tylko sprzed telewizora, ale i z całego salonu, w którym telewizor stoi. Aby był dobrze czytelny za dnia i nie raził w oczy po ciemku, zegar ma automatyczną regulację jaskrawości - układ dwustawny z histerezą. Zdarzające się u mnie co jakiś czas krótkie zaniki zasilania, nie przeszkadzają dzięki układowi podtrzymania z kondensatorem o dużej pojemności. Obudowę zrobiłem przy pomocy mojej frezarki CNC z paneli podłogowych o ładnym kolorze "Dąb Mocca". Jej kształt i bardzo małe wymiary umożliwiają łatwe umieszczenie zegara w rozmaitych miejscach, a nawet na podwieszenie go pod półką. Zasilany jest z sieci przez wtyczkowy zasilacz impulsowy o napięciu wyjściowym 5V. Pobór prądu mierzony po stronie niskonapięciowej nie przekracza 30mA w trybie dziennym.

    Więcej szczegółów:
    Zegar LED z bardzo dużym wyświetlaczem Zegar LED z bardzo dużym wyświetlaczem Zegar LED z bardzo dużym wyświetlaczem

    Wyświetlacz z cyframi o wysokości 50mm - jest to odrestaurowany element jakiegoś sporego radiobudzika, który zgnieciony leżał na złomowisku. Właściwie z oryginalnego wyświetlacza pozostała jedynie plastikowa maskownica i zielona matówka, czyli jedyne sprawne elementy. Płytkę z diodami zrobiłem nową, według własnego projektu. Zastosowałem jaskrawe, zielone diody SMD 0805. Po dwie na segment. Największą trudność stanowiło zwymiarowanie maskownicy, będącej trójwymiarowym elementem o bardzo skomplikowanym kształcie. Z pomocą przyszła stara, analogowa kserokopiarka Minolta, robiąc mi "zdjęcie" tejże maskownicy w skali dokładnie 1:1. Na płaskim obrazku wymiarowanie poszło już łatwo. Drugą i ostatnią trudnością było zrobienie płytki metodą termotransferu, gdzie musiałem wziąć pod uwagę skurcz papieru pod wpływem temperatury. Zrobiłem próbny transfer, zmierzyłem wymiary obrazu odbitego na płytce i wprowadziłem odpowiednie korekty przy ponownym drukowaniu wzoru.




    Zegar LED z bardzo dużym wyświetlaczem

    Układ podtrzymania zasilania - stanowi go kondensator 0,018F, dioda Schottky'ego 1N5819 i opornik 1kΩ łączący nóżkę PD0 z zasilaniem niepodtrzymywanym. PD0 przez ¼ czasu jest wyjściem w stanie niskim, włączającym 4 wyświetlacz. Przez pozostałe ¾ czasu PD0 to wejście. W razie braku zasilania, dzięki podłączonemu do niego opornikowi 1kΩ, pojawia się na nim stan niski który powoduje przejście mikrokontrolera w tryb oszczędzania energii. Polega on na wyłączeniu komparatora analogowego i przerwania zegarowego 400Hz odpowiadającego za sterowanie wyświetlaczem, a także zmniejszeniu częstotliwości taktowania procesora z 4MHz na 15,625kHz i przełączeniu go na bieg jałowy ("idle"). Działa tylko wywoływane co sekundę przerwanie zegarowe, w którym zliczany jest czas oraz sprawdzany stan zasilania. Dzięki takiemu rozwiązaniu zegar pracuje jeszcze około 12 minut od chwili odłączenia zasilania.

    Zegar LED z bardzo dużym wyświetlaczem Zegar LED z bardzo dużym wyświetlaczem

    Układ automatycznej regulacji jaskrawości - stanowi go umieszczona z przodu zegara fotodioda, dwa rezystory dobrane eksperymentalnie, potencjometr służący do ustawiania progu przełączania oraz dwa kondensatory i trzeci rezystor, tworzące filtr. Wewnątrz mikrokontrolera wykorzystywany jest komparator analogowy porównujący napięcie na wejściu PB1 z napięciem odniesienia równym 2,5V. Im ciemniej, tym wyższe jest mierzone napięcie. Powyżej 2,5V zegar przechodzi w tryb nocny, poniżej - w dzienny. Aby uniknąć wielokrotnego przełączania, gdy napięcie jest bardzo bliskie 2,5V, zastosowałem dwa triki:
    1) za pomocą rezystora podciągającego PB1 i wspomnianych wcześniej filtrów RC dodałem do układu niewielką histerezę. W trybie dziennym "pull up" jest całkiem wyłączony, natomiast w nocnym włącza się na określony czas, 100 razy na sekundę. W ten sposób fotodioda zaczyna być polaryzowana nie tylko prądem płynącym przez potencjometr, ale też prądem wypływającym z wejścia pomiarowego. Powoduje to wzrost spadku napięcia na niej przy takim samym natężeniu oświetlenia, a więc przejście z powrotem w tryb dzienny nastąpi, gdy będzie trochę jaśniej, niż było to wymagane do przejścia w tryb nocny. Czas włączania rezystora podciągającego jest zadany na stałe w programie, ale edytując go, można w pewnym zakresie zmienić szerokość histerezy.
    2) przełączenie z jednego trybu w drugi następuje dopiero, gdy osiem kolejnych, wykonywanych co minutę odczytów da taki sam wynik - "dzień" albo "noc".
    Aby ułatwić ustawienie potencjometrem odpowiedniego progu przełączania, po wciśnięciu górnego przycisku uruchamiany jest specjalny podprogram. Wykonuje on pomiary nie raz na minutę, ale 100 razy na sekundę, a wynik pokazuje od razu w postaci jaskrawej litery "d" lub "n" na wyświetlaczu.
    Wszystkie wyżej opisane tryby pracy widoczne są na poniższych zdjęciach.

    Zegar LED z bardzo dużym wyświetlaczem

    Ustawianie czasu
    Po wciśnięciu dolnego przycisku cały wyświetlacz zamiera i tak jak w trybie nocnym przygasa, z wyjątkiem jaskrawej cyfry dziesiątek godzin, którą można zmieniać wciskając górny przycisk. Zero na pierwszym wyświetlaczu nie jest wygaszane. Kolejne wciśnięcia dolnego przycisku wybierają kolejne cyfry do zmieniania, wyróżniane przez rozjaśnienie - jedności godzin, dziesiątki minut i jedności minut. Piąte wciśnięcie kończy tryb ustawiania i zegar przechodzi do normalnej pracy, ale:
    - jeśli nie została zmieniona żadna cyfra, zegar chodzi po staremu co do sekundy, a nawet jej ułamka;
    - jeśli została zmieniona tylko liczba godzin (na przykład zmiana czasu z letniego na zimowy), zegar również chodzi po staremu co do sekundy, tylko wyświetla inną godzinę;
    - jeśli została zmieniona liczba minut - niewidoczny sekundnik zegara startuje od zera.
    Tryb ustawiania zegara obrazuje poniższa seria zdjęć. Ponieważ nic nie zostało zmienione, po przejściu do normalnej pracy wyświetlony został aktualny czas (0:26 podczas gdy tryb został uruchomiony o 0:25).
    Zegar LED z bardzo dużym wyświetlaczem

    Dokładność
    Nie przewidziałem na płytce trymerka do korekcji chodu zegara, ponieważ zamierzałem zrobić to programowo. Pierwsza minuta co którejś (1...255) doby może trwać nie 60, ale od 1 do 255 sekund. Taka funkcja jest w programie, ale ustawiona na 60s co 7 dni, bo okazała się zbędna. Trzeba trafu, że zegar chodzi idealnie bez żadnych korekt! Porównywałem go z czasem GPS i po miesiącu odchyłka wynosiła około sekundę, co ciekawe - raz do przodu, raz do tyłu. Średnio wychodzi w zasadzie na zero i prędzej zdarzy się zanik zasilania powodujący konieczność ponownego ustawiania czasu, niż odchyłka przekroczy 5 sekund. Z racji tak znakomitej dokładności, ten zegar służy teraz w domu za wzorcowy przy ustawianiu innych.

    Program
    Napisałem go w Assemblerze i zajmuje 1002 bajty (48,9%) pamięci mikrokontrolera ATtiny2313. Myślę, że to całkiem nieźle jak na pierwszy program napisany zaraz po kursie z podstaw ASM. Może kiedyś nieco poprawię i przy okazji dodam możliwość wyświetlenia licznika sekund, bo mam wrażenie, że mógłby się czasem przydać przy synchronizowaniu innych zegarów. Aktualizacja oprogramowania jest bardzo łatwa i można jej dokonać bez rozkręcania obudowy, dzięki złączu ISP z tyłu, służącemu na co dzień do zasilania zegara.


    Fajne!
  • #2 29 Paź 2015 13:54
    Freddy
    Poziom 43  

    Ciekawe wykorzystanie "złomu", jak sam napisałeś.
    Moje pytanie jest takie: czy myślałeś cos o automatycznej regulacji jasności?

  • #3 29 Paź 2015 19:53
    NIXIE_123
    Poziom 28  

    Freddy napisał:
    Moje pytanie jest takie: czy myślałeś cos o automatycznej regulacji jasności?


    Gizmoń napisał:
    Układ automatycznej regulacji jaskrawości - stanowi go umieszczona z przodu zegara fotodioda, dwa rezystory dobrane eksperymentalnie, potencjometr służący do ustawiania progu przełączania oraz dwa kondensatory i trzeci rezystor, tworzące filtr. Wewnątrz mikrokontrolera wykorzystywany jest komparator analogowy porównujący napięcie na wejściu PB1 z napięciem odniesienia równym 2,5V. Im ciemniej, tym wyższe jest mierzone napięcie. Powyżej 2,5V zegar przechodzi w tryb nocny, poniżej - w dzienny. Aby uniknąć wielokrotnego przełączania, gdy napięcie jest bardzo bliskie 2,5V, zastosowałem dwa triki:
    1) za pomocą rezystora podciągającego PB1 i wspomnianych wcześniej filtrów RC dodałem do układu niewielką histerezę. W trybie dziennym "pull up" jest całkiem wyłączony, natomiast w nocnym włącza się na określony czas, 100 razy na sekundę. W ten sposób fotodioda zaczyna być polaryzowana nie tylko prądem płynącym przez potencjometr, ale też prądem wypływającym z wejścia pomiarowego. Powoduje to wzrost spadku napięcia na niej przy takim samym natężeniu oświetlenia, a więc przejście z powrotem w tryb dzienny nastąpi, gdy będzie trochę jaśniej, niż było to wymagane do przejścia w tryb nocny. Czas włączania rezystora podciągającego jest zadany na stałe w programie, ale edytując go, można w pewnym zakresie zmienić szerokość histerezy.
    2) przełączenie z jednego trybu w drugi następuje dopiero, gdy osiem kolejnych, wykonywanych co minutę odczytów da taki sam wynik - "dzień" albo "noc".
    Aby ułatwić ustawienie potencjometrem odpowiedniego progu przełączania, po wciśnięciu górnego przycisku uruchamiany jest specjalny podprogram. Wykonuje on pomiary nie raz na minutę, ale 100 razy na sekundę, a wynik pokazuje od razu w postaci jaskrawej litery "d" lub "n" na wyświetlaczu.
    Wszystkie wyżej opisane tryby pracy widoczne są na poniższych zdjęciach.

  • #5 29 Paź 2015 20:07
    komatssu
    Poziom 28  

    Skoro zostało tyle miejsca w pamięci programu, to czemu nie zrobiłeś kalendarza i automatycznej zmiany czasu letni/zimowy?

  • #6 29 Paź 2015 21:59
    djfarad02
    Poziom 17  

    Moim zdaniem niepotrzebna komplikacja z diodami 1N4148. Gdyby dać mniejszy rezystor między B a E tranzystorów, nie powinno być problemu z lekką poświatą na wygaszonych segmentach. Domyślam się, że taki właśnie problem był przyczyną przyjęcia tego rozwiązania.
    A może jednak chodziło o napięcie wsteczne B-E bądź o pobór prądu ze źródła zasilania awaryjnego? W tych przypadkach również można uprościć.

    Z powodu jakich problemów na linii reset jest kondensator 22p do masy?

  • #7 30 Paź 2015 07:33
    krzysztofh
    Poziom 29  

    Ciekawa konstrukcja, ale przy tak dużej płytce z diodami, można było się pokusić o umieszczenie wszystkich elementów właśnie na tej płytce.

  • #8 30 Paź 2015 16:57
    Gizmoń
    Poziom 28  

    komatssu - Niestety, raz czy dwa razy w roku zdarza się u mnie wyłączenie zasilania powodujące konieczność ponownego ustawiania zegara. Kalendarz byłby bardziej przeszkodą niż pomocą, tym bardziej, że obecne menu umożliwia zmianę czasu w zaledwie kilku ruchach.

    djfarad02 - Z układem nie było żadnych problemów, zadziałał od razu i działa stabilnie do dziś. Z diodami chodziło właśnie o pobór prądu ze źródła zasilania awaryjnego w czasie jednego cyklu przemiatania, zanim zanik zostanie wykryty. Racja, można by to uprościć, wyłączając tranzystory przełączeniem nóżki w tryb wejścia, czyli Hi-Z. Z jakiegoś powodu nie pomyślałem o tym.
    Kondensator 22pF 22nF (nie ten przedrostek na schemacie) ma stanowić dodatkowy filtr na wypadek bardzo silnych zakłóceń. Zauważyłem kiedyś, że wejście jakiegoś układu 74HC, mimo podciągnięcia, reagowało na iskrzenie wyłącznika lutownicy. Stąd właśnie to dodatkowe zabezpieczenie.

    krzysztofh - Myślałem o tym, jednak ewentualna zmiana hardware sterownika wiązałaby się wówczas z koniecznością robienia od nowa płytki wyświetlacza, a nie jest to takie łatwe z uwagi na dość wąskie tolerancje wymiarów.

 Szukaj w ofercie
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME