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

Zegar Domowy na Atmega16 z budzikiem + pilot + 2x DS18B20. VFD.

inspector_electro 19 Kwi 2014 20:03 17382 38
  • Zegar Domowy na Atmega16 z budzikiem + pilot + 2x DS18B20. VFD.

    Witam Wszystkich

    Zegar który Wam przedstawiam powstawał dosyć długo, przeważnie wieczorami.

    Zegar posiada:

    - Zegar na PCF8583.
    - Data
    - Budzik (programowy).
    - Obsługę pilotem RC5
    - Wyposażony w diodę IR do włączenia lub wyłączenia światła o danej godzinie.
    - Tester zasilacza na LM358N.
    - Dwu punktowy termometr na DS18B20

    Sercem układu jest Atmega16 taktowana kwarcem zewnętrznym 8MHz.

    Budzik tutaj zrobiony jest programowo. Zadana godzina mudzenia zapisywana jest do pamięci EEPROM procesora.
    Odczyt napięć zasilacza wraz z natężeniem pobieranego prądu przedstawiony na wyświetlaczu.
    Odczyt natężenia zrealizowałem na LM358.
    Termometry DS18B20 mierzą temperaturę w domu(pokoju) a drugi na dworze.
    W programie ustawione jest, przełączanie na ekran pokazujący temperaturę na zewnątrz co 1min. Ale można w każdej chwili podejrzeć ją dzięki pilotowi.
    Posiada odbiornik podczerwieni w obudowie TSOP31236 dzięki któremu możliwy jest odbiór kodów z pilota. Jest pełna obsługa pilotem, i nie posiada żadnych przycisków.
    O nastawionej godzinie załącza lub wyłącza światło w pokoju, dzięki temu że zamiast przełącznika zwykłego naściennego, mam włącznik dotykowy z obsługą pilotem(kupiony). Godzina załączenia/wyłączenia zapisywana do eeprom.
    W procesorze eeprom ustawiony na PRESERVE, czyli po zaniku zasilania, lub skasowaniu pamięci FLASH procesora, pamięta nastawy. Pcf-ka podtrzymywana jest z pastylki 3V.

    Na płytce znajduje się dodatkowo układ MAX232 potrzebny do przesyłania danych z procesora do wyświetlacza.
    Zasilacz wykorzystałem z DVD. Potrzebowałem dwa źródła zasilania +5v dla elektroniki na płytce, i 12v dla wyświetlacza VFD.

    Zegar można także wyłączyć, czyli wprowadzić w STANDBY. Dodałem tą funkcję dla zaoszczędzenia na żywotności wyświetlacza. Dość często nie ma mnie w domu
    więc funkcja się przydaje.

    Do zegara z tyłu obudowy przymocowane jest złącze do programowania, więc w każdej chwili mogę coś zmienić lub dodać.

    Filtr na wyświetlaczu nie dokończony, ponieważ szklarz wyciął mi za krótką
    szybkę o cały centymetr. Szybka oklejona folią TRANSPARENTNĄ witrażową.
    Dokończę filtr po przyjeździe z zagranicy, ponieważ w przyszły czwartek wyjeżdżam.

    Niestety schemat nigdy nie powstał, gdyż było wiele modyfikacji, i do zegara podchodziłem bardzo "na raty".

    Wszystko pokazane na filmiku i na fotkach.
    Odpowiem na każde pytanie.
    Zegar Domowy na Atmega16 z budzikiem + pilot + 2x DS18B20. VFD.
    Zegar Domowy na Atmega16 z budzikiem + pilot + 2x DS18B20. VFD. Zegar Domowy na Atmega16 z budzikiem + pilot + 2x DS18B20. VFD. Zegar Domowy na Atmega16 z budzikiem + pilot + 2x DS18B20. VFD.

    Filmik:
    http://youtu.be/J5cMbT_7BWA

    Zapraszam do krytyki.

    Pozdrawiam

    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
    O autorze
    inspector_electro
    Poziom 22  
    Offline 
    inspector_electro napisał 894 postów o ocenie 25, pomógł 18 razy. Mieszka w mieście Lublin. Jest z nami od 2008 roku.
  • PCBwayPCBway
  • #2
    barti879
    Poziom 18  
    Udostępnisz jakieś schematy, program wsadowy, itp?
  • PCBwayPCBway
  • #3
    inspector_electro
    Poziom 22  
    Wsad udostępnię, ale nad schematem musiałbym posiedzieć. Nie wiem czy zdążę przed wyjazdem.
  • #4
    sylwek tedi
    Poziom 13  
    Hmm... Szybko się uwinąłeś z tym projektem przed tym wyjazdem.
    Wsad miałeś gotowy, czy może robiłeś od "zera" ? (PCB w twojej wersji to zaledwie kilka godzin z wykończoną obudową)
  • #5
    inspector_electro
    Poziom 22  
    Nie to nie tak. Soft był kiedyś pod zegar z LCD który kiedyś pokazałem na forum.
    Przerobienie programu "nauczenie się" obsługi tego VFD zajęło mi trochę czasu.
    Program w sumie teraz to już nie pamiętam skąd jest, ale część na pewno była.
    Zacząłem go składać około pół roku temu, jak wpadł mi w ręce ten wyświetlacz.
    Zegar powstawał stopniowo, bo miałem kilka problemów i nie rzadko brak czasu.
    Z obudową akurat uporałem się w godzinę. W końcu to gotowe, kupne pudełko i kilka otworów :) .
  • #6
    Krawacik3
    Poziom 12  
    Ja mam pytanie co to za element na drugim zdjęciu w kształcie białego walca na prawo od mostka prostowniczego?
    I dołączam się o prośbę o schemat.
  • #7
    inspector_electro
    Poziom 22  
    Ten "walec" to rezystor 0.1om. tzw. bocznik który jest potrzebny do odczytu oporności całej elektroniki, którym zajmuje się LM358.
    Ten element który jak mówisz mostek, to nie jest mostek. Jest to bezpiecznik 630ma. Wygląda tylko jak mały mostek. Całe zasilanie jest na 3 przewodach białych jak widać na zdjęciu. Zasilacz którego użyłem to impulsówka z Odtwarzacza DVD.
    Ma on swoje diody prostownicze i filtry. Dodatkowo dodałem kondensatory na oba napięcia +5 i + 12v więc na płytce nie trzeba mostka.
    Jeśli chodzi o schemat, to dopiero za miesiąc. Muszę połączyć kilka sekcji w jeden schemat a to się wiąże ze studiowaniem płytki, bo nie wszystko pamiętam. Robione było na bieżąco ale z przerwami.
  • #8
    sebek99
    Poziom 15  
    Pomysł rezygnacji z klawiszy a wykorzystania pilota fajny. Dodatkowo przy ustawianiu budzika mogłeś dodać bezpośredniego programowania za pomocą klawiszy numerycznych.

    Po co pobór prądu z zasilacza? Użyłeś jako bocznik rezystor, który używa się m.in w zasilaczach jako zabezpieczenie. Wg mnie dokładność pomiaru prądu mocno zmienia się wraz ze wzrostem temperatury rezystora.

    Jaki prąd pobiera całość?
  • #9
    inspector_electro
    Poziom 22  
    Są wykorzystywane jako zabezpieczenie, ale z tego co mi wiadomo to metalizowane raczej. Rezystor 0.1oma przy obciążeniu 230ma nie ma prawa się zagrzać. Z prawa oma można wywnioskować, że im niższa rezystancja, tym mniejsze ciepło i straty.
    Rezystory takie są wykorzystywane właśnie do odczytu prądu oporu, a LM358 bardzo dokładnie to wychwytuje. Inaczej się nie da raczej sprawdzić oporu.
    Po co tester? dobre pytanie. Chodzi mi o zasilacz w którym są kondensatory elektrolityczne, jak wiadomo lubiące puchnąć. Taki kondensatorek powoduje albo zwieranie przy czym spadek napięcia i natężenia, albo jedno i drugie do zwarcia włącznie. Zasilacz niby się nie grzeje, ale pamięć flash atmegi16 to sporo, więc dorobiłem tester.
    Myślałem o dodaniu obsługi z klaw. numeryczną pilota, ale to trochę przeróbek w programie. Jeśli nie przyjdzie mi do głowy pomysł na dodanie czeoś jeszcze, to pewnie zrobię i to :) .
  • #10
    Krawacik3
    Poziom 12  
    Dlaczego nie skorzystałeś z właśnie na takie potrzeby, wbudowanego w PCF 8583 alarmu, do którego potrzebne jest tylko wpisanie do bitów 08h-0Dh daty i czasu? Po co sobie komplikować dodatkowymi IF-ami w kodzie jeżeli można użyć funkcji RTC jaką jest alarm?
  • #11
    inspector_electro
    Poziom 22  
    Ano właśnie wpisy w rejestry. Nie potrafię tego opanować, a tym bardziej daty.
    Nie rozumiem za nic w świecie, w której z tych linijek co ma być wpisane kolejność itp:

    I2cstart
    I2cwbyte 160 'to adres zapisu
    I2cwbyte 2 'sekundy
    I2cwbyte ?
    I2cwbyte ?
    I2cwbyte ?
    I2cwbyte ?

    Nie wiem po prostu jak to jest realizowane, bo pierwszy wiersz to start magistrali.
    Drugi to adres na którym pracuje.
    Trzeci, rejestr sekund. Ale no właśnie kolejność i kiedy write i kiedy read i w jakiej kolejności w wierszach. Poszedłem po prostu na skróty.
  • #12
    elektro155
    Poziom 26  
    Witam. Czy wyswietlacz to itron CU20029SCPB T25A? Sadzac po zdjeciach to mam taki sam. Jakie parametry ustawiles dla rs232? Chialbym uruchomic swoj, lecz nie mam doswiadczenia z rs232. Przepraszam za brak polskich znakow pisane z telefonu.
  • #13
    gjanek
    Poziom 12  
    inspector_electro
    Witam'
    Bardzo ciekawy projekt i wykonanie.
    Jest możliwość pokazania schematu i małego opisu jak zrobiłeś tester zasilania na LM358N?
  • #14
    gdkj
    Poziom 26  
    "Zasilacz niby się nie grzeje, ale pamięć flash atmegi16 to sporo, więc dorobiłem tester."

    Nie rozumiem. Po co tester prądu w takim układzie ?

    Pozdrawiam.
  • #15
    inspector_electro
    Poziom 22  
    Napisałem przecież, że pamięć flash to sporo. Chodzi mi o to, że jest miejsce w programie więc dopisałem. A że kondensatory w zasilaczach lubią "świrować" i zaniżać przez to napięcie, postanowiłem sobie je monitorować. Chodzi mi o puchnięcie kondensatorów jak np. w zasilaczach ATX lub na płytach głównych komputerów. To taki "bajer", i dzięki niemu sprawdzam sobie na wypadek gdyby z zasilaczem coś się działo.

    LM358 jest dla tego, że przy boczniku 0.1oma ciężko jest odczytać natężenie np.230ma. LM-ka działa tu jako powiedzmy wzmacniacz operacyjny. Mogłem zrealizować odczyt bez LM358, ale wtedy musiałbym dać większy bocznik a przy nim
    wyświetlacz VFD już nie działał, ponieważ jest bardzo wrażliwy na spadek.

    Cały układ korzysta z dwu napięć, wieć konieczny był odczyt natężenia na boczniku z ujemnego napięcia. W tym wątku jest trochę na temat LM358.
    https://www.elektroda.pl/rtvforum/topic2023821.html
  • #16
    gdkj
    Poziom 26  
    Zrozumiałem. Taki bajer. Szkoda że się nie wyświetla, np. "KONDENSATORY WCIĄŻ OK" ;)
    Ok.
    Pozdrawiam.
  • #17
    sylwek tedi
    Poziom 13  
    Też mnie zastanawia ten układ na LM358.
    Jeżeli rozchodzi się tylko o pomiar zużycia kondensatorów, to przecież można mierzyć częstotliwość PWM przetwornicy, po przez zastosowanie prostego filtru. Przecież jeżeli kondensatory filtrujące się kończą, to i częstotliwość kluczowania seriami impulsów wzrasta. Wystarczył by jeden tranzystor + kilka elementów biernych. (tranzystor wystawi stan logiczny 1, bądź 0 w zależności od budowy filtru. Będzie to informacja dla mikrokontrolera wskazująca na zużycie kondensatorów filtrujących )

    inspector_electro napisał:
    Po co tester? dobre pytanie. Chodzi mi o zasilacz w którym są kondensatory elektrolityczne, jak wiadomo lubiące puchnąć. Taki kondensatorek powoduje albo zwieranie przy czym spadek napięcia i natężenia, albo jedno i drugie do zwarcia włącznie.

    Nie zawsze. Przy tak małym prądzie obciążenia kondensator konkretnie musi się wyeksploatować, zanim dojdzie do takiego spadku. (zdecydowanie wcześniej zaczną pojawiać się harmoniczne, które mogą zaszkodzić elektronice, a zabezpieczenie po przez pomiar prądu może nie zadziałać)
  • #18
    inspector_electro
    Poziom 22  
    Wszystko się zgadza, ale zrobiłem jak zrobiłem. Zawsze można taki test sprawności zrobić. Kwestia wolnego czasu :). Ogólnie skupiłem się na odczycie napięcia i poboru prądu, i buszując po necie wpadła mi w ręce aplikacja LM358. Ten tester to tak wyszedł na dokładkę z uwagi na wolne miejsce w procesorze. Pomysł z odczytem częstotliwości z klucza dobry, ale czas pokaże kiedy się za coś wezmę.
    Napisałeś że przy tak małym poborze prądu kondensator nie musi się wyeksploatować. Fakt, ale dochodzi też temperatura a w końcu to elektrolit. Dla tego pisałem wcześniej o tym że zasilacz nie nagrzewa się.
  • #19
    sylwek tedi
    Poziom 13  
    Zasilacz w cale nie musi się grzać.

    Co do testu, to możesz go w bardzo prosty sposób przeprowadzić (zajmie ci on ok. godzinki)
    Zbuduj kondensator zastępczy którego pojemność będzie o 20% mniejsza od znamionowego.
    Jeżeli zabezpieczenie zadziała, to znaczy że jest ok.
  • #20
    inspector_electro
    Poziom 22  
    Można dać rezystor do kondensatorów które już są, i efekt powinien być taki sam.
    Na razie nie będę sie w to bawił, bo jadę do rodzinki. W końcu to święta :).

    Wesołych :)
  • #21
    Krawacik3
    Poziom 12  
    Przepraszam, że jeszcze się przyczepie, ale nawet bez tego LM358N zrobić identyczny układ, na stronie 218 datasheetu jest podana tabela z wzmocnieniami wzmacniacza operacyjnego wbudowanego w ATMega16. Ja jestem założenia, że układ musi być odpowiednio prosty, ponieważ im mniej rzeczy w urządzeniu tym mniej rzeczy do psucia :).
    Pozdrawiam.
  • #22
    sylwek tedi
    Poziom 13  
    inspector_electro napisał:
    Można dać rezystor do kondensatorów które już są

    Tak nie powinno się testować. (spadek na rezystorze spowoduje znaczny wzrost nadążnej, oraz pulsację napięcia przed nim)
    W zużytym kondensatorze jest trochę inaczej, bo tam zachodzi reakcja chemiczna, podczas której (praca obciążeniowa) wydzieli się ciepło dając w efekcie kondensator zastępczy o mniejszej pojemności. Wszelkie mierniki ESR mierzą oporność kondensatora na "zimno", a w rzeczywistości ta oporność spada wraz ze wzrostem temperatury przy zachowaniu mniejszej jego pojemności.
    Mówiąc proście: Dając szeregowy rezystor zasymilujesz pomiar pojemności na "zimno" co nie jest dosłownym wykładnikiem w czasie kiedy urządzenie pracuje w trybie ciągłym. (zabezpieczenie zadziała w czasie podłączania zasilania, a co będzie kiedy ono jest podłączone non stop? )
    Wybór należy do ciebie który moduł symulacji będzie lepszy.
  • #23
    mitsubishit
    Poziom 12  
    Bardzo fajny projekt, szkoda ze nie SMD, mógłby być dużo mniejszy. Ale na działanie nie ma to wpływu wiec każdy robi jak mu łatwiej, wygodniej.
    Brava za automatyczne wyłączanie wyświetlacza o określonej godzinie. Nie myślałeś żeby go przyciemniać na noc o konkretnej godzinie lub jeszcze lepiej w zależności od warunków oświetleniowych? Z tego co wiem FVD pozwala regulować jasność.
    Dopracuj program, na filmie widać, że gubi sekundy podczas alarmu. Poza tym jak dla mnie, byłoby lepiej jakby separator minut i sekund również migał.
    Ogólnie bardzo fajny zegarek.
  • #24
    inspector_electro
    Poziom 22  
    Próbowałem na wbudowanym w procesor, ale nie był dla mnie dokładny tj. rozjeżdżał się i coś mi ogólnie nie pasował.

    mitsubishit
    "Brava za automatyczne wyłączanie wyświetlacza o określonej godzinie"


    Nie ma tu automatycznego wyłączania wyświetlacza, tylko światła w pokoju.
    Czytaj uważniej.

    Myślałem o automatycznym przyciemnieniu, lub regulowanym PWM. Ale ten filtr który jest, bardzo dobrze działa i nie daje po oczach w nocy. Do tego całą noc świeci mi się lampka nocna więc jest w sam raz.
  • #25
    mitsubishit
    Poziom 12  
    Zasugerowałem się filmem, na którym wyświetlacz jest wygaszany. Myślałem że robi to sam, aby nie razić w nocy.
  • #26
    adambehnke
    Poziom 24  
    Pierwsza i najważniejsza rzecz jaka dyskwalifikuje ten układ to brak sensownie wyświetlanych parametrów. I chodzi mi tu o wszystko łącznie z czasem.
    Budzik w którym nie ma dużych cyfr nie ma sensu. Już widzę siebie jak w połowie nocy staram się odnaleźć na wyświetlaczu która jest godzina. Tym bardziej że jest to VFD.
    Nawet na tym forum jest kilka przykładów rozwiązania tego problemu na dwu-wierszowym wyświetlaczu. Druga sprawa to ten "test zasilacza" :) , przyznam że pierwszy raz widzę coś takiego.
    Autor pozwolił na słowa krytyki więc proszę :)
  • #27
    inspector_electro
    Poziom 22  
    Powiało grozą no ale trudno. Jeśli chodzi o duże znaki, cyfry na wyświetlaczu dwurzędowym, do tego sterowanym po RS232 to dość trudna sprawa. Tym bardziej że ten wyświetlacz ma w pamięci ograniczone znaki ASCII. Próbowałem wyświetlać na nim we wszystkich stronach kodowych jakie ma wpisane w eeprom, i są ograniczone do połowy z wszystkich możliwych. Może i na upartego zrobiłbym to jakoś z całych bloków i z pół bloków, choć wątpię że wyświetli, ale wyszło jak wyszło. Miał być dość prosty, bo i tak za dużo czasu przy nim spędziłem.