Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Zegar LED z budzikiem (ATtiny2313 SMD + CMOS4017)

MaThiR 14 Oct 2008 19:13 27403 40
Altium Designer Computer Controls
  • Zegar LED z budzikiem (ATtiny2313 SMD + CMOS4017)

    W ramach sprawdzenia umiejętności programowania oraz ich praktycznego wykorzystania zbudowałem zegar oparty na mikrokontrolerze AVR ATtiny 2313. Układ wzbogaciłem dodatkowo o licznik CMOS4017 w celu zwolnienia dwóch dodatkowych pinów, ostateczny układ połączeń z portami mikrokontrolera wygląda tak:
    - najstarszy bit portu B to resetowanie układu 4017
    - reszta bitów portu B zostały użyte do obsługi siedmiu kresek wyświetlacza
    - cztery najmłodsze bity portu D są odpowiedzialne za przyciski, a reszta kolejno do najstarszego to: generator dźwięku, kropki wyświetlacza i wejście CLK układu 4017. Na płytce dodatkowo umieściem stabilizator 7805 i trymer do kalibracji częstotliwości taktowania od którego zależy szybkość pracy zegarka. Płytkę projektowałem (Eagle) i wykonałem metodą termotransferu, w załączniku zamieściłem wszystkie niezbędne pliki potrzebne do jej wykonania.
    Program napisałem w języku Bascom w dwóch wersjach - z budzikiem i bez:
    - wersja pierwsza: przycisk pierwszy służy do zmiany trybu ustawiania czasu (minut i godzin osobno), przycisk drugi powoduje wyświetlenie sekund na wyświetlaczu, a dwa ostatnie służą do płynnie przyspieszanego dodawania i odejmowania (w trybie wyśwetlania sekund oba przyciski zerują wartość sekund)
    wersja druga: pierwszy przycisk działa tak samo, drugi podobnie tyle że służy do przestawiania czasu pobudki, trzeci płynnnie zwiększając szybkość dodaje, a czwarty wyłącza budzenie
    Za obudowę służy zgięty prostokąt pleksi do której jest przykręcona płytka (szczegóły na zdjęciach).

    Mankamenty, czyli co mógłbym zmienić:
    W projekcie PCB układ 4017 nie ma podłączonego zasilania, zrobiłem małe przelotki po stronie druku. Sprawa druga dotyczy programu - kolejny byłby na pewno z punktu widzenia użytkownika i programisty napisany bardziej zwięźle, logicznie, za każdym razem gdy wracam do tego projektu mam dziesiątki pomysłów na lepszą wersję zegarka (może za następnym razem:D ). No i zamiast układu CMOS4017 można użyć choćby np. MC14499, na to wpadłem też trochę za późno...

    Pokaz slajdów:

    http://mathir.fotosik.pl/albums/display/slideshow.php?alb=477148

    Cool? Ranking DIY
    Can you write similar article? Send message to me and you will get SD card 64GB.
    About Author
    MaThiR
    Level 16  
    Offline 
    MaThiR wrote 279 posts with rating 258, helped 2 times. Live in city Racibórz. Been with us since 2006 year.
  • Altium Designer Computer Controls
  • #2
    markovip
    Level 34  
    Witam
    Zegarek bardzo oryginalny, ale...
    michal512 wrote:
    Perfekcyjna estetyka wykonania.[...]

    No i tutaj nie jestem zgodny, z przodu dałeś pleksi (jednak te śruby strasznie szpecą...) a z tyłu nic...
    A jak zegarek się przewróci do tyłu i spadnie np. na coś metalowego co za nim leży, i co? wszystko się popali...
    Moja rada to zamontowanie z tyłu cienkie pleksi ;)

    Pozdrawiam
  • #3
    wojto15-05
    Level 18  
    Estetyka na wysokim poziomie.
    Zegar ładnie się prezentuje.
    Mam takie pytanie jak wyginałeś plexę?
    (na gorąco - palnik i jazda czy jakoś inaczej?)
    Mogłeś dać jakiś filterek na wyświetlacze żeby były bardziej czytelne,
    ale i tak konstrukcja elegancka, pozazdrościć.
    Pozdrawiam.
  • #4
    MALTIN
    Level 15  
    Wszystko ładnie pięknie tylko bym wymienił te śruby na jakieś ładne srebrne imbusiki:) będzie ładniejsze. I zabezpiecz sobie tą tylną ścianę bo rzeczywiste będziesz musiał wrócić do projektu ;]
  • #5
    slu_1982
    Level 26  
    A ja bym polakierował laminacik
  • Altium Designer Computer Controls
  • #6
    karol75
    Level 16  
    A jak ATtiny2313 startuje bez rezystora podciągającego reset do plusa?
    Mi nie chciał żaden startować.

    Drugie w zasadzie pytanie
    Dlaczego stosujesz ATTiny2313 w wersji smd przy tak prostej płytce mogła by być ona jednostronna?
  • #7
    mkpl
    Level 37  
    karol75 przecież płytka jest jednostronna a poza tym z tego co zauważyłem elementy smd są tańsze:)

    Co do zegarka wykonanie jest na poziomie jedyne co bym zmienił to tego 4017 w smd.
    Jak ma się kwestia dokładności odmierzanego czasu?
  • #8
    MaThiR
    Level 16  
    Płytka z tyłu ma na sobie grubą warstwę kalafonii, niestety toner mi się rozmazał podczas czyszczenia acetonem, stąd te smugi których nie udało mi się usunąć. Teraz czyszczę rozpuszczalnikiem nitro. Na pierwszym zdjęciu w pokazie slajdów jest inna płytka, ale tego samego układu (pierwsza prototypowa).

    Do wyginania pleksi użyłem czterech płytek tekstolitu które zacisnąłem równo przy miejscu zaginania (szpara kilkumilimetrowa). Następnie nagrzewałem opalarką z obu stron aż pleksa zaczęła się sama uginać pod ciężarem kleszczy samozaciskowych, w takim momencie wystarczyło trochę mocniej przygiąć i gotowe. Trzeba pamiętać żeby pod płytki usztywniające nie dostał się większy brud i miały gładką powierzchnię, w przeciwnym razie możemy się spodziewać odciśniętych wzorków w miejscu grzania.

    Płytka jest jednostronna, montaż układu ATtiny2313 w wersji SMD po stronie druku pozwolił mi na zaoszczędzenie miejsca, gdyby był w obudowie DIP20 całość na pewno byłaby większa.

    Z końcóką reset nie miałem żadnych problemów.

    Osłona na tył była w planie, niestety nie miałem wystarczająco długich śrub. Wiem, są nieestetyczne, gdy będę miał okazję to kupię lepsze. Możliwość uszkodzenia elektrycznego jest znikoma, zwarcie jakiejkolwiek końcówki obu układów scalonych nie niesie za sobą żadnych poważnych konsekwencji, jedynie zwarcie emiterów tranzystorów do masy może je uszkodzić no i oczywiście zwarcie końcówek IN i OUT stabilizatora w przypadku gdy zasilacz będzie miał duży zapas napięcia.

    Układ czasowy na bazie zliczania impulsów taktowania nie jest najlepszy, ale do takich celów jak amatorski zegarek wystarczający. Dołączonym trymerem można minimalnie regulować częstotliwością taktowania procesora.
  • #9
    jokerrro
    Level 12  
    zegarek swietny :) a jak z kosztami??
  • #11
    User removed account
    User removed account  
  • #12
    karol75
    Level 16  
    mkpl
    Jak jednostronna skoro smd i przewlekany?

    Może i tańsze ale koszt wykonania płytki wyższy / trudniejszy

    Nie patrzyłem na płytkę
    Przejżałem żeczywiście plytka jednostronna ale spróbuj utworzyć płytkę w Eagle ze schematu i procek jest smd, schemat zamieszczony i dopiero zmieniona przy robieniu płytki.

    Pozostaje pytanie o rezystor podciągający.
  • #13
    Damian_Max
    Level 15  
    Fajny projekcik, to zależy od gustu, ale ja tam bardzo lubię projekty wykonane jak ten, mam na myśli że wszystko jest na wierzchu, można zobaczyć, obejrzeć - popodziwiać.
    Tylko w tym przypadku ważna jest estetyka wykonania płytki i lutów.

    Fajny projekt podoba mi się :)
    Pozdrawiam.
  • #14
    MaThiR
    Level 16  
    Jedna cyfra składa się z 7 kresek i kropki o wspólnej anodzie czy katodzie (zależy od modelu wyświetlaczy). Łącznie są 4 segmenty. Zostaje tutaj wykorzystana bezwładność oka - segmenty są załączane każdy osobno, po kolei, i adekwatnie do zaświeconej pozycji jest przypisywana odpowiednia wartość do bajtu sterującego kreskami cyfry i kropką (8 segmentów - 8 bitów). Elementy wszystkich czterech segmentów są połączone równolegle. W takim układzie wykorzystujemy 12 portów mikrokontrolera (8 na sterowanie elementami cyfr i 4 na załączanie odpowiednich segmentów). Ja w układzie wykorzystałem CMOS'a 4017 do kolejnego załączania segmentów, wykorzystuję 2 porty zamiast 4 - jeden do naliczania (CLK) a drugi do resetowania CMOS'a (RST).

    Specjalnie na cele budowy zegarka niczego nie kupowałem, kilka mikrokontrolerów kupiłem wcześniej, wyświetlacze wyjąłem z płytki testowej, generator dźwięku sam się dzieś na warsztacie znalazł, w rezonatory zainwestowałem też wcześniej, przyciski to groszowe sprawy, kondensatory i rezystory z demontażu, tak samo podstawka.
  • #15
    ostry_18
    Level 24  
    MaThiR wrote:
    Ja w układzie wykorzystałem CMOS'a 4017 do kolejnego załączania segmentów, wykorzystuję 2 porty zamiast 4 - jeden do naliczania (CLK) a drugi do resetowania CMOS'a (RST).


    Jak już tak zakombinowałeś, żeby do multipleksowania korzystać z oddzielnego scalaka, trzeba było pomyśleć, a wtedy wykorzystywałbyś nie dwie a jedną nogę mikroprocesora. Po prostu - w 4017 robi się tak, że (chcąc mieć 4 wyjścia) piąte wyjście podłączasz do resetu i.. reset robi się sam, bez udziału procesora
  • #16
    wrobello
    Level 12  
    Wykonanie staranne, troszkę te śrubki szpecą ten zegarek ale o gustach się nie dyskutuje.
    Osobiście pomalowałbym jakoś ładnie laminat...
  • #17
    goodbay
    Level 11  
    Zegarek super ale przydała by się dokumentacja i wzór płytki w PDF lub innym popularnym formacie.
    Marcin
  • #18
    hehehehuhuhu
    Level 19  
    Pytanie do MaThiR , skąd wziąłeś projekt bo zdaje mi się że takowy już gdzieś widziałem tylko nie pamiętam gdzie.
    P.
  • #19
    bsw
    Level 19  
    Schematu nie obejrzałem bo nie mam na czym... Napisz czy zastosowałeś kwarc zegarkowy? Jak ze stabilnością wskazań - tiny przecież nie ma RTC na pokładzie... Też przymierzam się do zegarka na tiny ale troszkę mniejszego (naręcznego :-))

    Co do stosowania 4017 - wyświetlasz coś oprócz cyferek ? jeśli nie to można było zastosować dekoder 4026 - z czterech pinów masz 7 segmentów pozostałe 4 na multipleksowanie i cały wyświetlacz obsługujesz jednym 8-pinowym portem :-)
  • #20
    MaThiR
    Level 16  
    Gdyby końcówka RST była podłączona z jednym z wyjść w układzie CMOS4017 nie wiem czy pracowałby poprawnie. Gdyby się pojawiły jakieś nieporządane zakłócenia, lagi musielibyśmy resetować cały zegarek, ponieważ poprzestawiałyby się miejsca wyświetlanych cyferek.

    Oczywiście można zastosować inny lepszy układ, dedykowany specjalnie pod obsługę wyswietlaczy, jednakże CMOS'a 4017 miałem akurat na składzie.

    Odnośnie kosztów niczego specjalnie na potrzeby zegarka nie kupowałem, zrobiłem z tego co się nazbierało na warsztacie. Kupując wszystkie części w 30zł - 40zł może się zmieścisz.

    Quote:
    Pytanie do MaThiR , skąd wziąłeś projekt bo zdaje mi się że takowy już gdzieś widziałem tylko nie pamiętam gdzie.
    P.

    To jest typowa amatorska konstrukcja z wykorzystaniem mikroprocesora, można ją zrealizować na wiele innych podobnych sposobów.

    Wybaczcie zapomnałem - schemat:
    Zegar LED z budzikiem (ATtiny2313 SMD + CMOS4017)

    Dokładność zegarka opierającego się na kwarcu przyłączonego do mikroprocesora jest wystarczająca. Trzeba jednak pamiętać o trymerze, do tego zegar pracuje w raczej stabilnych warunkach - temperatura (20-24°C) i wilgotność raczej nie ulegają drastycznym zmianom.
  • #21
    kargo
    Level 11  
    Witam
    Podobne rozwiązanie(2313+4017) było przedstawione w Elektronice Praktycznej 02/2006 na stronie 109 - "Zegar ustawiany pilotem". Rozwiązanie to różni się od powyższego tym że wszelkich nastaw zegara dokonujemy pilotem na podczerwień a nie klawiaturą oraz tym że zegar ma wyjście przekaźnikowe.
  • #22
    radziejtech
    Level 10  
    Zbudowałem tez ten zegarek. Tylko mam problem. Nigdy nie programowałem w Bascom. W ogóle nigdy nic nie progamowałem. Znajomy ma programator ale on robił tylko w C i na Bascomie sie nie zna. HELP
  • #23
    MaThiR
    Level 16  
    Znalazłem 2 wersje programu, w załączniku masz pliki wsadowe *.HEX. Możesz je wgrać przy pomocy dowolnego programu obsługującego programatory do procesorów AVR.
    Zresztą najprostszym rozwiązaniem będzie instalacja darmowego pakietu BASCOM AVR, otwórz listingi z pierwszego postu, skompiluj i wgraj. Obsługa tego programu nie jest trudna.
  • #24
    radziejtech
    Level 10  
    Gdzie w załączniku?
    W basscomie kompiluje się ale nie widzi układu. W innym progranie widzi wszystko OK. Może mam złe ustawienia w tym basscomie?
  • #25
    MaThiR
    Level 16  
    Zapomniałem dołączyć do ostatniego postu... :oops:
    Czy w opcjach BASCOM AVR wszystko dokładnie poustawiałeś? Częstotliwość rezonatora, model mikroprocesora, programator itp?
  • #26
    radziejtech
    Level 10  
    Po wgraniu wsada zegarek działał ale źle naliczał. 1sekunda zmieniała się po 7-8 sekundach ;/ po drugie wyświelacz miał słabe odświeżanie. Chyba rezygnuje i zbuduje zegarek na Atmega8.
  • #27
    MaThiR
    Level 16  
    Z tego mogłoby wynikać, że jest taktowany nieodpowiednio. Czy jest taktowany rezonatorem czy wewnętrznym zegarem RC? Przestawiłeś fusebity?
  • #28
    radziejtech
    Level 10  
    Zegar jest z kwarcem takim jak na schemacie. Fusy też były ustawiane. Ja tego nie ustawiałem tylko kolega. Ja jestem zielony w programowaniu ;/
  • #29
    danloop
    Level 15  
    zegarek super :) idealny na biurko elektronika. Mam tylko pytanie o zasilanie, bo nie widać baterii, nie wiem czy zasilasz go z zasilacza osobnego? Bo z gniazdka raczej nie
  • #30
    radziejtech
    Level 10  
    Pod X1 podłączasz zasilanie np.12V. W czrwonej ramce oznaczyłem stabilizator od 5V.
    Jesli masz zasilacz 5V to podłączasz go bez tego co jest oznaczone na czerwono.

    Zegar LED z budzikiem (ATtiny2313 SMD + CMOS4017)