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

Atmega + Bascom = Clock, czyli zegar ABC

piórko 31 Sie 2007 22:53 52293 50
  • Atmega + Bascom = Clock, czyli zegar ABC


    Szczęśliwi czasu nie mierzą, jednak ja zrobiłem zegar.
    Sterowany mikrokontrolerem ATmega8, z zielonym 14 mm wyświetlaczem LED i kwarcem 32768 Hz.
    Zegar, który w tej chwili pokazuje godzinę 72.22 ;) , ale o tym później.



    Schemat

    Cyferki włączane są sekwencyjnie przez port C za pośrednictwem wtórników emiterowych na BC817.
    Segmenty zapala przez oporniki 220 omów port D.
    Przyporządkowanie portów do cyfr i segmentów wynikło z jak najprostszego prowadzenia ścieżek na płytce drukowanej.
    Złącze ISP w standardzie 6 pinowym.
    Z portu PC0, którego stan zmienia się co sekundę, wyprowadziłem dodatkowe złącze. Pomiar okresu tego przebiegu pozwala dokładnie dostoić częstotliwość kwarcu 32768 Hz. Różnica wskazań między czasem http://wwp.greenwichmeantime.com/ , a wskazywanym przez ABC nie przekracza 2 sekund na dobę.
    Niewykorzystany pozostał pin PC1. W zasadzie, to do PC0 po dobraniu kondensatorków generatora i zmianie w programie też można coś podłączyć. Jakąś kukułkę na przykład, albo ledzika...

    Atmega + Bascom = Clock, czyli zegar ABC



    Zasilanie

    Mostek 4 x 1N4004, elektrolit 2200uF i stabilizator 7805 umożliwiają zasilanie zegarka wszystkim co ma stałą lub zmienną różnicę potencjałów około 9V. Na razie zegarek biega z zasilacza "wtyczkowego", docelowo użyję prawdopodobnie transformatorka TS2/16.
    Pobór prądu o godz. 1.11 wynosi 25mA, a o 20.08 65 mA. Średnio pobiera więc z sieci poniżej 0,5W :crazyeyes:.
    W razie zaniku 230V praca zegarka będzie potrzymywana przez akumulatorki. Na płytce jest miejsce na montaż stosownych elementów separująco-ładujących, ale jeszcze ich nie wlutowałem.
    Na fotce tymczasowo baterie zamiast akumulatorów.

    Atmega + Bascom = Clock, czyli zegar ABC

    Atmega + Bascom = Clock, czyli zegar ABC



    Płytka

    Jednostronna, 38 x 84 mm.
    Projekt - Eagle. Wykonanie - termotransfer.
    Wyświetlacz wlutowany jest 6 dolnymi nogami i zamocowany opaską. Górne nogi połączone są z płytką kynarem.
    Atmega siedzi na wszelki słuczaj w podstawce.
    Oporki, tranzystorki i 100nF są powierzchniowe.

    Atmega + Bascom = Clock, czyli zegar ABC

    Atmega + Bascom = Clock, czyli zegar ABC



    Obudowa

    KM-35N z zielonym filtrem. Pipki do ustawiania sposobu wyświetlania i czasu wystają sobie z boku.

    Atmega + Bascom = Clock, czyli zegar ABC

    Atmega + Bascom = Clock, czyli zegar ABC



    Sposoby wyświetlania i ustawianie

    Zegar ABC może wyświetlać czas na 3 sposoby:

    1. normalny - godziny i minuty. Wygaszane jest zero na pierwszej cyfrze. Czyli o godz. np. 02.53 wyświetla 2.53.
    2. minuty i sekundy
    3. normalny inaczej, czyli godziny i minuty od prawej do lewej. Przykładowo: o 14.27 zegarek pokaże 72.41. Po co tak? Żeby było wspak ;)

    Chodzi mi też po głowie następny sposób polegający na płynnym przesuwaniu godzin, minut i sekund, ale jeszcze nie mam koncepcji jak to napisać.

    Sposób wyświetlania można w każdej chwili zmieniać "w koło Macieju" pierwszym switchem.
    Drugi pstryczek ustawia godziny, a trzeci minuty, jednocześnie zerując licznik sekund. Program zapobiega zliczaniu godzin, gdy w czasie ustawiania licznik minut przeskoczy 59.

    Atmega + Bascom = Clock, czyli zegar ABC


    Kosztorys

    ATmega8......................................5,5
    wyświetlacz .................................8
    1N4004 x 4...................................0,4
    7805.............................................1
    BC 817-40 x 4...............................0,8
    220 Ω x 8......................................0,8
    10 kΩ ...........................................0,2
    2200 µF........................................1
    220 µF...........................................0,8
    100 nF x 2.....................................0,2
    podstawka DIL14 x 2 ...................0,6
    kwarc 32768 Hz ...........................1,5
    22 pF(wartość dobierana) x 2.......0,4
    mikroswitch x 3 ............................2,4
    goldpin..........................................0,4
    kynar, termo i inne .......................1
    zasilacz / trafo TS2/16...................6
    płytka.................................. około 4
    obudowa i filtr...............................4
    projekt płytki i program ............... ∞ ;)

    Razem..............................................39 + ∞




    Program

    Listing w trakcie modernizacji :cry:, a w załączniku hex.


    DIY

    Zmontowanie sobie zegara ABC polecam wszystkim dorosłym (i niedorosłym) chłopcom. Super zabawka, a jednocześnie praktyczne mikrokontrolerowe poletko doświadczalne.

    Sam zrobiłem dwa... chyba, dokładnie nie liczyłem, clocki ABC. Skłonny więc jestem odstąpić egzemplarz w celu wymiany doświadczeń. Zainteresowanych proszę o emalię lub pewu :ok: .


    Kończę, bo już 94.22 :)

    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
    O autorze
    piórko
    Poziom 30  
    Offline 
    piórko napisał 1106 postów o ocenie 61, pomógł 176 razy. Mieszka w mieście Wa-wka. Jest z nami od 2004 roku.
  • Computer ControlsComputer Controls
  • #2
    ciapciok
    Poziom 20  
    Projekt ładnie wykonany. Wydaje mi się, że akumulator na schemacie jest źle podłączony. Co do tego zasilania awaryjnego, rozumiem, że na akumulatorach będzie cały zegar potrzymywany, zamiast samego RTC ?

    Pozdrawiam
  • #3
    dowodca_armii
    Poziom 30  
    Czemu na zdjeciu "Sposoby wyświetlania i ustawianie" pierwsza godzina jest troche ciemniejsza ?

    Ogolnie to bosko wykonane - luty lepiej niz fabryka :D :D obszerny opis i reszta na wysokim poziomie ;)
    Oby wiecej takich konstrukcji na Elektrodzie ;)

    Pozdrawiam.
  • #5
    saper18
    Poziom 12  
    Bardzo starannie wykonana płytka. W sumie cały projekt zasługuje na wysoką ocenę. Jak skończę robić wzmacniacz to zabiorę się za budowę takiego zegarka. Nie raz musiałem wstawać z łóżka aby zobaczyć godzine na tel. komórkowym a to jest czasami denerwujące. Pozdrawiam.
  • #6
    franyo_z
    Poziom 19  
    Witam.
    Bardzo staranne wykonanie, podoba mi się. Dodałbym jeszcze kilka linii kodu, jakąś piszczałkę (np. na PC1) i wyposażył zegarek w funkcję budzika. Albo przekaźnik i funkcję załączania/wyłączania urządzenia zewnętrznego w określonych porach.
    pzdr.
  • Computer ControlsComputer Controls
  • #8
    Jarema
    Użytkownik obserwowany
    Witam,
    Zwykle narzekam ale tym razem pochwalę kolegę za wykonaną starannie pracę.
    Jak już moi przedmówcy napisali do przeróbki kwalifikuje się układ podtrzymania aczkolwiek jest to zabieg kosmetyczny.
    Okno wyświetlacza warto było by zakleić / zamalować tak by widoczny był sam wyświetlacz - opaska go trzymająca psuje nieco efekt wizualny.
    Nie pokazał kolega jak jest zamontowane trafo...
    O bezpieczniku po stronie pierwotnej chyba nie trzeba wspominać ;)
    Ponadto można by dodać np. datę lub temperaturę gdyż możliwości techniczne istnieją.
    W program się nie wgryzałem ponieważ erę bascoma mam już za sobą i pewne rzeczy się zapomniało ;).
    Ogólnie ocena 4.8/5.
  • #9
    koval_s
    Poziom 17  
    Może ja trochę dodam od siebie:
    - tranzystory do wspólnej Anody powinny być typu PNP, chodzi o drobne spadki napięć które jednak występują na wyjściu z proca, no i trzeba dodać rezystorki na bazę żeby nie poleciały tranzystory
    - jeszcze wolne masz piny od ISP, wystarczy odpowiednio je podłączyć przez rezystory jak producent zaleca - bodajże 100om - i pinów jest więcej

    PS
    Jakość wykonania 5/5

    pozdrawiam...
  • #10
    lechoo
    Poziom 39  
    Przy małych 2VA transformatorkach sieciowych nie stosuje się bezpieczników po stronie pierwotnej, są one całkowicie odporne nawet na długotrwałe zwarcia.
    W następnej wersji programu przerzuć obsługę multipleksowania wyświetlacza do przerwań, bo obecnie jest to bardzo nieelegancko zrobione w głównej pętli.
    Przytoczony listing programu jest trochę nieczytelny...
  • #12
    mariuz
    Poziom 31  
    Projekt pierwsza klasa. Szacunek na wieki ode mnie ;)

    Tylko jeden mały problem... Skąd wiadomo, który tryb jest ustawiony?
  • #13
    wikingc1
    Poziom 18  
    Witam.
    No naprawdę ładny zegareczek, nie ma się do czego przyczepić no może tylko do tego awaryjnego zasilania ale to już było mówione. Bardzo podoba mi się sposób wyświetlania od końca bardzo orginalny i jak ktoś przyjdzie to się zastanawia czemu to tak pokazuje pewnie się popsuł :D .
    Daje 5/5
  • #14
    dr.master
    Spec od drukarek
    dałby może kolega rade wrzucić wzór płytki :?:
  • #15
    bestler
    Admin DIY, Automatyka
    Kolektory tych tranzystorów powinieneś podłaczyć zaraz za stabilizatorem - przed tą pierwszą czerwoną diodą. Wtedy po wyłączeniu wtyczki z gniazdka sieciowego zgaśnie wyświetlacz ale procek będzie pracował... wydaje mi się to lepsze rozwiązanie, które pozwoli na długotrwałe podtrzymanie.

    Ten elektrolit na zasilaniu to trochę przesadzony, myślę, że przy tym poborze prądu wystarczył by 470 mikro.

    Myślę, że te dwa alternatywne systemy pokazywania godziny są tylko bajerem bo i tak nie będziesz z tego korzystał, ponadto - jak już ktoś wspomniał - nie wiesz w którym aktualnie systemie jest wyświetlana godzina. Ale respect za samo wykonanie tej (nawet nieużytecznej) fukcji - zawsze to jest jakaś trudność.

    Od strony fizycznej wykonanie jest ślicznie, szczególnie płytka. Fajnie, że użyłeś SMD, a nie przewlekańców. Zdecydowanie unowocześniło to całe wykonanie. :)

    P.S.

    Szybki jesteś - cały post, ze zdjęciami stworzyłeś w 20 min ;))

    Paweł
  • #16
    piórko
    Poziom 30  
    Niezłe noty :D. Dziękuję.

    Jak najbardziej, ciapciok, brak 230V nie będzie powodował wygaszenia wyświetlacza. Akumulatorki zapewnią kilkugodzinną pracę, a zasadniczo chodzi tylko o podtrzymanie zasilania podczas krótkich zaników sieci. Myślę, że prosty układ ładowania utrzyma akumulatory we właściwej formie.

    dowódca_armii, godzina 9.17 jest ciemniejsza gdyż fotka była wykonywana podczas innej sesji zdjęciowej :D , wiesz, oświetlenie i te sprawy...

    "Znak wodny", foxik000000, ukrywa pewien niuans, o którym nie warto pisać.

    Już Ci miernik998 odpowiadam: Nie wiem :oops:. Ja mam samoróbkowy STK200/300.

    Jarema :!: zaniżyłeś mi średnią ocen :( . Nie dałoby się tego naprawić :?: ;)
    Wnętrze zegarka jest w zasadzie niewidoczne przez zieloną szybkę, a transformatorek jak się zamocuje to pokażę.

    Nie zgodzę się, koval_s, z Twoimi uwagami. Mój sposób sterowania wyświetlaczem - wtórniki emiterowe npn - nie wymaga oporków w bazach, a dzięki dużemu wzmocnieniu prądowemu zapewnia jednakową jasność świecenia cyfr, niezależnie od tego czy będzie to jedynka, czy ósemka.

    Nie napisałem, lechoo, że autor programu, niejaki piórko, jest bardzo początkującym bascomiarzem i na rady typu "przerzuć obsługę multipleksowania wyświetlacza do przerwań" reaguje tak: 8-O . Jeśli byłbyś skłonny udzielić bardziej rzeczowych wskazówek, to chętnie się z nimi zapoznam.
    Co do listingu, to może sporządzę jakowyś komentarzyk.

    100nF jest przy 7805. A dlaczego, Gigantor, 220 mikro miałby być za duży?

    Jak trafnie zauważyli schnelltot i wikingc1, nic nie pokazuje, że w 3 sposobie wyświetlania trzeba czytać od prawej. I w tym cały dowcip :sm8:. Chociaż... może zapalić wtedy czwartą kropkę :?:

    dr.master - takie rzeczy to tylko na PW :|

    "W 20 minut". Spostrzegawczy jesteś bestler :D.
    2200µF za dużo? Niewątpliwie, ale od przybytku głowa nie boli.
    Opisany przez Ciebie sposób połączenia kolektorów wymusiłby, wydaje mi się, przy braku 230V zasilanie cyfr z portu przez bazę-emiter nie powodując wygaszenia cyfr. Chyba, żeby dać oporki w bazach... Nie warto.
  • #17
    VC
    Poziom 21  
    piórko napisał:
    N
    2200µF za dużo? Niewątpliwie, ale od przybytku głowa nie boli.

    Nie bym był taki pewny, poczytaj trochę na ten temat.
  • #18
    JStan
    Poziom 16  
    Dołącze sie do pochwał gdyż kontrukcja bardzo solidnie wykonana i przede wszystkim widze zapał młodego konstruktora do tworzenia!! Nawet jeśli są jakieś niedociągnięcia to są one po to by sie na nich nauczyć czego unikać w przyszłości.

    PS postu w 20 minut :> Pierwsza odpowiedź nastąpila 20 minut po umieszczeniu posta :> Autor mógł go pisać zdecydowanie dłużej i napewno tak było :) Apropo opisu, podoba mi się że tak starannie przygotowany :)

    A i co to za niuans na plytce:) Może warto napisać, kmuś moze sie przyda...

    Pozdrawiam!!
  • #19
    bestler
    Admin DIY, Automatyka
    nie nie... pisał to 20 min, ponieważ na początku postu podał godzinę jaką widzi aktualnie na zegarze, a na końcu napisał, że idzie spać, bo już jest (godzina) - jak sie odejmie jedno od drugiego to otrzymamy czas pisania postu. :)

    Bazy tranzystorów powinny być podłączone przez rezystory, zawsze sie tak robi,m ponieważ wtedy jest mniej efektów ubocznych.

    Elektrolit 2200 jest za dużo, mówię Ci to i uwierz mi na słowo :)

    Paweł
  • #20
    robson24-78
    Poziom 19  
    Witam.

    Dobrze że nazwy zegara nie podałeś wspak, bo wyszłoby że to zegar CBA... ;)
    A tak na poważnie, bardzo dobrze wykonana konstrukcja, prosta, bez zbędnych udziwnień i bajerów...
    Moja ocena 5/5

    Pozdrawiam!
  • #21
    VC
    Poziom 21  
    robson24-78 napisał:
    bez zbędnych udziwnień i bajerów...

    Chyba nie czytałeś pierwszego postu.
    :arrow: wyświetlanie godziny 'wspak'
    to jest właśnie zbędny bajer :)
  • #22
    robson24-78
    Poziom 19  
    Pisząc zbędne bajery miałem na myśli część elektryczną urządzenia, jest prosta i przejrzysta... A co do oprogramowania... Dobry trening, zawsze można je zmienić...
  • #23
    miswierz
    Poziom 14  
    Witam. Czy mozliwe jest zastosowanie 4 osobnych cyfr polaczonych w jedna calosc zamiast gotowego wyswietlacza??jezeli tak to jak wygladalo by polaczenie takiego zgromadzenia:)
  • #24
    piórko
    Poziom 30  
    Zastosowanie 4 osobnych cyfr jest możliwe. Trzeba połączyć je tak:

    Atmega + Bascom = Clock, czyli zegar ABC

    Oznaczenia segmentów: a, b, c itd. znajdziesz na schemacie. DP to decimal point - kropka dziesiętna.

    W praktyce trudno jest zaprojektować jednostronną płytkę tak, aby mozaika ścieżek połączyła w ten sposób wyprowadzenia wyświetlaczy. Przeważnie trzeba zrobić wiele zworek, albo płytkę dwustronną.
  • #25
    elek555
    Poziom 37  
    Na wyświetlaczach pojedyńczych zrobiłem kiedyś jeszcze taki MYK że 3-ci obróciłem "do góry nogami" wtedy jego DP zostanie górną kropką dwukropka. Oczywiście nazwy jego segmentów trzeba sobie stosownie przetłumaczyć. Warto również pamiętać przy projektowaniu o wewnętrznych połączeniach wspólnych anod w górnym i dolnym rzędzie pinów co ułatwia prowadzenie ścieżek. Zawsze lubiłem zegarki. Fajny, ale zrób ten budzik :)
  • #26
    Mariuszek15
    Poziom 24  
    piórko Możesz do tego jeszcze dorzucić 2-punktowy pomiar temperatury na DS18B20?? Temperatura by się wyświetlała z rozdzielczością do dziesiątej stopnia C np. 24,6C.
  • #27
    karol46
    Poziom 10  
    Super wykonanie i opis projektu, jedyne czego nie rozumiem to :

    Cytat:
    Z portu PC0, którego stan zmienia się co sekundę, wyprowadziłem dodatkowe złącze. Pomiar okresu tego przebiegu pozwala dokładnie dostoić częstotliwość kwarcu 32768 Hz.


    Nie wystarczy sam kwarc ?
  • #28
    piórko
    Poziom 30  
    Nie wystarczy :cry: , bo kwarc kwarcowi nierówny, do tego wpływ temperatury, napięcia zasilania...

    Posługuję się miernikiem okresu, który w czasie trwania "1" na PC0 atmegi zlicza impulsy z własnego generatora wzorcowego 1MHz. Kondensatorki przy kwarcu dobieram tak, aby miernik zliczał dokładnie 1000000 impulsów. Efekt: dokładność szwajcarskiego zegarka :D
    Przyrząd, o którym piszę pochodzi z epoki TTL. Jeśli kto ciekaw jak wygląda to fotki są tu: https://www.elektroda.pl/rtvforum/topic421759.html , mniej więcej na 2/3 wysokości strony.

    Przy okazji zaprezentuję nową wersję ABC z wyświetlaczem z 2 kropkami...

    Atmega + Bascom = Clock, czyli zegar ABC

    Atmega + Bascom = Clock, czyli zegar ABC

    ...oraz komputerowo spreparowaną wersję niebieską ;)

    Atmega + Bascom = Clock, czyli zegar ABC
  • #29
    musznik
    Poziom 10  
    A co z fusebitami? nie ma zadnej wzmianki o nich.
  • #30
    piórko
    Poziom 30  
    Fusów nie dotykać :!:

    Tak jak Atmel ustawił ma zostać.