| Author |
Message
|
Mis Poziom 14

Joined: 17 May 2002 Posts: 168 Location: Bytom
|
#1
20 Dec 2007 03:24 Kolejny zegarek LED na AtMega8, ale dokładny |
|
|
|
Witam wszystkich serdecznie !
Oto kolejny zegarek z wyświetlaczami LED oparty na ATmega8. Znowu ?? Tak, a czemu nie. Konstrukcja powstała jako odpowiedź na zapotrzebowanie na naścienny zegarek z dużymi cyframi widoczny w nocy. Wymiary całości to 180x70x18mm.
Zegarek wyświetla tylko godziny i minuty, mruga dwukropkiem oraz posiada automatyczną regulację jasności świecenia w zależności od oświetlenia - czym jaśniej na zewnątrz tym jaśniej świeci. Dodatkowo posiada programową korekcję dokładności wskazań. Wystarczy najpierw ustawić korekcję na 0, oraz ustawić dokładnie czas (np według DCF'a) a potem zostawić go w spokoju na tydzień i porównać odchyłkę z DCF'em. Potem bierzemy w dłoń kalkulator i liczymy... Wartość korekcji to interwał
pomiędzy kolejnymi przyspieszeniem lub opóźnieniem zegara o 1 sekundę mierzony w okresach 10 minutowych. Zakręcone, nie ?
Ale wcale nie aż tak bardzo, bo liczymy to tak: przyjmijmy że po równo tygodniu zegarek spóźni się o 1 minutę i 2 sekundy. Więc liczymy:
7 dni * 24 godziny * 6 dziesieciominutówek to daje 1008. Teraz dzielimy te 1008 przez 62 (1 minuta i 2 sekuny to razem 62 sekundy).
Otrzymujemy 16 z hakiem, po zaokrągleniu 16. I właśnie te 16 ustawiamy jako wartość poprawki. Koniec kropka, ustawiamy jeszcze raz dokładny czas i chodzi idealnie. Jeżeli zamiast się późnić, zegarek by śpieszył, to ustawiamy poprawkę ujemną, czyli np -16.
Aby wejść w tryb wpisywania poprawki należy wyłączyć zasilanie, nacisnąć oba przyciski na raz i trzymając włączyć zasilanie. Na wyświetlaczu pojawi się "corr", puszczamy klawisze i ustawiamy poprawkę (hour zmniejsza wartość, min zwiększa). Po 10 sekundach od ostatniego naciśniecia klawisza zegarek zapamiętuje poprawkę i wraca do normalnej pracy. Aha, WAŻNE ! poprawka jest zapisywana w eepromie, więc po każdym programowaniu proca ustawia się na -1. Więc nie zapomnijmy po zaprogramowaniu procka ustawić ją na 0 lub na wyliczoną wartość.
Oto wygląd od środka:
Jako wyświetlaczy użyłem cyfr o wielkości 1,8'' czyli 46mm - dość spore. Wyświetlacze są w miarę tanie, bo po około 2.70zł / szt, a do tego bardzo jasne, uzupełnione w dwie diody świecące o średnicy 8mm jako dwukropek. Jako że użyte wyświetlacze mają spadek napięcia na poziomie 4V, wykorzystałem prosty sposób na niewielkie podbicie zasilania poprzez dodatkową diodę przy stabilizatorze 7805. Jako zasilanie awaryjne użyto kondensatora GoldCap o pojemności 0,22F podtrzymującego zasilanie procesora w przypadku zaniku zasilania sieciowego. Reszta układu jest odcięta przez diodę schottkiego 1N5817 (lub 1N5819).
Sygnał podany na pin PC1 procka informuje go o obecności lub braku zasilania sieciowego co skutkuje wyłączeniem wszystkich zbędnych układów, i jedynie realizację odliczania czasu. W tym stanie proc pobiera tylko 15uA, a więc taki GoldCap wystarcza na kilka-kilkanaście godzin pracy bez zasilania sieciowego (6 godzin sprawdzone). Procesor pracuje z wewnętrznego generatora RC ustawionego na 2MHz, a zegarkowy kwarc 32,768KHz przypięty do pinów OSC1 i OSC2 napędza Timer2 w trybie asynchronicznym który generuje przerwania równo co sekundę. Po resecie procesora (pierwsze uruchomienie, lub zbyt długi zanik zasilania) zegar pokazuje "--:--" do momentu ustawienia czasu.
Do portu PC0 (ADC0) przyłączony jest dzielnik napięcia z fotorezystorem, a wewnętrzny przetwornik A/D mierzy napięcie z tego dzielnika i odpowiednio dostosowuje jasność świecenia wyświetlaczy wykorzystując programowy PWM robiony przy okazji multipleksowania wyświetlaczy. Fotorezystor podpięty jest do zasilania +5,6V aby dzielnik nie pobierał prądu z kondensatora backup w przypadku zaniku zasilania. Kondensator 100n przyłączony do nogi RESET zwieksza odporność procka na zakłócenia, czyli przypadkowe resety. Zamiast tranzystorów w SMD (BC807) można zastosować BC327 (0.8A 50V).
Całość zasilana jest z impulsowej ładowarki do telefonów Nokia. Daje ona około 9V i jest wręcz idealna do tego celu. Dławik 10uH na wejściu można pominąć, ale zmniejsza on zakłócenia emitowane po kablu z zasilacza.
Złącze PROG służy do zaprogramowania procka i jest w standardzie programatora STK200.
Oprogramowanie jest napisane w C z wykorzystaniem darmowego kompilatora GCC w wersji 3.4.5. Wyjścia na katody wyświetlacza są pomieszane ze względu na prostsze połączenia wyświetlacza z prockiem. Można to oczywiście zmienić w kodzie źródłowym.
Oto schemat:
Tu jest wsad do procka oraz źródła softu dla fanatyków dłubania :D
| Filename: |
ZEG_zrodla.zip |
 Download |
| Contents: |
makefile
, compile.bat
, zegarek.bin
, zegarek.c
, delay.h
, zegarek.hex
, delay.s
See all... |
| Filesize: |
11.22 KB |
| Punkty: |
0.00 |
|
|
| Back to top |
|
 |
bobo Poziom 20

Joined: 19 Feb 2002 Posts: 977
|
#2
20 Dec 2007 08:18 Re: Kolejny zegarek LED na AtMega8, ale dokładny |
|
|
|
| Mis wrote: |
Jako wyświetlaczy użyłem cyfr o wielkości 1,8'' czyli 46mm - dość spore. Wyświetlacze są w miarę tanie, bo po około 2.70zł / szt, |
Czy to nie pomyłka?
Pozdrówka
|
|
| Back to top |
|
 |
marfet Poziom 11

Joined: 25 Apr 2003 Posts: 69 Location: Siemiatycze
|
#3
20 Dec 2007 08:36 Re: Kolejny zegarek LED na AtMega8, ale dokładny |
|
|
|
Z czego zrobiony jest filtr (szybka) na wyświetlacze?
Wszędzie szukam i nigdzie nie mogę dostać ciemnej plexi, wydaje się ze najtańszym rozwiązaniem jest przezroczysta plexi z naklejoną folią do przyciemniania szyb.
Jestem ciekaw jak Ty to zrealizowałeś.
pozdrawiam
|
|
| Back to top |
|
 |
Suiezzak Poziom 11

Joined: 06 Mar 2007 Posts: 74 Location: Białystok
|
#4
20 Dec 2007 09:25 Re: Kolejny zegarek LED na AtMega8, ale dokładny |
|
|
|
Witam.
Bardzo dokładny opis, dla osób zaczynających przygodę z elektroniką( tak jak ja) wręcz niezastąpione źródło wiedzy. Mam to samo pytanie co kolega marfet o filtr/szybkę do wyświetlaczy.
Pozdrawiam,
Suiezzak
|
|
| Back to top |
|
 |
Hansol2_pl Poziom 18

Joined: 10 May 2006 Posts: 509 Location: Przysucha
|
#5
20 Dec 2007 09:48 Re: Kolejny zegarek LED na AtMega8, ale dokładny |
|
|
|
Bardzo ladne wykonanie a czy ta szybka to nie jest filtr od maski spawalniczej? :)
|
|
| Back to top |
|
 |
