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

Ergonomiczny budzik na uP 89S52

jankomuzykant 06 Paź 2007 23:08 14123 53
  • Ergonomiczny budzik na uP 89S52
    Budzików było już tysiące. Problem tylko w tym, że olbrzymia większość doprowadza do pasji ze względu na brak ergonomii - to bezsensowne przewijanie z półsekundową repetycją, gdy się chce ustawić alarm czy brak pewności ''czy nie zaśpię'', gdy próbuje się skorzystać z drzemki (odroczenia alarmu), zresztą sami chyba wiecie jak jest.
    Kilkanaście lat temu zrobiłem sobie taki przemyślany budzik, prosty w obsłudze, ale nie będę go tu opisywał. Przedstawiam projekt wersji drugiej, nieco zmienionej.
    Układ pracuje na '51 (89S52 lub podobny) i łamie nieco konwencji. Po pierwsze zegar wykonany jest programowo (nie zawiera specjalizowanych zegarów scalonych). To działa już kilkanaście lat, dokładność rzędu kilka sekund tygodniowo możliwa jest do uzyskania i całkowicie mnie zadowala. Po drugie - nie ma multipleksera - segmenty sterowane są statycznie wprost z procesora (przez opory 1k5). Można obecnie kupić tanio bardzo jasne wyświetlacze więc mały prąd to nie problem. Układ jest bardzo prosty - procesor i driver ULN2003 do sterowania przekaźnikiem, buzzerem i segmentami ''dwudziestek'' (pierwsza pozycja umożliwia wyświetlenie tylko cyfr 1, 2 i żadnej - część segmentów jest zwarta i sterowana driverem ze względu na konieczny prąd). Oczywiście zamiast ULN-a można było wsadzić tranzystory, ale tak jest ''ładniej''. Jak już widać budzik umożliwia niezależne włącznie alarmów-pisków oraz przekaźnika (np. radia).

    Skrócona funkcjonalność:

    Po włączeniu zasilania włącza się alarm - to na wypadek, gdyby nie było podtrzymywania bateryjnego, obudzi człowieka w nocy po padzie prądu i umożliwi nastawienie zegara oraz alarmu.
    Nastawienie zegara możliwe jest wyłącznie po włączeniu zasilania (!) Istnieje opcjonalne wejście zerujące zegar do pełnej godziny (np. mikroswitch gdzieś z tyłu).
    Mamy w zasadzie 4 przyciski:
    Plus i minus - zwiększa nastawy alarmów z bardzo szybką autorepetycją. Nastawy obejmują cykl 24 godzin, a nie osobno godziny i minuty.
    Alarm i przekaźnik - wciśnięcie parzyste umożliwia nastawienie czasu alarmu i przekaźnika, wciśnięcie nieparzyste deaktywuje alarmy. Alarmy trwają ''nieskończoność'' (i melodyjka, i przekaźnik). Podczas trwania alarmu wciśnięcie czegokolwiek wprowadza drzemkę (5minut) - człowiek jest nieprzytomny i wciska byle co. Dopiero ponowne wciśnięcie czegokolwiek wyłącza alarm.
    Zrobiłem po jednym alarmie na piszczek i na przekaźnik. Więcej alarmów komplikuje obsługę, a użyteczność tego jest wątpliwa.
    Wsadziłem jeszcze jednak opcjonalne przyciski, można ich nie montować:
    ON/OFF - włącza i wyłącza przekaźnik niezależnie - żeby sobie np. radia posłuchać.
    Poza tym mamy dwie pożyteczne funkcje:
    Przytrzymanie przycisku ustawiania alarmu włącza funkcję ''drzemka poobiednia'' - aktywizuje alarm po pół godzinie (nie trzeba ustawiać czasu bezwzględnego alarmu).
    Przytrzymanie przycisku ustawiania przekaźnika włącza funkcję ''zasypianie'' wyłącza przekaźnik po pół godzinie.
    Poza tym jest jeszcze funkcja pikania co kwadrans (w ciągu dnia - od 7-22), można ją wyłączyć zworą z diody. Lubię słuchać, jak upływa czas :)
    Do dyspozycji mamy trzy sygnały ''melodyczne'' (wraz z losowym wybieraniem tych sygnałów) i sześć sygnałów niemelodycznych, wszystko można sobie przesłuchać przed zaprogramowaniem zegara.

    Obecnie zegar jest już skończony, pozostało zrobienie obudowy. Na szczegóły zapraszam na stronę:
    http://as.elte-s.com/zrob/zrob.htm
    Tam znajduje się dokładny opis, schematy, rysunek i projekt płytek, sygnały w mp3, wsady do procesora i porady.

    Pozwoliłem sobie na edycję posta rozpoczynającego dyskusję ze względu na spore zmiany względem założeń, które mogą dla czytających być mylące.

    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
    O autorze
    jankomuzykant
    Poziom 14  
    Offline 
    Specjalizuje się w: automatyka przemysłowa
    jankomuzykant napisał 181 postów o ocenie 544, pomógł 5 razy. Mieszka w mieście Kraków. Jest z nami od 2007 roku.
  • Relpol przekaźniki nadzorczeRelpol przekaźniki nadzorcze
  • #2
    Tranzystor_1992
    Poziom 16  
    Czy Twój zegar nie ma sterowania multipleksowego czy mi się tylko wydaje :?: Jeżeli tak to wydaje mi się, że źle zrobiłeś. Bo takie sterowanie znacznie upraszcza konstrukcję, a jeśli chodzi o migotanie wyświetlaczy to nic się nie martw, przy odświeżaniu 100Hz nic nawet nie zauważysz.

    Pomijając sposób sterowania wyświetlacza to fajny masz ten zegar :D

    Pozdro :D
  • Relpol przekaźniki nadzorczeRelpol przekaźniki nadzorcze
  • #3
    jankomuzykant
    Poziom 14  
    Tranzystor_1992 napisał:
    Czy Twój zegar nie ma sterowania multipleksowego czy mi się tylko wydaje :?:

    Tak, nie ma, wyżej jest napisane.
    Tranzystor_1992 napisał:
    Jeżeli tak to wydaje mi się, że źle zrobiłeś. Bo takie sterowanie znacznie upraszcza konstrukcję, a jeśli chodzi o migotanie wyświetlaczy to nic się nie martw, przy odświeżaniu 100Hz nic nawet nie zauważysz.

    Nie, nie zrobiłem źle. Takie sterowanie wcale nie upraszcza konstrukcji - potrzeba driverów. Co z tego, że linii jest mniej, mam je gratis, gdyż to procesor czteroportowy. A rezystory są tanie jak barszcz.
    Efekt stroboskopowy znika dopiero przy kilohercach, a nie 100Hz. Sterowanie statyczne, dość że przyjemne wizualnie umożliwia efekty płynnej regulacji jasności (dwukropek, zanikanie cyfr itp).
    To wszystko jest przemyślane i świadome :)
  • #4
    Tranzystor_1992
    Poziom 16  
    Dobrze, ja tylko mówię, że na Twoim miejscu zrobiłbym multipleksowe. Efekt stroboskopowy może znika przy kilohercach, ale już przy 100Hz jest on mało zauważalny dla człowieka i nawet dla cyfrówki. Mówiłeś, że mikroprocesor jest czteroportowy, tylko po co Ci taki dominator :?: To samo uzyskasz na mniejszym ze sterowaniem multipleksowym, nie chodzi mi już o Twoją konstrukcję. Tylko ogólnie o to co powiedziałeś. Ze ściemnianiem masz całkowitą rację.

    Pozdrawiam :D
  • #5
    grzesiekskc
    Poziom 11  
    Gratuluje. Konstrukcja ładnie wykonana całkiem prosta w konstrukcji i przejrzysta żadnych pająków itp. teraz dokończ projekt zrób ładne opakowanie i nawet Ci co głosowali w ankiecie na "estetyke projektu" nie będa mogli się przyczepic ;)

    Pozdrawiam serdeczne.
  • #6
    jankomuzykant
    Poziom 14  
    Tranzystor_1992 napisał:
    Dobrze, ja tylko mówię, że na Twoim miejscu zrobiłbym multipleksowe. Efekt stroboskopowy może znika przy kilohercach, ale już przy 100Hz jest on mało zauważalny dla człowieka i nawet dla cyfrówki. Mówiłeś, że mikroprocesor jest czteroportowy, tylko po co Ci taki dominator :?: To samo uzyskasz na mniejszym ze sterowaniem multipleksowym, nie chodzi mi już o Twoją konstrukcję. Tylko ogólnie o to co powiedziałeś. Ze ściemnianiem masz całkowitą rację.

    Zegar, o który oparłem się logicznie (czyli protoplasta działający już 15 lat) miał multipleks, ale głównie dlatego, że w owym czasie większość urządzeń odpalało się z symulatora epromów i dwa porty z czterech były zajęte na tenże, poza tym wydajność portów była znacznie słabsza (używałem 8752FB).
    Multipleks, tak zalecany we wszelkiej literaturze, ma sens w określonych zastosowaniach, ale nie jest jedynie słusznym rozwiązaniem. Zapominamy o tym, że to opcja przyjmując to rozwiązanie jako jedyne możliwe. Procesor czteroportowy kosztuje dokładnie tyle samo co dwuportowy, zajmuje tyle samo miejsca, co tenże z driverami więc właściwie przewagi żadnej. Wadą jest stroboskop, utrudnienie efektów modulacyjnych i wzrost zakłóceń (to akurat jest nieważne).

    Dodano po 1 [minuty]:

    grzesiekskc napisał:
    Gratuluje. Konstrukcja ładnie wykonana całkiem prosta w konstrukcji i przejrzysta żadnych pająków itp. teraz dokończ projekt zrób ładne opakowanie i nawet Ci co głosowali w ankiecie na "estetyke projektu" nie będa mogli się przyczepic ;)

    Dzięki, musi to troszkę potrwać, bo robię kilka rzeczy równolegle i nie za bardzo mogę przysiąść i skończyć to w jeden dzień.
  • #7
    badworm
    Poziom 18  
    jankomuzykant napisał:

    Alarmy trwają godzinę (piszczenie i przekaźnik). Piszczek wypiskuje upierdliwy rytm (nie melodię) który, wierzcie mi, jest bardzo skuteczny. Godzina takich tortur zbudzi umarłego.


    Czyżby coś w stylu dźwięków legendarnego układu MC1206? ;> Faktycznie ciężko przy tym nie obudzić się :lol:
  • #8
    jankomuzykant
    Poziom 14  
    badworm napisał:
    Czyżby coś w stylu dźwięków legendarnego układu MC1206? ;> Faktycznie ciężko przy tym nie obudzić się :lol:

    Nie, to taki rodzaj ''wojskowego dobosza''. Ten budzik w wersji 1.0 zrobiło kilka osób, jeszcze jak pracowałem ''na etacie'' - wkurzał wszystkich, zresztą nagram i wystawię :)
    ********
    Konkretnie jest to ten dźwięk:
    http://www.ckmedia.pl/~jankomuzykant/n/ergoclock/08.mp3
  • #9
    ryborz
    Poziom 23  
    Wyświetlanie multipleksowe nie potrzebuje driverów. W tym przypadku wystarczą 4 tranzystory za 20gr. Nieprawdą też jest, że stosując wyświetlanie multipleksowe nie da się regulować jasności. Mnie się jakoś udaje :-).
  • #10
    Bigfoot
    Poziom 25  
    jankomuzykant napisał:
    Statyczne wyświetlanie daje nam możliwość modulowania jasności


    A kto powiedizal, ze dynamicznie nie mozna modulowac jasnosci??

    BF
  • #11
    BRAVO11
    Poziom 16  
    Myślę, że wspomniany MC1206 to mistrzostwo świata jeśli chodzi o sygnał budzenia-warto ten sygnał używać w swoich konstrukcjach gdyż nie ma bardziej irytującego sygnału budzenia - skuteczność 100%.
    Konstrukcja zegara kolegi jankomuzykant w mojej ocenie 6/6. Prostota elegancja
  • #12
    jankomuzykant
    Poziom 14  
    ryborz napisał:
    Wyświetlanie multipleksowe nie potrzebuje driverów. W tym przypadku wystarczą 4 tranzystory za 20gr. Nieprawdą też jest, że stosując wyświetlanie multipleksowe nie da się regulować jasności. Mnie się jakoś udaje :-).

    Mnie też. Ale tym razem zachciało mi się tak i koniec.

    Niech ktoś mi napisze, ale tak naprawdę po przemyśleniu - jaka jest zaleta stosowania multipleksu w tym rozwiązaniu (oprócz możliwości doczepienia się, że go tu nie ma).

    Dodano po 1 [minuty]:

    Bigfoot napisał:
    A kto powiedizal, ze dynamicznie nie mozna modulowac jasnosci??BF

    Nikt nie powiedział. Są jednak odrobinę większe komplikacje.
  • #13
    wikingc1
    Poziom 18  
    Witam
    No piękny zegareczek i czekam na dzwięk tego budzika. Kiedyś nagrałem sprzężenie dwóch telefonów kom. i muszę przyznać że ten dzwięk to naprawdę może obudzić umarłego bo nikt nie wytrzymał więcej niż 10 s.
    A co do sterowania multipleksowego to ja zawsze myślałem że stosuje się je gdy mamy za mało portów, więc jeśli użyłeś 4 portowego procesora to po co sterować multipleksowo jak starcza portów?
    Pozdrawiam.
  • #14
    elektromax2
    Poziom 13  
    Jeszcze tylko wsad do proca poproszę.
  • #15
    jankomuzykant
    Poziom 14  
    elektromax2 napisał:
    Jeszcze tylko wsad do proca poproszę.

    Zaraz, zaraz, jak będzie gotowe - może za tydzień, może za miesiąc.
    Na razie słucham ewentualnych pomysłów. W między czasie wymyśliłem, że przytrzymanie dłużej (2 sekundy) przycisku TRANS (ustawianie czasu włączenia przekaźnika) włączy zamiast ustawiania funkcję SLEEP - czyli zasypianie (przekaźnik włączy się na 15 minut). Umożliwi to zredukowanie klawiatury - nie będzie potrzeba osobnego klawisza SLEEP.
  • #16
    Użytkownik usunął konto
    Użytkownik usunął konto  
  • #17
    kordirko
    Poziom 21  
    Jak chcesz pomysły, to zrób jednak może ze dwie-trzy melodyjki budzenia do wyboru.
    Ja mam budzik w komórce, i znalazłem tam taką melodyjkę, że umarłego podrywa ... tyle że po roku zauważyłem że organizm mi się powoli przyzwyczaił do tej melodyjki - na początku mnie podrywało za pierwszym/drugim razem z wyra, a teraz to czasem dopiero po 45 minutach buczenia jest pierwsza leniwa reakcja ;)
  • #18
    al777
    Poziom 26  
    Cytat:
    Niech ktoś mi napisze, ale tak naprawdę po przemyśleniu - jaka jest zaleta stosowania multipleksu w tym rozwiązaniu (oprócz możliwości doczepienia się, że go tu nie ma).


    Spełniam prośbę : jedyną moim zdaniem zaletą wyświetlania multipleksowanego w takim przypadku byłoby pewne uproszczenie mozaiki ścieżek (mniej linii szło by do uK, mniej połączeń między płytką wyświetlacza a główną). Niektórzy twierdzą, że wyświetlanie multipleksowane pozwala uzyskać mniejszy pobór prądu przy tej samej jasności świecenia (co ja osobiście uważam za kwestię dyskusyjną).
    W sumie mi się podoba, sam sobie coś podobnego zrobię ale na VFD (wyświetlacz) - tylko nie wiem kiedy :D .

    Apropos - dlaczego zasilanie jest 6V ? (stabilizator 78L06)
  • #19
    jankomuzykant
    Poziom 14  
    kordirko napisał:
    Jak chcesz pomysły, to zrób jednak może ze dwie-trzy melodyjki budzenia do wyboru.

    To na poziomie źródeł może, z założenia nie chcę komplikować menu. Zresztą wystawię kod, to sobie można będzie pogmerać.

    Dodano po 9 [minuty]:

    al777 napisał:
    Spełniam prośbę : jedyną moim zdaniem zaletą wyświetlania multipleksowanego w takim przypadku byłoby pewne uproszczenie mozaiki ścieżek

    Nie tu, bo przy takim sterowaniu priorytetem będzie uproszczenie połączeń (segmenty poszczególnych wyświetlaczy są jak widać łączone bez zachowania porządku kolejności). Przy multipleksie komplikuje się też mozaika połączeń pomiędzy poszczególnymi wyświetlaczami.
    al777 napisał:
    Apropos - dlaczego zasilanie jest 6V ? (stabilizator 78L06)

    Spadek napięcia na diodzie zapobiegającej ''cofaniu prądu'' przy braku zasilania sieciowego. Napięcie zasilania utrzymuje się na poziomie nieco ponad 5,3V. Niższe o wolt minus spadek na ULN2003 będzie miało kłopoty z załączeniem przekaźnika.
  • #20
    al777
    Poziom 26  
    Cytat:
    Spadek napięcia na diodzie zapobiegającej ''cofaniu prądu'' przy braku zasilania sieciowego.


    Aha, a więc będzie podtrzymanie bateryjne ? No, no, projekt wygląda mi coraz lepiej, naprawdę. Nie zorientowałem sam się bo nie ma schematu.
    Co do przekaźnika - ja przeważnie zasilam go z napięcia wziętego zaraz po mostku (niestabilizowanego) - dzięki temu załączone przekaźniki nie powodują grzania stabilizatora (szczególnie gdy jest ich kilka). Oczywiście nie działają przy braku zasilania sieciowego. To tylko taka luźna uwaga, może jakiemuś konstruktorowi się przyda.

    A właśnie - czy sumaryczny prąd zasilania mikrokontrolera, 4 świecących "ósemek" i załączonego przekaźnika nie przekroczy czasem maksymalnego prądu stabilizatora (78Lxx mają max. 100mA) ? Czy nie będzie się grzał zbyt mocno ? Nie staram się krytykować, raczej pomóc, sam miałem problemy z układami przez takie "drobnostki".
  • #21
    jankomuzykant
    Poziom 14  
    al777 napisał:
    Aha, a więc będzie podtrzymanie bateryjne ? No, no, projekt wygląda mi coraz lepiej, naprawdę. Nie zorientowałem sam się bo nie ma schematu.

    Tak, jest detektor braku zasilania sieciowego - wyłączy wszelkie bajery pozostawiając tylko przerwania zegarowe i krótki błysk czasu aktualnego co ok. sekundę - da to redukcję z kilkudziesięciu do kilku mA. Oczywiście alarm będzie aktywny.
    al777 napisał:
    Co do przekaźnika - ja przeważnie zasilam go z napięcia wziętego zaraz po mostku (niestabilizowanego) - dzięki temu załączone przekaźniki nie powodują grzania stabilizatora (szczególnie gdy jest ich kilka).

    Masz rację, ale przy jednym przekaźniku kilkadziesiąt mA nie ma znaczenia. Za to ULN2003 zasila część segmentów (pierwsza ''dwójka'') i napięciem powinno być stabilizowane.
    al777 napisał:
    A właśnie - czy sumaryczny prąd zasilania mikrokontrolera, 4 świecących "ósemek" i załączonego przekaźnika nie przekroczy czasem maksymalnego prądu stabilizatora (78Lxx mają max. 100mA)

    Powinno się wyrobić w 80mA, ale jak by co zawsze można wstawić dużego 78xx.
  • #22
    polimeraz
    Poziom 11  
    Projekt bardzo ładny, praktyczny i dzięki temu, że brak sterowania multipleksowego nietuzinkowy. Ja też nie jestem jego zwolennikiem. Warto docenić też to, że autor pisze czystym językiem polskim ;) Ponieważ jestem zwolennikiem DCF-u to, choć skomplikowałoby to konstrucję, mile bym go widział.
  • #23
    Radek15
    Poziom 12  
    NApisz mi te wymiary tej płytki bo niw wiadomo jak to ustawic
  • #24
    jankomuzykant
    Poziom 14  
    Radek15 napisał:
    NApisz mi te wymiary tej płytki bo niw wiadomo jak to ustawic

    Cierpliwości! ;)
    Chcę najpierw wykonać prototyp i ewentualnie jak by coś trzeba było zmienić nanieść na gotowy projekt (w lepszej rozdzielczości oraz w pcb).
  • #25
    Radek15
    Poziom 12  
    oki oki bo ja nad takim czymśmyśle i wymyślić nie mogę
  • #26
    Bigfoot
    Poziom 25  
    Radek15 napisał:
    NApisz mi te wymiary tej płytki bo niw wiadomo jak to ustawic


    A kolega Radek15 nie wie, ze rozstaw pomiedzy nozkami obudowy DIL to 2,54mm?

    BF
  • #27
    jankomuzykant
    Poziom 14  
    Dziś budzik otrzymał bajery czyli efekty modulacyjne - dwukropek delikatnie pulsuje z godnością, co minutę cyferki się wyciemniają i następuje zmiana czasu. Ponieważ pulsowanie ma się nijak do czasu rzeczywistego (nie ma związku z sekundami) efekt ''fade'' będzie spóźniony względem prawdziwego czasu 1-2 sekundy (chodzi o elegancką synchronizację pulsowania - bez zrywania i przeskoków). Ale w zegarku bez sekundnika i jeszcze regulowanym z kwarca to nie jest istotne. Przy funkcji sleep (zasypianie) dioda przekaźnika pulsuje nieco bardziej nerwowo, co ma właśnie oznaczać sleep, a podczas budzenia (podczas trwania alarmu) pulsuje tak cały wyświetlacz. To na razie tyle z bajerów.

    Podczas braku zasilania sieciowego pobór prądu spada gdzieś do 2mA, wyświetlacz błyska raz na sekundę na kilkadziesiąt ms (jeszcze się ustawi), a nasz mózg już sobie dorabia resztę i widzi, co trzeba :)

    Zener w dzielniku napięcia sprzed stabilizatora dla detekcji braku zasilania wymaga zbocznikowania rezystorem, bo pływa - będzie jeszcze jeden oporniczek na płytce. Można w ogóle pominąć zenerę, ale trzeba dobrać z głową dzielnik, by zachować przedział 2,5-5V przy zasilaniu sieciowym.
    ----------------
    Ponieważ było żywe zainteresowanie efektami dźwiękowymi postanowiłem zrezygnować z jednotonowego piszczka i zatrudniłem trzeci licznik procesora do generowania tonów. Tak więc budzik wyśpiewuje melodyjki :)
    Docelowo zrobię procedurę dającą dwu lub trzygłosową quasipolifonię (dźwięki monofoniczne w technice staccato czyli krótkie i rwane można zagęszczać, co ucho wychwytuje jak polifonię - powszechny trick w starszych komórkach). Melodyjki będzie można sobie układać w tablicach, zresztą zrobię kilka (troszkę się na tym znam - zapraszam tu: http://as.elte-s.com/sluchaj/muzyka_bez_obrazu.htm
    Dźwięki będą wysokie, typowe dla przetwornika piezzo.
    Przy okazji - kwarc zrobił się dwukrotnie szybszy (4,9152Mhz), bo upraszcza to pewne operacje, natomiast trochę zmienia się płytka - dźwięki wychodzą sprzętowo na port 1.0, który wcześniej sterował ledą. Płytkę już poprawiłem, ale wystawię jak już wszystko będzie zrobione.
  • #28
    prosiak_wej
    Poziom 31  
    Podepnę się pod wypowiedzi Kolegów i też poproszę o dźwięk budzika (może też ktoś ładnie nagra tego MC...) Mnie od roku ponad budzi dźwięk syreny okrętowej (osobiście nazwany jako trąba jachtowa) znany z telefonów Siemens C... ;) Obecnie w K750i bardzo ładnie trąbi i natychmiast mnie budzi :D A co do wyboru dźwięku - tak mi zostało po przepłynięciu kilku(dziesięciu) tysięcy mil... (Nie na raz offkors) :D

    A żeby nie było oftopika - zegarek jest GIT, mi się podoba. Do braku multipleksa się nie będę czepiał, bo też lubię jak cyferki świecą a się nie rozbiegają przy odwróceniu wzroku ;)
  • #30
    prosiak_wej
    Poziom 31  
    Czy mi się wydaje, czy ten dźwięk (a raczej scalak) jest wykorzystany w budziku w Radmorze 5411? Seria limitowana, gdzie zamiast wskaźników głośności jest zegar a same wskaźniki przełożone pod skalę tunera...

    Ergonomiczny budzik na uP 89S52