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

Zegar Rc5 na uC Atmega8 z budzikiem i pom. tem BASCOM

łuki_mar44 16 Wrz 2010 19:31 27263 61
  • Witam!

    Chciałem zaprezentować zegar mojego wykonania na uC Atmega8, soft został napisany w bascomie.

    Zegar Rc5 na uC Atmega8 z budzikiem i pom. tem BASCOM
    Zegar Rc5 na uC Atmega8 z budzikiem i pom. tem BASCOM
    Zegar Rc5 na uC Atmega8 z budzikiem i pom. tem BASCOM Zegar Rc5 na uC Atmega8 z budzikiem i pom. tem BASCOM Zegar Rc5 na uC Atmega8 z budzikiem i pom. tem BASCOM Zegar Rc5 na uC Atmega8 z budzikiem i pom. tem BASCOM Zegar Rc5 na uC Atmega8 z budzikiem i pom. tem BASCOM
    Zegar Rc5 na uC Atmega8 z budzikiem i pom. tem BASCOM





    Zegarek posiada funkcje, budzika, pomiaru temperatury na zewnątrz i wewnątrz mieszkania (DS18B20), daty, podtrzymania pamięci po zaniku zasilania, wygaszania wyświetlaczy oraz lampki nocnej tą rolę spełnia diodka 3mm super jasna koloru białego.
    Do wyświetlania temperatury na zew i wew służą dwa przyciski lub też temperatura może być wyświetlana co 5,10,15,20,30 oraz 60 sekund.

    Sterowanie wszystkimi funkcjami odbywa się za pomocą pilota nadającego w znanym standardzie Rc5, jako odbiornika użyłem TSOP1136.

    Zegar Rc5 na uC Atmega8 z budzikiem i pom. tem BASCOM

    Do podtrzymania zegarka po zaniku zasilania użyłem kondensatora o pojemności 1F, nie testowałem jeszcze jak długo wytrzyma podtrzymanie na tym kondensatorze ale mam nadzieje że co najmniej 12 godzin.


    Jeśli nie chcemy, żeby zegar świecił nam w nocy możemy wygasić wyświetlacze jest to też jedna z funkcji wspomnianych wcześniej.

    Zastosowane wyświetlacze:
    4xAS-15011BMR o wysokości 44mm (cyfra 38.10 1.5")
    2xAS-10016BMY o wysokości 34mm (cyfra 25.40 1")
    Zapewniają bardzo dobrą widoczność nawet z daleka.

    Zegar jest jeszcze bez obudowy, lecz ta jest w trakcie produkcji:)
    Zamierzam użyć do tego obudowę Z-17 oczywiście troszkę zmniejszoną w tym celu musiałem wyciąć jej środek i ją skleić. Zastosowałem klej poxipol.
    W chwili obecnej jest w trakcie schnięcia co widać na zdjęciu:

    Zegar Rc5 na uC Atmega8 z budzikiem i pom. tem BASCOM

    Jak na razie zegarek spisuje się bardzo dobrze, i wreszcie nie muszę wstawać z łóżka rano aby wyłączyć budzik:)
    Choć czasem to nie popłaca.


    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz pendrive 32GB.
  • #2 16 Wrz 2010 19:43
    Mariuszek15
    Poziom 24  

    Witam ! Możesz dać dokumentację sch. brd. bas. ? Jasność LED jest sterowana przez PWM? Czy tylko ON i OFF? Co do wyświetlania temperatury proponowałbym, aby kropka była zaświecana w drugim wyświetlaczu LED. A wartość po przecinku przesunąć na 3 wyświetlacz LED ; ładniej by to wyglądało. Jak wyświetla ujemne temperatury? Czy układ uczy się RC5? Ja osobiście chętnie bym zrobił ten układ i wytestował. Szukałem takiego czegoś. Niestety brak czasu ogranicza mnie w zrobieniu takiego zegarka od podstaw. Chętnie pomogę w modyfikacji programu :) Pozdrawiam !

  • #3 16 Wrz 2010 19:55
    łuki_mar44
    Poziom 18  

    Oczywiście wrzucę dokumentacje jak wszystko uporządkuje. Co do wyświetlaczy to jest tylko on i off. Nie mogłem użyć PWM gdyż timer1 wykorzystałem do multipleksowania wyświetlaczy, timer2 odpowiedzialny jest za odliczanie czasu asynchronicznie a timer0 służy do odbioru komend w RC5.
    Co do wyświetlania temperatury to troszkę nie rozumiem gdy bym dał przecinek na drugim wyświetlaczu to jak bym miał wyświetlić temp np 20 stopni tak jak na zdjęciu?

    pozdrawiam

  • #4 16 Wrz 2010 19:57
    Mariuszek15
    Poziom 24  

    Chodzi mi zamiast tego "wielkiego przecinka" użyć kropkę dziesiętną wyświetlacza drugiego :) Jeśli odbiornik jest podłączony z któryś wejść INT to możemy RC5 zrobić na przerwaniu. I dostaniemy Timer0, który posłuży do PWM.

  • #5 16 Wrz 2010 20:31
    łuki_mar44
    Poziom 18  

    Teraz rozumiem lecz w tym egzemplarzu kropki nie da rady zrobić gdyż wcale nie jest podłączona. Z góry założyłem, że nie będę jej potrzebował.
    Oczywiście wystarczy wprowadzić parę zmian w PCB i programie i nie stanowi to żadnego problemu.
    Z tym Rc5 w przerwaniu to jest bardzo dobry pomysł.
    Pilot niestety nie uczy się według mnie nie jest to potrzebne natomiast zastosowałem komendy na sztywno.

  • #6 16 Wrz 2010 21:08
    Mariuszek15
    Poziom 24  

    Podłączenie kropki dziesiętnej to nie jest problem. Wystarczy podłączyć do wybranego portu ATMEGA8 i skonfigurować port. I dopisać w programie, że jak będzie wyświetlana temperatura to kropka ma się zaświecić. Program oczywiście też nie stanowi problemu. Co do dodaniu PWM i RC5 da się zrobić :) Ale to może już nie tutaj, bo odchodzimy od docelowego tematu. A mam pytanie jak są wyświetlane ujemne temperatury? Możesz dodać filmik z działania zegarka?

  • #7 16 Wrz 2010 21:44
    łuki_mar44
    Poziom 18  

    Temperatura ujemna wyświetlana jest tak, że pierwszy wyświetlacz jest wygaszony na drugim zapala się minus trzeci i czwarty wiadomo, piąty znak przecinka a szósty temperatura po przecinku.
    Najprędzej jutro wieczorem będę mógł wstawić filmik

  • #8 16 Wrz 2010 21:47
    elektryk101
    Warunkowo odblokowany

    Ten elektrolit 1F to trochę za mało, lepiej byłoby dać 2,2F lub 4,7F. A czy nie jest tak że w nocy wyświetlacz LED razi w oczy? Poza tym zegar jest super i jego wykonanie też. Brawa dla autora tematu za wykonanie.

  • #9 16 Wrz 2010 21:57
    łuki_mar44
    Poziom 18  

    Dzięki z dobrą opinie.
    Troszkę czerwono jest od wyświetlaczy w pokoju w nocy lecz jak je czymś przyciemnię to powinno być ok. Między innymi po to zastosowałem wygaszanie wyświetlaczy.
    Co do kondensatora będę musiał to przetestować w sumie im więcej pojemności tym dłuższy czas podtrzymania, lecz praktycznie rzadko się zdarza teraz długie wyłączanie prądu:)

  • #10 16 Wrz 2010 22:07
    Mariuszek15
    Poziom 24  

    łuki_mar44 Zawsze można dodać układ czuwający nad napięciem zasilania. Jeśli procesor wykryje brak napięcia to przejdzie w stan uśpienia. Programowo to przez wywołanie funkcji powerdown.

  • #11 16 Wrz 2010 22:21
    xanio
    Poziom 27  

    Radiator na stabilizatorze jakiś taki byczy. Zasilasz to jakimś dużo wyższym napięciem, że aż takie straty na ciepło masz?

    Jaką częstotliwość ma podpięty kwarc? Jak taktowany jest procesor?

    Piezobuzer jest z generatorem czy sam generujesz częstotliwość? Domyślam się, że z generatorem, skoro nie używasz PWM.

    Obudowa brzydko posklejana. Będziesz szlifował ten klej papierem i malował czy tak zostanie? Można było spokojnie posklejać kropelką i ew. od środka dać jakieś wzmocnienie.

  • #12 16 Wrz 2010 22:22
    łuki_mar44
    Poziom 18  

    Mariuszek15
    Ależ u mnie jest wykorzystany tryb oszczędności tylko, że POWERSAVE bo tylko w tym trybie z tego co pamiętam możliwa jest asynchroniczna praca timera2 a co za tym idzie odliczanie czasu.
    Jeżeli procesor wykryje zanik zasilania na Pinie d7 w moim wypadku, wtedy przechodzi w tryb powersave gdzie pobierane jest zaledwie kilka uA.

    xanio
    Radiator nie jest wcale taki duży może na zdjęciu tak się wydaje.
    Zegar zasilam napięciem 9V Ac więc po wyprostowaniu jest jakieś 12V z hakiem.
    Kwarc 32768Hz (zegarkowy), a wewnętrzny oscylator ustawiony na 8Mhz
    Buzer jest bez generatora, wysyłam na niego ciąg impulsów jeśli zostanie spełniony warunek budzenia.
    Co do obudowy tak jak napisałem w pierwszym poście jest w trakcie schnięcia więc na razie nie mogę nic zrobić jak wyschnie będę ją szlifował może trochę będzie trzeba przyszpachlować i jakiś spray.

  • #13 16 Wrz 2010 22:27
    xanio
    Poziom 27  

    9V AC... no tak, trochę dużo na zegarek do którego starczyłaby ładowarka od telefonu za 5zł. Z drugiej strony, zima idzie... przynajmniej pokój zagrzejesz :)

  • #14 16 Wrz 2010 22:30
    łuki_mar44
    Poziom 18  

    Parzyć radiator nie parzy lecz jak próbowałem bez radiatora to troszkę było za gorąco.

  • #15 16 Wrz 2010 23:05
    maniek1818
    Poziom 22  

    łuki_mar44 napisał:
    (...) timer1 wykorzystałem do multipleksowania wyświetlaczy, timer2 odpowiedzialny jest za odliczanie czasu asynchronicznie a timer0 służy do odbioru komend w RC5.

    Gdyby użyć jakiś zewnętrzny zegar RTC to by zwolnił ci sie jeden timer2.
    Zaś jako czujnik oświetlenia można by było użyć którejś z diod LED, wykorzystująć ją jako FOTODIODĘ.
    Pozdrawiam

  • #16 16 Wrz 2010 23:23
    łuki_mar44
    Poziom 18  

    Można i tak lecz chciałem zamknąć wszystko w jednym uC i wykorzystać wewnętrzny RTC Atmegi. Żeby zwolnić któryś timer wystarczyło by, odbiór Rc5 zrealizować w przerwaniu INT0 albo INT1 jak wcześniej wspomniał kolega Mariuszek15

    pozdrawiam

  • #17 17 Wrz 2010 11:36
    zybex
    Pomocny dla użytkowników

    Dwukropek między godzinami a minutami powinien być lekko pochylony jak wszystkie cyfry. Ty dałeś go w pionie, co trochę odbiega od całości.
    Swoja droga, to powinni produkować też takie dwukropki jak wyświetlacze. Sam mam zawsze problem z dobraniem diod do wyświetlaczy, bo niestety inaczej świecą.

  • #18 18 Wrz 2010 13:23
    łuki_mar44
    Poziom 18  

    Z tym dwukropkiem rzeczywiście mogłem go o jeden stopień przesunąć w bok no ale cóż następnym razem:)

    -----------------

    Jak obiecałem wcześniej w załączniku pliki brd oraz bas.

    Mariuszek15 jeśli był byś chętny do poprawy kodu to by było fajnie ponieważ, braku wolnego czasu nie mogę na razie działać nic w tym kierunku.

    Załączniki:
  • #19 18 Wrz 2010 14:57
    Mariuszek15
    Poziom 24  

    łuki_mar44 Podaj jeszcze wartości elementów. Najlepiej jakbyś naniósł je na PCB.

    Będzie filmik z działania zegarka ? ;)

  • #20 18 Wrz 2010 16:35
    łuki_mar44
    Poziom 18  

    Wieczorem ale dość późnym postaram się wrzucić filmik i wartości elementów.

    Filmik:

    Link


    Wartości elementów:
    Zegar Rc5 na uC Atmega8 z budzikiem i pom. tem BASCOM

  • #21 19 Wrz 2010 21:32
    adass
    Poziom 25  

    Można prosić o płytki 1:1 w pdf ? :D dziękuje

  • #22 19 Wrz 2010 23:01
    łuki_mar44
    Poziom 18  

    W załączniku wzory płytek w pdf:

    Na tych płytkach dodałem jeszcze rezystor 3k8 między VCC a pinb4 gdzie podłączony jest drugi czujnik temperatury. Niestety w oryginale zapomniałem o nim i musiałem go dolutować u siebie do ścieżek.

  • #27 09 Paź 2010 20:09
    łuki_mar44
    Poziom 18  

    Jak obiecałem zamieszczam zdjęcia skończonego zegara:)

    Zegar Rc5 na uC Atmega8 z budzikiem i pom. tem BASCOM
    Zegar Rc5 na uC Atmega8 z budzikiem i pom. tem BASCOM

  • #29 28 Paź 2010 20:05
    Mariuszek15
    Poziom 24  

    Kody pilota są przypisane w programie na stałe i układ nie uczy się komend. Pozdrawiam!

  • #30 28 Paź 2010 20:27
    łuki_mar44
    Poziom 18  

    Jak kolega wyżej wspomniał układ nie uczy się komend. Należy je samemu przypisać w programie. We wcześniejszych postach zamieściłem kod źródłowy więc nie powinno być z tym problemu.

    pozdrawiam

  Szukaj w 5mln produktów