Witam
Przedstawiony zegar nie jest niczym szczególnym i powstał z potrzeby ponad 6 lat temu. Choć nie jest to konstrukcja w pełni zasługująca na miano udanej jestem z niej zadowolony bo wciąż działa.
Moja mama która najmłodsza już nie jest potrzebowała jakiś zegar. Chciała coś kupić jednak ciężko było znaleźć zegar inny niż LCD – te nawet podświetlane są w nocy niezbyt czytelne, zwłaszcza z większej odległości – a z wyświetlaczami LED były same radio budziki.
Postanowiłem temu zaradzić i wykonałem zegar który jest na wyświetlaczach LED i to całkiem dużych, aby był czytelny nawet z kilku metrów oraz co najważniejsze w nocy. Dodałem także akumulator który zapobiega kasowaniu zegara po braku zasilania z sieci. No tak! Z sieci. Wyświetlacze LED zasilane z baterii doprowadziły by do bankructwa. Dodałem także programową korekcję czasu aby zegar odmierzał czas z jak najmniejsza odchyłką.
W załączniku jest schemat który podzieliłem na cztery części, w celu łatwiejszego omówienia.
PŁYTKA ZASILACZA
Postanowiłem wewnątrz obudowy umieścić mały transformator sieciowy. Wybór padł na TS2/15. Do skrajnych pinów złącza ARK3 podłączone jest zasilanie 230V~ które łączy z transformatorem bezpiecznik 100mA. Po pierwotnej stronie jest mostek prostowniczy. Użyłem smd ponieważ wtedy taki miałem pod ręką. Dalej są dwa kondensatory filtrujące i stabilizator 7805, na wyjściu którego uzyskujemy stabilizowane napięcie +5V a właściwie nieco większe. Dziwić może dioda podłączona między masę a środkową nogę stabilizatora. Zastosowałem ją aby podnieść napięcie wyjściowe o spadek napięcia na diodzie. Napięcie stabilizowane filtrują dwa kondensatory. Dalej napięcie za pomocą diod jest rozdzielone na mikrokontroler – pin1 – oraz wyświetlacz pin3. Z pinu nr3 także pobierane jest napięcie dla podłączonego programatora. Pin nr4 jest bezpośrednio podłączony do mikrokontrolera – pin PD0 – i służy detekcji braku zasilania sieciowego. Współpracujący rezystor 1k ściąga potencjał do masy. Na płytce zasilacza znajduje się także akumulatorek 3,6V 60mA który ładowany jest przez rezystor 100R a po zaniku zasilania zasila jedynie mikrokontroler.
PŁYTKA MIKROKONTORLERA
Zastosowałem Attiny 2313 w wersji do montażu powierzchniowego, tak jak i większość części na tej płytce. Zajmuje się on obsługą wyświetlaczy, dwóch przycisków oraz sprawdzaniem czy jest obecne napięcie sieciowe. Rezonator kwarcowy 8MHz wraz z dwoma kondensatorami 22p służy do precyzyjnego odmierzania czasu (o tym dalej). Dwa kondensatory 47uF i 100nF filtrują zasilanie. Cały port B mikrokontrolera służy do obsługi wyświetlaczy LED. Osiem rezystorów 100R ustala jasność wyświetlacza. Należy pamiętać że wybrana wartość jest cztery razy mniejsza niż wyliczona ze znanego wzoru na prawo Ohma, z powodu ich multipleksowania. Cztery tranzystory wraz z rezystorami 1k, podłączonymi do portu D sterują każdym z wyświetlaczy.
PŁYTKA WYŚWIETLACZA
Zastosowałem 4 wyświetlacze ze wspólną anodą. Mają one wysokość 1 cala aby były dobrze widoczne z większej odległości. Poza nimi znajdują się cztery diody LED. Dwie z nich służą do migania co sekundę (dwukropek) i dwie służące do sygnalizacji… Teraz nie pamiętam czego, najprawdopodobniej trybu pomiaru temperatury i czegoś jeszcze. Ostatecznie ich nie montowałem.
Na schemacie nie uwzględniłem gniazda programowania które jest zgodne ze standardem Kanda.
PŁYTKA PRZYCISKÓW
W zamierzeniu miały być cztery przyciski. Ostatecznie zostały dwa skrajne.
OPROGRAMOWANIE
Całość napisałem w Bascomie. Sam kod nie jest skomplikowany i działając w nieskończonej pętli sprawdza stan przycisków, stanu zasilania sieci, dodawania czasu oraz wyświetlania aktualnego na wyświetlaczu. Oprócz zliczania godzin, minut i sekund, wykorzystany jest licznik do 200, który po przepełnieniu dodaje 1 sekundę. Przyjąłem przerwanie z TIMER1 co 1/200s. Także co jedno takie przerwanie zmieniany jest wyświetlacz LED na kolejny. Daje to odświeżanie 50Hz dzięki czemu nie widać migotania. Wspominałem także o programowej korekcji czasu. Polega ona na jednokrotnym dodaniu lub odjęciu wyliczonej ilości przerwań. Zdecydowałem się aby to następowało o północy. Z pomiarów wyszło że zegar dziennie się śpieszył około 3s. Niby to niewiele ale po miesiącu zmiana czasu wynosiła 1,5 minuty. Po korekcji zmiana czasu jest niewielka i wynosi góra kilka sekund na miesiąc.
ZMIANY
Jak wspomniałem nie jest to konstrukcja w pełni zasługująca na odwzorowanie. Po tylu latach dziwię się czemu w zasilaczu po stronie wyjściowej stabilizatora dałem kondensator o przesadzonej wartości 3300uF. Wystarczy tam 10-47uF. Również pomysł z akumulatorem i odmierzaniem czasu przez mikrokontroler podczas braku zasilania z sieci zastąpił bym jakimś RTC, np. PCF8583 i baterią litową.
Jestem przekonany że spostrzeżecie że ścieżki nie są zabezpieczone przed utlenianiem. Zrobiłem to aby sprawdzić na ile są prawdziwe opowieści o szkodliwości ich niezabezpieczenia. Jak widać nie ma to wpływu na działanie. Mały rezystor 47R w pobliżu trzeciego wyświetlacza został przylutowany po jej przecięciu. Służy od do obniżenia jasności kropki która ostatecznie nie jest wykorzystana.
URUCHOMIENIE
Montaż czterech płytek jest typowy. Należy zacząć od najmniejszych elementów a zakończyć na największych. Płytka zasilacza i mikrokontrolera jest połączona taśmą z czterema przewodami. Przyciski są połączone taśmą pięcioprzewodową, przy czym wykorzystałem tylko trzy. Płytka wyświetlacza jest połączona z płytką mikrokontrolera za pomocą kontowej listwy goldpin.
Aby zegar ruszył należy zaprogramować mikrokontroler. Aby to zrobić poza jego podłączeniem należy włączyć zasilanie zegara i nie podłączać zasilania z programatora! Trzeba także zmienić fusebits na zewnętrzny rezonator.
Na płytce wyświetlacza diody od kropek należy połączyć od strony ścieżek.
Jak wszystko będzie dobrze zrobione po zaprogramowaniu na wyświetlaczu zobaczysz przesuwający się napis HELLO. Po nim zaczną migać wszystkie cyfry co oznacza że należy ustawić czas. Dwa przyciski służą do ustawiania godzin i minut. Naciśnięcie przycisku minut poza dodaniem zeruje także licznik sekund i przerwań. Dodanie godzin nie zmienia stanu sekund ani przerwań więc podczas zmiany czasu wystarczy skorygować samą godzinę.
Przedstawiony zegar nie jest niczym szczególnym i powstał z potrzeby ponad 6 lat temu. Choć nie jest to konstrukcja w pełni zasługująca na miano udanej jestem z niej zadowolony bo wciąż działa.
Moja mama która najmłodsza już nie jest potrzebowała jakiś zegar. Chciała coś kupić jednak ciężko było znaleźć zegar inny niż LCD – te nawet podświetlane są w nocy niezbyt czytelne, zwłaszcza z większej odległości – a z wyświetlaczami LED były same radio budziki.
Postanowiłem temu zaradzić i wykonałem zegar który jest na wyświetlaczach LED i to całkiem dużych, aby był czytelny nawet z kilku metrów oraz co najważniejsze w nocy. Dodałem także akumulator który zapobiega kasowaniu zegara po braku zasilania z sieci. No tak! Z sieci. Wyświetlacze LED zasilane z baterii doprowadziły by do bankructwa. Dodałem także programową korekcję czasu aby zegar odmierzał czas z jak najmniejsza odchyłką.
W załączniku jest schemat który podzieliłem na cztery części, w celu łatwiejszego omówienia.
PŁYTKA ZASILACZA
Postanowiłem wewnątrz obudowy umieścić mały transformator sieciowy. Wybór padł na TS2/15. Do skrajnych pinów złącza ARK3 podłączone jest zasilanie 230V~ które łączy z transformatorem bezpiecznik 100mA. Po pierwotnej stronie jest mostek prostowniczy. Użyłem smd ponieważ wtedy taki miałem pod ręką. Dalej są dwa kondensatory filtrujące i stabilizator 7805, na wyjściu którego uzyskujemy stabilizowane napięcie +5V a właściwie nieco większe. Dziwić może dioda podłączona między masę a środkową nogę stabilizatora. Zastosowałem ją aby podnieść napięcie wyjściowe o spadek napięcia na diodzie. Napięcie stabilizowane filtrują dwa kondensatory. Dalej napięcie za pomocą diod jest rozdzielone na mikrokontroler – pin1 – oraz wyświetlacz pin3. Z pinu nr3 także pobierane jest napięcie dla podłączonego programatora. Pin nr4 jest bezpośrednio podłączony do mikrokontrolera – pin PD0 – i służy detekcji braku zasilania sieciowego. Współpracujący rezystor 1k ściąga potencjał do masy. Na płytce zasilacza znajduje się także akumulatorek 3,6V 60mA który ładowany jest przez rezystor 100R a po zaniku zasilania zasila jedynie mikrokontroler.
PŁYTKA MIKROKONTORLERA
Zastosowałem Attiny 2313 w wersji do montażu powierzchniowego, tak jak i większość części na tej płytce. Zajmuje się on obsługą wyświetlaczy, dwóch przycisków oraz sprawdzaniem czy jest obecne napięcie sieciowe. Rezonator kwarcowy 8MHz wraz z dwoma kondensatorami 22p służy do precyzyjnego odmierzania czasu (o tym dalej). Dwa kondensatory 47uF i 100nF filtrują zasilanie. Cały port B mikrokontrolera służy do obsługi wyświetlaczy LED. Osiem rezystorów 100R ustala jasność wyświetlacza. Należy pamiętać że wybrana wartość jest cztery razy mniejsza niż wyliczona ze znanego wzoru na prawo Ohma, z powodu ich multipleksowania. Cztery tranzystory wraz z rezystorami 1k, podłączonymi do portu D sterują każdym z wyświetlaczy.
PŁYTKA WYŚWIETLACZA
Zastosowałem 4 wyświetlacze ze wspólną anodą. Mają one wysokość 1 cala aby były dobrze widoczne z większej odległości. Poza nimi znajdują się cztery diody LED. Dwie z nich służą do migania co sekundę (dwukropek) i dwie służące do sygnalizacji… Teraz nie pamiętam czego, najprawdopodobniej trybu pomiaru temperatury i czegoś jeszcze. Ostatecznie ich nie montowałem.
Na schemacie nie uwzględniłem gniazda programowania które jest zgodne ze standardem Kanda.
PŁYTKA PRZYCISKÓW
W zamierzeniu miały być cztery przyciski. Ostatecznie zostały dwa skrajne.
OPROGRAMOWANIE
Całość napisałem w Bascomie. Sam kod nie jest skomplikowany i działając w nieskończonej pętli sprawdza stan przycisków, stanu zasilania sieci, dodawania czasu oraz wyświetlania aktualnego na wyświetlaczu. Oprócz zliczania godzin, minut i sekund, wykorzystany jest licznik do 200, który po przepełnieniu dodaje 1 sekundę. Przyjąłem przerwanie z TIMER1 co 1/200s. Także co jedno takie przerwanie zmieniany jest wyświetlacz LED na kolejny. Daje to odświeżanie 50Hz dzięki czemu nie widać migotania. Wspominałem także o programowej korekcji czasu. Polega ona na jednokrotnym dodaniu lub odjęciu wyliczonej ilości przerwań. Zdecydowałem się aby to następowało o północy. Z pomiarów wyszło że zegar dziennie się śpieszył około 3s. Niby to niewiele ale po miesiącu zmiana czasu wynosiła 1,5 minuty. Po korekcji zmiana czasu jest niewielka i wynosi góra kilka sekund na miesiąc.
ZMIANY
Jak wspomniałem nie jest to konstrukcja w pełni zasługująca na odwzorowanie. Po tylu latach dziwię się czemu w zasilaczu po stronie wyjściowej stabilizatora dałem kondensator o przesadzonej wartości 3300uF. Wystarczy tam 10-47uF. Również pomysł z akumulatorem i odmierzaniem czasu przez mikrokontroler podczas braku zasilania z sieci zastąpił bym jakimś RTC, np. PCF8583 i baterią litową.
Jestem przekonany że spostrzeżecie że ścieżki nie są zabezpieczone przed utlenianiem. Zrobiłem to aby sprawdzić na ile są prawdziwe opowieści o szkodliwości ich niezabezpieczenia. Jak widać nie ma to wpływu na działanie. Mały rezystor 47R w pobliżu trzeciego wyświetlacza został przylutowany po jej przecięciu. Służy od do obniżenia jasności kropki która ostatecznie nie jest wykorzystana.
URUCHOMIENIE
Montaż czterech płytek jest typowy. Należy zacząć od najmniejszych elementów a zakończyć na największych. Płytka zasilacza i mikrokontrolera jest połączona taśmą z czterema przewodami. Przyciski są połączone taśmą pięcioprzewodową, przy czym wykorzystałem tylko trzy. Płytka wyświetlacza jest połączona z płytką mikrokontrolera za pomocą kontowej listwy goldpin.
Aby zegar ruszył należy zaprogramować mikrokontroler. Aby to zrobić poza jego podłączeniem należy włączyć zasilanie zegara i nie podłączać zasilania z programatora! Trzeba także zmienić fusebits na zewnętrzny rezonator.
Na płytce wyświetlacza diody od kropek należy połączyć od strony ścieżek.
Jak wszystko będzie dobrze zrobione po zaprogramowaniu na wyświetlaczu zobaczysz przesuwający się napis HELLO. Po nim zaczną migać wszystkie cyfry co oznacza że należy ustawić czas. Dwa przyciski służą do ustawiania godzin i minut. Naciśnięcie przycisku minut poza dodaniem zeruje także licznik sekund i przerwań. Dodanie godzin nie zmienia stanu sekund ani przerwań więc podczas zmiany czasu wystarczy skorygować samą godzinę.
Fajne? Ranking DIY