Google

|
#
20 Dec 2007 09:48 |
|
|
|
|
|
| Back to top |
|
 |
MlodyVFR Poziom 9

Joined: 01 Jan 2007 Posts: 39 Location: 3City
|
#6
20 Dec 2007 10:43 Re: Kolejny zegarek LED na AtMega8, ale dokładny |
|
|
|
konstrukcja spoko, nie kumam was z tym filtrem. u mnie w gdansku taki filtr czerwony dostaje sie od reki, sa jeszcze rozne odcienie (kwestia producenta).
|
|
| Back to top |
|
 |
karola44-81 Poziom 20

Joined: 22 Feb 2006 Posts: 943 Location: Polaniec woj. swietokrzyskie
|
#7
20 Dec 2007 11:16 Re: Kolejny zegarek LED na AtMega8, ale dokładny |
|
|
|
Co do filtra to mozna w kazdym papierniczym dostac folie w roznych kolorach transparetne. Pod szybke wlozyc taka folie i juz jest piekny filtr. Kiedys tak robilem
|
|
| Back to top |
|
 |
smirgol Poziom 14

Joined: 15 Mar 2006 Posts: 152
|
#8
20 Dec 2007 12:28 Re: Kolejny zegarek LED na AtMega8, ale dokładny |
|
|
|
Na filtr można też użyć ciemnej szyby - nagrobkowej. Sam zastosowałem taką w moim zegarku. Zapłaciłem za nią 5 zł :D . Efekt extra.
|
|
| Back to top |
|
 |
