Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Kategoria: Kamery IP / Alarmy / Automatyka Bram
Montersi
Kategoria: Akumulatorki / Baterie / Ładowarki

Sterownik oświetlenia z czujnikiem ultradźwiękowym plus RC5

Zubiik 12 Mar 2017 15:43
  • Sterownik oświetlenia z czujnikiem ultradźwiękowym plus RC5
    Trochę z obawą prezentuję kolejny już na elektrodzie sterownik oświetlenia, no bo ileż tego już tutaj było?
    A jednak nie znalazłem rozwiązania mnie zadowalającego, dlatego też powstał niżej prezentowany układ, powstał ponieważ klasyczne lampy z czujnikami ruchu mają pewną zasadniczą wadę: nie dają się w żaden sposób sterować, a ja chciałem mieć możliwość załączenia światła pomimo, że czujnik zmierzchowy jeszcze blokuje lampę, możliwość włączenia na stałe oraz wyłączenia przed upływem nastawionego czasu. Dodałem też opcję sterowania z pilota na podczerwień. No i jeszcze jeden powód: mam kilka mikrokontrolerów At89C2051 może nieco już przestarzałych, jednak wciąż wystarczających na potrzeby prostych sterowników.
    Urządzeniem wykrywającym ruch jest popularny moduł ultradźwiękowy HC-SR04, choć pierwotnie miał być moduł PIR HC-SR501, jednak nie byłem zadowolony z jego parametrów, poza tym stosując moduł ultradźwiękowy można go zainstalować na takiej wysokości, aby nie "łapał" np. przechodzących kotów czy psów.
    Program został tak napisany. że każda zmiana czasu echa powoduje zaświecenie lampy, ale tylko pod warunkiem, że jest dostatecznie ciemno, czas świecenia jest ustalany za pomocą DIP SWITCH, rozdzielczość wynosi jedna minuta. Maksymalny czas to 80 minut (kiedy wszystkie switche są na pozycji ON). Zasięg działania oraz rozdzielczość czujnika jest niestety ustawiana na sztywno w programie, co jest pewną wadą, jednak nie aż tak uciążliwą. Zarówno zbyt szybkie przemieszczanie się obiektu jak i zbyt mała różnica w pomiarze echa, nie są brane pod uwagę, zapewnia to stabilne i pewne działanie. Kolejnym elementem sterującym jest klawisz dzwonkowy, za jego pomocą można włączyć oraz wyłączyć oświetlenie, niezależnie od aktualnego stanu czujnika światła, włączenie na stałe to tak naprawdę czas 120 minut - postanowiłem zastosować takie ograniczenie na wypadek, kiedy ktoś by zapomniał wyłączyć światło. No i sterowanie pilotem, w programie są zaszyte popularne kody "włącz, mute, oraz vol -" ze standartu RC5. Zrobiłem tak, żeby układ bez problemu "dogadywał" się z pilotami - brelokami dostępnymi w handlu, za pomocą pilota można oczywiście włączyć i wyłączyć lampę, można też włączyć ją na czas ustalany na DIP-SWITCH. Program korzysta z obydwóch Timerów i przerwań od nich, oraz z obydwóch przerwań INT1 INT0. Mikrokontroler jest taktowany kwarcem 12MHz, co daje 1MHz dla ALU, kod zajmuje 1.5kb pamięci programu oraz kilkanaście bajtów w RAM, napisany i skompilowany został w środowisku BASCOM 8051.

    Płytka to standardowy zasilacz z transformatorkiem TS2/14, zabezpieczona bezpiecznikiem 3.15A oraz warystorem 20D471, układ wykonawczy to triak BT136 w połączeniu z optotriakiem.
    Udostępniony projekt płytki nieco różni się od zdjęć, ponieważ kiedy ją projektowałem nie brałem pod uwagę możliwości zastosowania czujnika ultradźwiękowego. Układ dostanie obudowę z hermetycznej puszki instalatorskiej.
    EDIT
    Zgodnie z prośbą i sugestią PIOTRA111 dodałem możliwość zmiany zasięgu działania czujki. Również zmienił się sposób ustawiania czasu. Wszystko jest w załączonej do pliku tabelce.

    Kod: vbnet
    Zaloguj się, aby zobaczyć kod

    Sterownik oświetlenia z czujnikiem ultradźwiękowym plus RC5


    Sterownik oświetlenia z czujnikiem ultradźwiękowym plus RC5 Sterownik oświetlenia z czujnikiem ultradźwiękowym plus RC5
    Ultra.rar Download (107.12 kB)

  • #2 13 Mar 2017 15:41
    PIOTR111
    Poziom 16  

    Witam
    Czy można prosić o wartości elementów
    PIOTR

  • #3 13 Mar 2017 16:40
    Zubiik
    Poziom 10  

    Poprawiłem schemat, wartości elementów nie są krytyczne. Należy zwrócić uwagę na wartość rezystora R4 aby dobrze współgrał z dołączonym do niego fotorezystorem, fototranzystorem lub fotodiodą.

  • #4 15 Mar 2017 09:52
    PIOTR111
    Poziom 16  

    Mam jeszcze pytanie o zasięg działania układu i możliwość jego regulacji
    Jakaś tabelka do ustawiania czasu na pinach portu??
    Piotr

  • #5 15 Mar 2017 13:11
    Zubiik
    Poziom 10  

    Zasięg jest ograniczany programowo, i są to dwie stałe definiowane na początku programu: echo_max i tolerancja. Ponieważ przerwania (od Timera0) przychodzą co 100uS więc minimalna możliwa rozdzielczość to 3.4cm a maksymalny pomiar TEORETYCZNIE wynosi 4 metry ale jest on zależny od zastosowanych modułów ultradźwiękowych bo niektórym zakres się kończy już na dwóch metrach. Aha i jeszcze jedna ważna rzecz: W stałych echo_max i tolerancja nie wpisujesz wartości w centymetrach tylko trzeba przeliczyć to na przerwania wg wzoru: echo_max = (zasięg działania*2)/3.4 Czyli jeśli chcesz żeby czujnik wykrywał do np 150cm to obliczasz (150*2)/3.4 = 88.2 oczywiście wpiszesz w echo_max wartość 88. W ogóle zastanawiam się teraz czy nie przerobić jeszcze programu żeby można było na dipie ustalić maksymalny zasięg.
    EDIT
    Z tymi modułami ultradźwiękowymi jest jeszcze taki mankament że niektóre z nich potrafią się zawiesić gdy nie dostaną echa, więc w razie gdybyś miał jakiś problem z układem to polecam w pierwszej kolejności sprawdzić posiadany moduł. A teraz doczytałem że potrzebujesz tabelki. W rysunku płytki jest naniesiona tabelka z wagami bitów. Ustalanie czasu to dodawanie do siebie poszczególnych wag. czyli np: Ustalając czas 10 minut wyłączysz dip 2 i 4 (2+8=10)reszta w pozycji ON

  • #6 16 Mar 2017 18:14
    PIOTR111
    Poziom 16  

    Witam
    Nie znam do końca koncepcji autora projektu ale z mojego punktu widzenia układ wyzwalania RC-5 jest zbędny
    Co do wyboru odległości poprzez zworki to popieram, układ robi się bardziej uniwersalny
    Dziękuje za wyjaśnienia i teraz nic nie pozostaje jak sprawdzić to w rzeczywistości
    Pozdrawiam PIOTR

  • #7 16 Mar 2017 19:05
    Zubiik
    Poziom 10  

    Koncepcja była taka że układ będzie zamontowany w długim korytarzu gdzie niema możliwości przeciągnięcia przewodów do wyłącznika schodowego lub innego. Dlatego dodałem możliwość sterowania przez rc5. To tylko kilka linijek kodu oraz odbiornik podczerwieni, koszt niemal
    zerowy a dodatkowa funkcjonalność się przydaje. Zaś dla osób które nie mają pilotów będzie służyła czujka ultradźwiękowa. Ok postaram się przerobić kod tak żeby była możliwość ustalania zasięgu.
    EDIT
    Dodałem drugą paczkę z programem który umożliwia zmianę zasięgu działania

  • #8 19 Mar 2017 08:44
    R-MIK
    Poziom 35  

    Czemu nie RC6? Jest bardziej popularny od RC5.

  • #9 19 Mar 2017 11:19
    Zubiik
    Poziom 10  

    Ponieważ w BASCOMIE są gotowe procedury właśnie dla rc5

  • #10 19 Mar 2017 11:25
    R-MIK
    Poziom 35  

    Czyli cały Świat ma powrócić do przestarzałego RC5 bo Bascom go nie obsługuje? Kolejny argument udowadniający, że Bascom nadaje się tylko do zabawy. Dla mnie najistotniejszy to brak wygodnego debugowania procesora. Wiem, można inaczej i zamiast pisać soft 3 dni będę to robił miesiąc.

  • #11 19 Mar 2017 11:56
    Zubiik
    Poziom 10  

    Wiesz nie będę się z tym kłócił, co kto lubi. Zwykle piszę w C na AVR. Po prostu szkoda mi wyrzucić pozostałe 2051

  • #12 19 Mar 2017 12:00
    R-MIK
    Poziom 35  

    1) Jaki problem z C na 51?
    2) Jeśli znasz C to jaki problem przeportować dekodowanie RC6 w C na Bascom?

    Przygotowuję sie do projektu z nadajnikiem RC?, właśnie, miało byc 5, okazało się, że urządzenia produkowane na przestrzeni ostatnich 10 lat odbierają przeważnie RC6. Jeden stary pilot od Triluxa nadaje w RC5. Stary pilot Philipsa od DVD już w RC6. Zrezygnowałem więc z RC5 bo to sztuka dla sztuki.
    Zrobię urządzenie "cuda na kiju" ale kup sobie użytkowniku sporzęt z przed 20 lat bo na współczesnym to nie zadziała. Ile procent osób ma telewizor z przed 20 lat?

  • #13 19 Mar 2017 12:07
    Zubiik
    Poziom 10  

    Problem? pewnie lenistwo, po prostu potrzebowałem zrobić układ i nie zastanawiałem się nad innymi rozwiązaniami, jeśli program miałby być napisany w C to wsad byłby do AVRa a nie przestarzałego "51
    Kolego a kto będzie chodził z pilotem od tv w kieszeni? Układ miał współpracować z pilotami brelokami i z nimi działa. Widzisz że tutaj niema nawet programu uczenia się kody są zaszyte na stałe.