Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Czujnik ruchu (HC-SR501) sterujący listwą LED

grykar 11 Aug 2015 14:22 15255 28
Optex
  • Witam,

    Czujnik ruchu powstał w celu włączania listwy LED umieszczonej pod szafkami w kuchni. Został zainstalowany i działa z powodzeniem od jakiegoś czasu. Układ wykorzystuje ogólnie dostępny moduł detektora ruchu HC-SR501 oraz mikrokontroler Attiny13.
    Czujnik ruchu (HC-SR501) sterujący listwą LED

    Układ zasilany jest napięciem 12V z zasilacza impulsowego, który stanowi również źródło zasilania listwy diod. Napięcie w układzie jest stabilizowane do 5V. Przekaźnik zasilany jest napięciem 12V bezpośrednio z zasilacza w celu uniknięcia obciążania stabilizatora napięcia.
    Czujnik ruchu (HC-SR501) sterujący listwą LED

    Na wyjściu detektora ruchu po wykryciu ruchu pojawia się napięcie 3,3V, które steruje tranzystorem T2. T2 z kolei podaje sygnał 5V na wejście PB0 mikrokontrolera gdzie obsługiwane jest przerwanie programowe. W wyniku przerwania w mikrokontrolerze dokonywany jest pomiar natężenia światła (pomiar spadku napięcia na fotorezystorze FOT1). Jeśli natężenie światła jest poniżej określonego progu wówczas następuje załączenie przekaźnika 12V (K1) za pośrednictwem tranzystora (T1) sterowanego przez wyjście mikrokontrolera (PB1). W przeciwnym przypadku sygnał z czujnika ruchu jest ignorowany.
    Po załączeniu czujnika HC-SR501 czas utrzymywania się napięcia na wyjściu określany jest jednym z potencjometrów czujnika HC-SR501. Drugi z potencjometrów służy do określenia czułości.
    Po załączeniu przekaźnika w pewnych interwałach czasowych ustalonych programowo (w moim układzie około 3s) sprawdzane jest wyjście czujnika. Jeśli stan jest niski wówczas przekaźnik jest wyłączany. Pozwala to ustalić czas włączenia przekaźnika za pomocą potencjometru czujnika HC-SR501. Czas ten można też wydłużyć programowo zmieniając interwał czasowy (więcej szczegółów w komentarzach w kodzie programu). Próg natężenia światła ustala się potencjometrem w układzie. Programowo dokonuje się wstępnych ustawień w celu dopasowania fotorezystora.

    Być może istnieje możliwość podłączenia fotorezystora, fotodiody etc. bezpośrednio do czujnika HC-SR501. Oryginalnie czujnik nie jest wyposażony w element światłoczuły, chociaż na schemacie w nocie na nóżce 9 układu czujnika jest chyba możliwość włączenia elementu światłoczułego. Jeśli ktoś ma doświadczenia w tym obszarze chętnie się dowiem jak to zrobić.

    W załączniku schemat i płytka w Eagle oraz specyfikacja HC-SR501.

    Cool? Ranking DIY
    Can you write similar article? Send message to me and you will get SD card 64GB.
    About Author
    grykar
    Level 10  
    Offline 
    grykar wrote 39 posts with rating 47, helped 0 times. Been with us since 2008 year.
  • Optex
  • #2
    burur
    Level 21  
    Witam
    Na schemacie przekaźnik podłączony pod 12V tak jak to opisałeś, ale w symbolu wkradł się mały błąd, jest na 5V.
    Pozdrawiam
  • #3
    grykar
    Level 10  
    burur wrote:
    Na schemacie przekaźnik podłączony pod 12V tak jak to opisałeś, ale w symbolu wkradł się mały błąd, jest na 5V.


    O faktycznie - zapewne dlatego, że prototyp był z przekaźnikiem 5V, ale stabilizator grzał się zbyt mocno i przerobiłem na 12V - dzięki za info
  • Optex
  • #4
    Freddy
    Level 43  
    Zadam proste pytanie, do czego jest ten procesor ?
    Czujnik oświetlenia jest w samej czujce.
    Ruch w trakcie trwania "świecenia" powoduje wydłużenie czasu pracy - do tego jest zworka auto-reset, lub jak w Twoim PDF trigger.
  • #5
    grykar
    Level 10  
    Freddy wrote:
    do czego jest ten procesor ?
    Czujnik oświetlenia jest w samej czujce.

    Podłączałem układ bezpośrednio i nie ma w nim czujnika światła - czy jest jasno czy jest ciemno detektor się załącza (podaje sygnał na wyjściu)
    Logicznie do tego podchodząc skoro jest czujnik oświetlenia w czujce to zapewne powinien być gdzieś potencjometr, który umożliwi ustawienie progu jasności, a takiego nie ma.
    Freddy wrote:
    Ruch w trakcie trwania "świecenia" powoduje wydłużenie czasu pracy - do tego jest zworka auto-reset, lub jak w Twoim PDF trigger.

    Tak dlatego tak jak napisałem ponieważ przekaźnik sterowany jest przez mikrokontroler muszę okresowo sprawdzać czy czujnik wciąż podaje na wyjściu sygnał.
  • #6
    Freddy
    Level 43  
    Mam identyczne czujki (ten sam typ i fotorezystor jest) sprawdź ustawienia zworek.
  • #7
    grykar
    Level 10  
    Freddy wrote:
    Mam identyczne czujki (ten sam typ i fotorezystor jest) sprawdź ustawienia zworek.


    To musi być inny model. U mnie nie ma zworek. Nie ma też fotorezystora.
    Ile masz potencjometrów w czujniku ?
  • #8
    Freddy
    Level 43  
    Typ ten sam, dwa potencjometry, fotorezystor jest u mnie pod "kopułką" .
    Z tego można wnioskować, że chińczyk robi co mu się podoba.
    Nie mam fotek, bo zabudowane, ale sprawdziłem, typ ten sam, wygląd też :)
  • #10
    Freddy
    Level 43  
    Chińczyk raz montuje rezystor, a raz fotorezystor, jak popadnie, a typ ten sam.
    Grykar zrób fotkę wnętrza.
  • #11
    RAFAŁ.M
    Level 19  
    Też mam te czujniki i faktycznie można dołożyć fotorezystor , jest do niego pole lutowania tam gdzie pokazuję śrubokrętem na zdjęciu. Czujnik ruchu (HC-SR501) sterujący listwą LED
  • #12
    gemiel
    Level 24  
    Dziwi mnie, że stosując mikrokontroler użyłeś przekaźnika. Wystarczy zamienić go na tranzystor MOSFET i użyć sterowania PWM do łagodnego rozjaśniania i gaszenie LED.
    Chyba, że przekaźnik jest dodatkowym sygnalizatorem akustycznym włączenia i wyłączenia światła :)
  • #13
    kowal011
    Level 21  
    Kolego autorze, dokładnie dwa dni temu zrobiłem bardzo podobne urządzenie (czujnik jak u Ciebie - z dołączonym fotorezystorem + zasilacz beztransformatorowy + przekaznik). Początkowa wersja była oparta na operacyjce, pózniejsza na attiny, a staneło na modyfikacji czujnika i sterowanie przekaznikiem. Chwała Ci za włożony trud. Mojego projektu tutaj nie ma, bo nie widzę sensu, aby publikować połączenia tak "zawiłych i skomplikowanych" układów jak w w/w przypadku. Zacznijmy publikować poradniki z otwierania drzwi kluczem i chwalmy się zamontowaniem włącznika ściennego...
  • #14
    grykar
    Level 10  
    Czy wnosi coś merytorycznego ten komentarz ?

    oprócz lansu
    kowal011 wrote:
    Kolego autorze, dokładnie dwa dni temu zrobiłem bardzo podobne urządzenie...


    i próby przezabawnej krytyki
    kowal011 wrote:
    ...Zacznijmy publikować poradniki z otwierania drzwi kluczem i chwalmy się zamontowaniem włącznika ściennego...


    Dodano po 2 [minuty]:

    gemiel wrote:
    Wystarczy zamienić go na tranzystor MOSFET i użyć sterowania PWM do łagodnego rozjaśniania i gaszenie LED.
    Chyba, że przekaźnik jest dodatkowym sygnalizatorem akustycznym włączenia i wyłączenia światła :)


    No właśnie przekaźnik jest denerwujący, a możesz podpowiedzieć kawałek schematu z MOFSET

    Dodano po 3 [minuty]:

    RAFAŁ.M wrote:
    Też mam te czujniki i faktycznie można dołożyć fotorezystor , jest do niego pole lutowania tam gdzie pokazuję śrubokrętem na zdjęciu.


    OK u mnie też są te pola lutownicze - wlutuje fotorezystor z potencjometrem sprawdzę czy zadziała - dzięki za podpowiedź
  • #15
    kowal011
    Level 21  
    Nie potrzebuję się lansować więc skąd takie przypuszczenia? Taka krytyka jaki poziom prezentowanych rozwiązań.
    grykar wrote:
    No właśnie przekaźnik jest denerwujący, a możesz podpowiedzieć kawałek schematu z MOFSET
    do portu procka podpinasz poprzez rezystor mosfeta (n lub p - kwestia zmiany stanu w programie). Dla N-mosfeta gate do uP source do masy a drain do minusa taśmy. Dla P-mosfeta source do plusa zasilania a drain do plusa taśmy. Coś jeszcze?
  • #16
    gemiel
    Level 24  
    Schemat jest z tranzystorem typu P, ale taki miałem pod ręką.
    Czujnik ruchu (HC-SR501) sterujący listwą LED
  • #17
    grykar
    Level 10  
    gemiel wrote:
    Schemat jest z tranzystorem typu P, ale taki miałem pod ręką.


    Dzięki za odpowiedź.
    Mam pytanie czy ten tranzystor bipolarny jest konieczny ? Czy to zła praktyka podłączyć MOSFET'a bezpośrednio (przez rezystor) do mikrokontrolera ?
  • #18
    User removed account
    Level 1  
  • #19
    pawlik722
    Level 23  
    Zastanawiam się co ma na celu krytyka publikowania projektów które nie mają w sobie stopnia skomplikowania rodem ze statków kosmicznych, jakoś mnie taki projekt nie przeszkadza a nawet się podoba. Może kogoś natchnie do zrobienia takiego samego? Może inni lubią czytać takie tematy? Może ma ktoś wrodzony ból w okolicach pośladkowych?
    Kowal nie widzę jakoś byś zamieścił projekt promu kosmicznego ani fotorelacji z naprawy silnika do mig28 czy chociaż by F16 więc zejdź z chłopaka.

    Projekt mnie się podoba, na pewno ułatwi życie autorowi, co do przekaźnika, wpisz w google, elektroniczny przekaźnik, wyskoczyć powinna strona gotowym wzorem płytki gdzie autor zrobił właśnie na mosfecie układ pasujący w gniazdo przekaźnika;) połowa roboty z płytką z głowy, ;)
  • #20
    User removed account
    Level 1  
  • #21
    pawlik722
    Level 23  
    Kolego nie miałem na uwadze konstruktywnego krytycyzmu, który cenie i biorę pod uwagę a jedynie na myśli komentarze Pana "mechanika samolotów" które nic nie wnoszą do tematu.
    Kolejną sprawą czyli prostotą układu, nie zgodzę się z tobą, dla mnie człowieka który za informatyka się nie uważa ale jednak wykształcenie jako takie zdobył, prościej jest napisać program do procesorka za parę złotych dołożyć kilka elementów wykonawczych niż szukać i kombinować na układach analogowych przy których musiał bym mocno przysiąść i pogłębić wiedzę;) i nie uważam aby taki układ był bardziej awaryjny. W obecnych czasach mikroprocesory są w podobnej cenie o ile nawet nie tańsze niż garść analogów:)
  • #22
    kowal011
    Level 21  
    pawlik722 wrote:
    Kowal nie widzę jakoś byś zamieścił projekt promu kosmicznego ani fotorelacji z naprawy silnika do mig28 czy chociaż by F16 więc zejdź z chłopaka.

    Prom mogę Ci pokazać z Kerbal Space Program :) Silników nie naprawiam ale bloki nadzorujące ich pracę owszem... niestety nie mogę opisać szczegółów, sam rozumiesz. Co do bólu pośladków i okolic to jedynym ich powodem może być jazda jednośladem a na pewno nie elektroda. Jak pisze kolega zbyrek nie chciałbym tutaj takich projektów oglądać, niestety nie ja wybieram je do zamieszczenia. Jeszcze raz szczerze gratuluję autorowi chęci i zapału, jednak osoby idące w jego ślady nadal będę odwodził od obniżania poziomu zamieszczanych tutaj niejednokrotnie ciekawych pomysłów. Pozdrawiam
  • #23
    PiotrekpPl123
    Level 19  
    Witam.
    Już po raz któryś czytam dyskusje na temat obniżania poziomu działu DIY. Nie zgadzam się z tym. Nie każdy jest zaraz inżynierem elektronikiem. W większości są na tym forum amatorzy których cieszy jakikolwiek projekt wykonany samodzielnie, który niejednokrotnie ułatwia życie i którym się chcą pochwalić lub po prostu poddać ocenie bardziej doświadczonych użytkowników I chyba właśnie po to jest ten dział? Jako autor projektu oczekiwał bym konstruktywnej krytyki ale dotyczącej wad w projekcie lub sposobu jak go udoskonalić czy uprościć. Po co zaraz osobiste wycieczki o poziomie projektu? Nikt nikomu nie każe komentowania. Uważam że projekt jest słaby nie zabieram głosu. Proste.

    A może warto by podzielić dział DIY na amatorski i zaawansowany? Lub po prostu utworzyć jakiś osobny dział na najprostsze projekty żeby nie drażnić tych bardzo zaawansowanych?


    Pozdrawiam.
  • #24
    grykar
    Level 10  
    Wstawiłem w pola lutownicze (wskazane przez RAFAŁ.M) fotorezystor z potencjometrem 1M (wystarczy 470k) - i można ustawić próg natężenia światła.

    Układ może faktycznie wygląda na przerost formy nad treścią. Powstał jako moduł większego układu, a samodzielnie działał na tyle dobrze, że zdecydowałem się usprawnić sobie życie :-)

    Generalnie dla zainteresowanych programowaniem AVR
    w programie można znaleźć:
    1. Obsługę timmer'ów programowych
    2. Obsługę przerwań programowych
    3. Obsługę przetwornika ADC
    4. programowanie w oparciu o event'y

    Główna funkcja programu jest dość przejrzysta.

    Code: c
    Log in, to see the code


    Funkcję wykrycieRuchu_EVENT() skomentowałem dokładnie. Mam nadzieję, że ktoś skorzysta z tej wiedzy.

    Dodano po 9 [minuty]:

    PiotrekpPl123 wrote:
    ...A może warto by podzielić dział DIY na amatorski i zaawansowany? Lub po prostu utworzyć jakiś osobny dział na najprostsze projekty żeby nie drażnić tych bardzo zaawansowanych?


    "Poczekalnia DIY" to jest właśnie takie miejsce zgodnie z opisem:
    "Konstrukcje początkujących nie nadające do prezentacji na stronie głównej oraz konstrukcje niedokończone."
  • #25
    SylwekK
    Level 32  
    Parę miesięcy temu dorobiłem zasilanie awaryjne (instalacja 12V) w garażu oparte na takiej czujce. W mojej też nie było fotorezystora, ale świetnie się tam sprawdził fototranzystor - przy świetle dziennym lub żarowym układ śpi, a to mi wystarczy.
    No i dochodzimy do stopnia końcowego... Ja bezpośrednio steruję małym mosfetem logic level IRLML2502 (to w zasadzie jedyny element dodatkowy w całym układzie, bo czujka może być zasilana do 20V), który ma obciążalność do 4A, a załączam nim lampą ledową około 500mA i wszystko działa bezbłędnie.
    Podsumowując jak pisali już poprzednicy uC nie jest tu absolutnie potrzebny.
  • #26
    Orion045
    Level 11  
    grykar wrote:
    Wstawiłem w pola lutownicze (wskazane przez RAFAŁ.M) fotorezystor z potencjometrem 1M (wystarczy 470k) - i można ustawić próg natężenia światła.

    Jestem w tym początkujący wiec proszę o wyrozumiałość. Z zawodu jestem ślusarzem. Czujnik ruchu (HC-SR501) sterujący listwą LED Piszesz że fotorezystor i potencjometr 470k w miejsce wskazane przez RAFAŁ.M. czyli tam fotorezystor a w miejsce wyżej potencjometr? Dzisiaj dostałem czujnik HC-SR501 bo z zestawem miałem HC-SR505.Też chce zrobić na Attiny2313, czujniku HC-SR501 , zasilaczu 12V i rezystory 220 om,10k. To już posiadam. Jakie jeszcze części są potrzebne?Próbowałem też pisać program na razie na arduino uno i tu testuje.Program jest z przyciskiem załącz - wyłącz.Nie wiem jak napisać żeby działał z fotorezystorem zamiast przycisku
    Code: c
    Log in, to see the code
    .

    Szukałem przykładów działania fotorezystora aby jak wynik oświetlenia spadnie do 100 to załączyło by urządzenie i światło by świeciło a czujnik powiedzmy co 1 minutę sprawdzał czy jest ruch jak nie było by to światło by wyłączyło się.Jak to napisać? Nie wiem czy dobrze rozumie. Nie znam angielskiego. W specyfikacji są dwa miejsca do ustawień czujnika - synsitivity adjust i time delay adjust. To czułość i opóźnienie?Gdzie w eagle jest biblioteka HC-SR501 bo nie znalazłem. Nie znalazłem też diody rgb dwukolorowej czerwonej - zielonej.
  • #27
    Orion045
    Level 11  
    Trochę przerobiłem program. Dzisiaj dostałem przekaźnik.Działa.Nie wiem jak napisać to w programie aby czujnik ruchu załączał przekaźnik. Program wygląda teraz tak.

    Code: c
    Log in, to see the code


    Próbowałem wpisać pod if (digitalRead(PIR))
    digitalWrite(PRZEKAZNIK, HIGH)

    Wyskakuje błąd exit status 1 "else" without a previous "if"
  • #28
    grykar
    Level 10  
    Orion045 wrote:
    Trochę przerobiłem program. Dzisiaj dostałem przekaźnik.Działa.Nie wiem jak napisać to w programie aby czujnik ruchu załączał przekaźnik. Program wygląda teraz tak.


    Proponuję wykorzystać program i schemat, który załączyłem na początku postu, a następnie go modyfikować w miarę potrzeb. Układ, który zrobiłem działa z tym programem do dzisiaj więc wszystko wskazuje na to, że nie ma krytycznych błędów.
    Wydaje mi się, że kod jest skomentowany dość dokładnie, ale jeśli coś jest jeszcze niezrozumiałe postaram się wyjaśnić.
  • #29
    Orion045
    Level 11  
    Ja mam to tak zrobione. Tylko czujnik ruchu mi nie załącza przekaźnika.Poskładałem wszystko na płytce stykowej Arduino Leonardo. Na razie mam podłączone dwa zasilacze - 5 V do Arduino i 12 V do listwy Led przez przekaźnik. Podpiąć może +5 z diody Led Światło do +5 V przekaźnika? Jak zrobić nitkę zasilania z zasilacz 12 V na 5 V?

    Code: c
    Log in, to see the code


    Podłączyłem przekaźnik do pinu 3 . Dalej program nie działa tak jak ma. Przekaźnik zamiast się zatłacza się wyłącza. Dioda załącz wyłącz pali się na czerwono , a po naciśnięciu przycisku na załącz się nie pali.Mimo że wyłączę (czerwona dioda) to czujnik daje impuls na przekaźnik.Pomocy,pliss.