Mis Poziom 14

Joined: 17 May 2002 Posts: 168 Location: Bytom
|
#9
20 Dec 2007 14:25 Re: Kolejny zegarek LED na AtMega8, ale dokładny |
|
|
|
Co do wyświetlaczy i ich ceny to wcale nie jest pomyłka. Firma Maritex z Gdyni ma takowe w swojej ofercie i po 2,70zł/szt.
Przedni filtr zrobiłem z dymnej plexi o grubości 2mm. U mnie w Bytomiu jest zakład produkujący plexi, więc kupiłem u nich odpadki za parę groszy. Nawet polerować nie musiałem bo była idealna, bez rys. Wydaje mi się że folia do przyciemniania szyb samochodowych też powinna być OK.
|
|
| Back to top |
|
 |
Stipe77 Poziom 10

Joined: 20 Dec 2006 Posts: 52 Location: Lublin
|
#10
20 Dec 2007 14:29 Re: Kolejny zegarek LED na AtMega8, ale dokładny |
|
|
|
Czerwone filtry są do kitu bo widać przez nie nie świecące pola. Ja do tego używam pleksi bezbarwnej z naklejoną folią do przyciemniania szyb w autach i wygląda to b. dobrze
|
|
| Back to top |
|
 |
avatar80 Poziom 4

Joined: 27 May 2005 Posts: 9 Location: Zabrze
|
#11
20 Dec 2007 15:45 Re: Kolejny zegarek LED na AtMega8, ale dokładny |
|
|
|
Witam. Swego czasu, a było to kilka lat temu poskładałem zegarek z telexpresu. Do przykrycia wyświetlaczy użyłem tapety samoprzylepnej białej, z wzorkiem marmuru. Efekt jest wyśmienity. Niema żadnej poświaty, widać ostre krawędzie wyświetlaczy. Co do koloru i wzoru tapety nie ma żadnej reguły. Użyłem takiej, gdyż takową miałem pod ręką.
Pozdrawiam
|
|
| Back to top |
|
 |
Duch__ Poziom 22

Joined: 12 Dec 2004 Posts: 1948 Location: Opole
|
#12
20 Dec 2007 16:20 Re: Kolejny zegarek LED na AtMega8, ale dokładny |
|
|
|
Czy błąd odmierzania czasu który korygujesz programowo nie jest spowodowany brakiem kondensatorów przy kwarcu zegarkowym 32768 kHz?? Ogólnie ładnie Ci to wyszło. Pozdrawiam.
|
|
| Back to top |
|
 |
Google

|
#
20 Dec 2007 16:20 |
|
|
|
|
|
| Back to top |
|
 |
Jarema Poziom 21

