czwartek, 11 czerwca 2015

Czujnik ruchu PIR HC-SR501

Moduł PIR HC-SR501 jest reklamowany często przez sprzedawców jako "moduł kompatybilny z Arduino". To określenie jest przesadne, ale pewnie znacznie poprawia jego sprzedaż ;) Kompatybilność oznacza w tym wypadku możliwość bezpośredniego podłączenia do modułu z Arduino. Ja go sprawdzałem zarówno wg. prostego testu z baterią i LED-em, jak i  po podłączeniu do ATmegi (z prostą obsługą napisaną w C).
CZUJNIK RUCHU PIR HC-SR501

Opisywany moduł potrzebny mi był na potrzeby alarmowo-sygnalizacyjne i zainteresował zarówno solidną dokumentacją, jak i możliwością rozbudowy. Poza tym jest jeszcze korzystna cena poniżej 10zł. Alternatywą są gotowe rozwiązania, np. czujki do włączania światła pod domem. Nie mniej jednak są one zdecydowanie droższe i wymagają ingerencji w ich elektronikę, aby mogły sterować czymś innym niż żarówką zasilaną napięciem sieciowym.
Test z LED-em - stan niski na wyjściu
Czujnik reaguje na podczerwień, np. ciepło przechodzącego ciała ludzkiego. Z naciskiem na słowo "przechodzącego", bo gdyby ono nagle się zatrzymało, to czujnik i tak wyłączy się po określonym czasie. Dzieje się tak, bo czujnik faktycznie składa się z dwóch połączonych ze sobą części i reaguje na zmiany w różnicy sygnałów z tych części (połówek). Jeśli w jednej z nich sygnał zmienia się bardziej niż w drugiej, interpretowane jest to jako ruch obiektu emitującego podczerwień w obrębie czujnika.
Test z LED-em - stan wysoki na wyjściu

Moduł jest niewielki, posiada tylko trzy piny, z czego dwa są zasilające i jeden wyjściowy. 
Po włączeniu zasilania (napięcie stałe do 4,5 do 20V), układ potrzebuje  od 30 do 60 sekund na "wygrzanie się" i ustabilizowanie swojej pracy. Potem można już z niego w pełni korzystać, tj. włączać, np. machając przed nim ręką. 

Wykrycie ruchu oznacza, że sygnał wyjściowy (prostokątny) zmienia stan z niskiego (0V) na wysoki (3,3V). Czas trwania stanu wysokiego można regulować jednym z rezystorów nastawnych od ok. 0,5 do 300s (chodzi o ten dalej położony od układu scalonego, oznaczony Tx w testowanym przeze mnie module). Z kolei drugi z rezystorów służy do regulacji czułości układu (oznaczony jako Sx) w zakresie od 3 do 7 metrów. Co ciekawe, na wielu stronach www, jest przedstawiany jako regulator minimalnego czasu po którym może pojawić się kolejny stan wysoki (o ile czujnik wykryje ruch). W rzeczywistości czas ten jest stały i wynosi 2,5s. 

Obciążalność układu nie jest wielka, wystarczy jednak, aby wysterować diodę LED. W dokumentacji użytego układu (BISS0001) jest mowa maksymalnym prądzie wyjściowym 10mA przy napięciu zasilania 5V. 

Moduł daje jeszcze możliwość konfiguracji jego zachowania po wykryciu ruchu. Domyślnie układ utrzymuje stan wysoki na wyjściu, jeśli nadal wykrywa ruch (retriggering mode). W innym możliwym wariancie (non-retriggering mode), po ustawionym czasie trwania stanu wysokiego przechodzi do stanu niskiego nawet przy wykrywanym ruchu i może ponowie wejść w stan wysoki po zadanym czasie blokowania (wymienionych wcześniej 2,5s) - oczywiście jeśli nadal wykrywany jest ruch. Ustalenie trybu pracy umożliwiają pola lutownicze znajdujące w jednym z rogów płytki oznaczone jako H (retriggering mode) i L (non-retriggering mode). Pole H jest zwarte z polem środkowym (połaczonym z pinem 1 US), wobec czego widzę problem z przejściem na drugi tryb pracy (non-retriggering). Jak zewrę z polem środkowym pin L to zewrę zarazem zasilanie układu. Wobec tego trzeba fizycznie należałoby przerwać ścieżkę łączącą pole H ze środkowym polem. Tak przy okazji, dodam, że można spotkać w sprzedaży układy w których są wlutowany piny, które można zewrzeć zworką. Tak wynika przynajmniej ze zdjęć.

Na koniec dołączam film z moich eksperymentów z modułem. Widoczny jest na nim moduł podpięty do ATmegi i zmiany napięcia wyjściowego po wykryciu ruchu.



Źródła:
1) http://www.elecfreaks.com/wiki/index.php?title=PIR_Motion_Sensor_Module:DYP-ME003
2) http://kaktusa.pl/przyszla-pora-na-uniwersalny-modul-z-czujnikiem-pir-hc-sr501/
3) http://www.elecfreaks.com/398.html
4) Dokumentacja BISS0001

Brak komentarzy:

Prześlij komentarz