Joined: 26 Jun 2002 Posts: 1216 Location: KRK II
|
#13
20 Dec 2007 17:06 Re: Kolejny zegarek LED na AtMega8, ale dokładny |
|
|
|
Siema,
Moje gratulacje :D
Po raz pierwszy chyba widzę na forum projekt zegara bez PCF'a i na dodatek nie napisany w bascomie...
(Mój będzie kolejny jak wyląduje w obudowie :P).
Jak widać jeśli "się chce" to można zbudować układ, który jest w miarę optymalnie zaprojektowany- nie mam się do czego doczepić... Dodał bym jedynie kondziorki przy kwarcu 32768Hz...
Moja ocena 6/6 - powodzenia w nowych projektach :D
P.S.
Gdzie kolega tak tanio kupuje wyświetlacze :D ?
|
|
| Back to top |
|
 |
Google

|
#
20 Dec 2007 17:06 |
|
|
|
|
|
| Back to top |
|
 |
JStan Poziom 15

Joined: 13 Feb 2006 Posts: 238 Location: Sanok
|
#14
20 Dec 2007 17:44 Re: Kolejny zegarek LED na AtMega8, ale dokładny |
|
|
|
Witam!!
Konstrukcja bardzo udana, gratuluje!! Dowiedzialem się jak ciekawie zwiększyć napięcie 7805, mam tylko pytanie czy te kondensatory 100nF przy 7805 musze łączyć się poprzez diode z masą czy nie mogą tak jak elektrolity???
I drugie pytanie po co jest kondensator 10uF przy rezystorze 22k? (przy dzielniku napięcia fotorezystora)
Jak dla mnie 10/10
Podrawiam
|
|
| Back to top |
|
 |
hts Poziom 15

Joined: 16 Mar 2003 Posts: 206 Location: Wrocław
|
#15
20 Dec 2007 18:53 Re: Kolejny zegarek LED na AtMega8, ale dokładny |
|
|
|
No i to mi się podoba :D. Super konstrukcja, porządne zdjęcia, ciekawie zrealizowana likwidacja opóźnienia/śpieszenia się zegara, schemat oraz wsad w wersji skompilowanej i źródłowej :D. I tak w DIY powinno być zawsze :D, kto chce, może sobie przerobić program, zmodyfikować schemat itp.
Najbardziej denerwujące są tematy w których ktoś się tylko pochwali, da piękne zdjęcia, narobi innym smaku i nawet schematem sie nie podzieli a o kodzie źródłowym to można zapomnieć :evil:
|
|
| Back to top |
|
 |
Mis Poziom 14

Joined: 17 May 2002 Posts: 168 Location: Bytom
|
#16
20 Dec 2007 19:06 Re: Kolejny zegarek LED na AtMega8, ale dokładny |
|
|
|
A więc tak. Co do kondensatorów przy kwarcu to nie dałem ich świadomie, bo programując fuse CKOPT w procku włączamy wewnętrzne kondensatory 36pF. Dla kwarcu zegarkowego to trochę za dużo, więc standardowo zegarek późni. Ale błąd zależy też od egzemplarza kwarcu i temperatury. Więc są dwie metody. Dać trymer i próbować go dostroić - jak na mój gust strasznie nieefektywne, bo po każdym pokręceniu trza długo czekać na sprawdzenie efektu, albo zrobić korekcję programową tak jak w moim przypadku - łatwiejsze do prawidłowego ustawienia, i można zrezygnować właśnie z tych kondensatorków przy kwarcu.
Co do wyświetlaczy to tu: http://www.maritex.com.pl/index.php/pl/shop/productInfo/ggid/9143/pid/11464/page/1/backurl
Mam nadzieje że nikt nie posądzi mnie o reklamę :|
Co do stabilizatora 7805 to ten kondensatorek na wyjściu musi być bezpośrednio do nóżek scalaka, bo inaczej może się wzbudzać. Sposób który użyłem jest najbezpieczniejszy.
Kondensator 10uF przy fotorezystorze filtruje napięcie do przetwornika A/C uniemożliwiając niestabilne odczyty przetwornika i w konsekwencji przypadkowe zmiany jasności świecenia wyświetlacza. Pamiętajmy że napięcie +5,6V jest trochę "zaśmiecone" poprzez zmiany poboru prądu przez wyświetlacze w trakcie multipleksowania.
Aha, zapomniałem podać ustawienia FUSE dla atmegi dla tych co nie chcą ściągać źródeł (bo tam są podane).
RSTDISBL = 1
WDTON = 1
SPIEN = 0
CKOPT = 0
EESAVE = 0 (lub 1)
BOOTSZ1 = 1
BOOTSZ0 = 1
BOOTRST = 0
BODLEVEL = 1
BODEN = 1
SUT1 = 1
SUT0 = 0
CKSEL3 = 0
CKSEL2 = 0
CKSEL1 = 1
CKSEL0 = 0
|
|
| Back to top |
|
 |
345 Poziom 15

Joined: 20 May 2003 Posts: 206 Location: smietnik
|
#17
21 Dec 2007 10:12 Re: Kolejny zegarek LED na AtMega8, ale dokładny |
|
|
|
może pcb do tego kolega by dodał??
|
|
| Back to top |
|
 |
wojnar Poziom 14

Joined: 11 Dec 2007 Posts: 188 Location: Trzyniec, Republika Czeska
|
#18
21 Dec 2007 11:34 Re: Kolejny zegarek LED na AtMega8, ale dokładny |
|
|
|
| 345 wrote: |
| może pcb do tego kolega by dodał?? |
Wątpię, bo kolega, jak widać, zbudował godziny na desce uniwersalnej.
|
|
| Back to top |
|
 |
Mis Poziom 14

Joined: 17 May 2002 Posts: 168 Location: Bytom
|
#19
21 Dec 2007 13:41 Re: Kolejny zegarek LED na AtMega8, ale dokładny |
|
|
|
Hmmm, PCB ? Proszę bardzo :lol:
:bday:
|
|
| Back to top |
|
 |
lechoo Poziom 24

Joined: 17 Sep 2002 Posts: 4763 Location: łódzkie
|
#20
21 Dec 2007 15:02 Re: Kolejny zegarek LED na AtMega8, ale dokładny |
|
|
|
Podłączając wyświetlacz w ten sposób do mikrokontrolera przeciążasz jego linie wyjściowe - proszę sprawdzić w karcie katalogowej dopuszczalne obciążenie.
Pomysł z automatyczną korektą odmierzania czasu zastosowałem kilka lat temu w zegarku w/g mojego pomysłu. Użyłem wtedy mikrokontrolera 89C2051, program również powstał w C, zaś korekta czasu następowała jednorazowo w ciągu doby (max. ±59 sek).
-> http://www.elektroda.net/nauka/dyplomowe/dyplomowe.html - pozycja 21.
|
|
| Back to top |
|
 |
Mis Poziom 14

Joined: 17 May 2002 Posts: 168 Location: Bytom
|
#21
21 Dec 2007 19:24 Re: Kolejny zegarek LED na AtMega8, ale dokładny |
|
|
|
Być może, ale niewiele bo prąd w impulsie dochodzi do 50mA na segment. Jest to prąd w impulsie, bo średni jest o wiele mniejszy. Nie zauważyłem żadnych negatywnych efektów. A zegarek działa bezproblemowo od około miesiąca. Procesor się nie grzeje, więc chyba nie ma powodu do obaw.
|
|
| Back to top |
|
 |
pitersan15 Poziom 8

Joined: 30 Mar 2007 Posts: 29 Location: Czarna
|
#22
23 Dec 2007 14:53 Re: Kolejny zegarek LED na AtMega8, ale dokładny |
|
|
|
Mam pytanie, czy można rozbudować układ, żeby naprzemiennie wyświetlał temperaturę w pmieszczeniu?:D:D:D:D:D
|
|
| Back to top |
|
 |
Mis Poziom 14

Joined: 17 May 2002 Posts: 168 Location: Bytom
|
#23
23 Dec 2007 15:37 Re: Kolejny zegarek LED na AtMega8, ale dokładny |
|
|
|
Co do kosztów to trudno powiedzieć, bo większość części miałem w domu, ale policzmy: wyświetlacze 11zl, procek 5zł, stabilizator 1zł, GoldCap 5zł, płytka uniwersalna jakieś 8zł, kwarc 1zł, reszta to jakieś 5zł. Czyli razem jakieś 35-40zł.
A rozbudować o pomiar temperatury to nie ma problemu, wystarczy dodać czujnik temperatury np DS18B20, albo LM35 podłączony do przetwornika A/C w procku i dopisać kawałek oprogramowania. Metoda z LM35 będzie prostsza. Od razu mówię że nie będę poprawiał softu, bo nie jest mi to potrzebne, a zegarek pełni ważną funkcję wisząc na ścianie, i nie będę go zdejmował do testów.
|
|
| Back to top |
|
 |
wojnar Poziom 14

Joined: 11 Dec 2007 Posts: 188 Location: Trzyniec, Republika Czeska
|
|
| Back to top |
|
 |
spectrum7glr Poziom 13

Joined: 05 Feb 2006 Posts: 120 Location: polska
|
#25
21 Jan 2008 13:39 Re: Kolejny zegarek LED na AtMega8, ale dokładny |
|
|
|
Witam Wojnar zegarek wyszedł super jak dla mnie 6/6. Czy możesz mi podesłać na email pliki .sch z eagla do wyświetlacza i płytki zegara?. Chce zrobić taki zegar ale chciałbym go zmodyfikować np mam inne wyświetlacze.
|
|
| Back to top |
|
 |
wojnar Poziom 14

Joined: 11 Dec 2007 Posts: 188 Location: Trzyniec, Republika Czeska
|
|
| Back to top |
|
 |
elek555 Poziom 23

Joined: 19 Jan 2006 Posts: 3456 Location: between bad good and good evil
|
#27
22 Jan 2008 22:38 Re: Kolejny zegarek LED na AtMega8, ale dokładny |
|
|
|
Konstrukcja pomysłowa, szkoda że zastrzegasz się przed rozbudową o temperaturę. Brakuje na elce takich propozycji. Cieszy obecność myślących userów z gestem.
|
|
| Back to top |
|
 |
Google

|
#
22 Jan 2008 22:38 |
|
|
|
|
|
| Back to top |
|
 |
Mis Poziom 14

Joined: 17 May 2002 Posts: 168 Location: Bytom
|
#28
25 Jan 2008 02:45 Re: Kolejny zegarek LED na AtMega8, ale dokładny |
|
|
|
Wiesz, wymagane zmiany w programie to w sumie nie problem, ale popełnić błąd w sofcie bardzo łatwo, z nie lubię udostępniać czegoś nie sprawdzonego. A platforma testowa (czyli działający zegarek) jest słabo dostępna, jak pisałem. Po za tym nie mam zbyt wiele wolnego czasu. Po prostu pomiaru temperatury nie było w założeniach tego projektu, aczkolwiek jest to do wykonania.
|
|
| Back to top |
|
 |
goontii Poziom 8

Joined: 07 Sep 2005 Posts: 26 Location: Lublin
|
#29
05 Mar 2008 18:37 Re: Kolejny zegarek LED na AtMega8, ale dokładny |
|
|
|
Zrobiłem ten zegarek.Mam tylko jeden problem.Włączam zegarek i wszystko jest ok.Ustawiam godzinę i minuty jest ok.Ale gdy ustawiam albo zegarek przechodzi do godziny 10:00 to wtedy diody przestają migać tylko lekko się żarzą.Jak sprawdzałem oscyloskopem sygnał jest na wyjściu tylko.Jakiś słaby.Co może być nie tak???
|
|
| Back to top |
|
 |
Mis Poziom 14

Joined: 17 May 2002 Posts: 168 Location: Bytom
|
#30
06 Mar 2008 14:25 Re: Kolejny zegarek LED na AtMega8, ale dokładny |
|
|
|
Prawdopodobnie za niskie napięcie z zasilacza, lub zbyt mocno ono "siada" pod obciążeniem.
Wtedy procesorowi wydaje się że zanika zasilanie, i przechodzi w tryb uśpienia, po czym napięcie wzrasta, co skutkuje wybudzeniem z uśpienia i tak w kółko.
|
|
| Back to top |
|
 |