Przekaźnik DIY do czujnika ruchu pir. O czujniku ruchu i podłączeniu go do Arduino

Przekaźnik DIY do czujnika ruchu pir. O czujniku ruchu i podłączeniu go do Arduino

26.06.2023

Omówienie czujnika przestrzennego HC-SR501

Moduł czujnika ruchu (lub obecności) HCSR501 wykorzystujący efekt piroelektryczny składa się z czujnika PIR 500BP (rys. 1) z dodatkową izolacją galwaniczną na chipie BISS0001 oraz soczewki Fresnela, która służy do zwiększenia promienia widzenia i wzmocnienia podczerwieni sygnał (ryc. 2). Moduł służy do wykrywania ruchu obiektów emitujących promieniowanie podczerwone. Elementem czujnikowym modułu jest czujnik PIR 500BP. Zasada jego działania opiera się na piroelektryczności. Jest to zjawisko pojawiania się pola elektrycznego w kryształach, gdy zmienia się ich temperatura.

Pracą czujnika steruje układ BISS0001. Na płytce znajdują się dwa potencjometry, za pomocą pierwszego ustawia się odległość detekcji obiektu (od 3 do 7 m), za pomocą drugiego - opóźnienie po pierwszym zadziałaniu czujnika (5 - 300 sek.). Moduł posiada dwa tryby - L i H. Tryb pracy ustawia się za pomocą zworki. Tryb L jest trybem pracy pojedynczej, w przypadku wykrycia poruszającego się obiektu na wyjściu OUT ustawiany jest wysoki poziom sygnału na czas opóźnienia ustawiony drugim potencjometrem. W tym czasie czujnik nie reaguje na poruszające się obiekty. Tryb ten może być stosowany w systemach bezpieczeństwa do wysyłania sygnału alarmowego do syreny. W trybie H czujnik jest wyzwalany po każdym wykryciu ruchu. W tym trybie można włączyć oświetlenie. Po włączeniu moduł zostaje skalibrowany, czas kalibracji wynosi około jednej minuty, po czym moduł jest gotowy do pracy. Czujnik należy instalować z dala od otwartych źródeł światła.

Rysunek 1. Czujnik PIR 500BP

Rysunek 2. Soczewka Fresnela

Dane techniczne HC-SR501

  • Napięcie zasilania: 4,5-20 V
  • Pobór prądu: 50mA
  • Napięcie wyjściowe OUT: WYSOKIE - 3,3 V, NISKIE - 0 V
  • Interwał wykrywania: 3-7m
  • Czas opóźnienia po strzale: 5 - 300 sek
  • Kąt widzenia do 120
  • Czas blokady do następnego pomiaru: 2,5 sek.
  • Tryby pracy: L - operacja pojedyncza, H - praca na każde zdarzenie
  • Temperatura pracy -20 do +80C
  • Wymiary 32x24x18mm

Podłączanie czujnika ruchu na podczerwień do Arduino

Moduł posiada 3 wyjścia (rys. 3):
  • VCC - zasilanie 5-20 V;
  • GND - masa;
  • OUT - wyjście cyfrowe (0-3,3V).

Rysunek 3. Przypisanie pinów i konfiguracja HC-SR501

Podłączmy moduł HC-SR501 do płytki Arduino (schemat połączeń na rys. 4) i napiszmy prosty szkic sygnalizujący sygnałem dźwiękowym i komunikatem na port szeregowy w przypadku wykrycia poruszającego się obiektu. Aby naprawić wyzwalacze mikrokontrolera, użyjemy zewnętrznych przerwań na wejściu 2. Jest to przerwanie int0.

Rysunek 4. Schemat podłączenia modułu HC-SR501 do płytki Arduino

Wgrajmy szkic z Listingu 1 na płytkę Arduino i zobaczmy, jak czujnik reaguje na przeszkody (patrz rysunek 5). Ustaw moduł w tryb pracy L. Listing 1 // Szkic poglądowy czujnika ruchu/obecności HC-SR501 // strona // styk do podłączenia wyjścia czujnika #define PIN_HCSR501 2 // flaga wyzwalacza boolean flagHCSR501=false; // pin do podłączenia głośnika int soundPin=9; // częstotliwość sygnału dźwiękowego int freq=587; void setup() ( // zainicjuj port szeregowy Serial.begin(9600); // rozpocznij obsługę przerwań int0 załącznikInterrupt(0, intHCSR501,RISING); ) void pętli() ( if (flagHCSR501 == true) ( ​​​​ // Wiadomość do portu szeregowego Serial.println("Uwaga!!!"); // sygnał dźwiękowy przez 5 sekund (soundPin,freq,5000); // reset flagi wyzwalającej flagHCSR501 = false; ) ) // obsługa przerwania void intHCSR501() ( // ustawienie flagi wyzwalania czujnika flagHCSR501 = true; )

Rysunek 5 Wyjście monitora szeregowego

Za pomocą potencjometrów eksperymentujemy z czasem trwania sygnału na wyjściu OUT oraz czułością czujnika (odległością mocowania obiektu).

Przykład użycia

Stwórzmy przykład wysyłania wiadomości SMS w przypadku zadziałania czujnika ruchu/obecności na chronionym obiekcie. W tym celu wykorzystamy osłonę GPS/GPRS. Będziemy potrzebować następujących szczegółów:
  • płyta arduino uno
  • Tarcza GSM/GPRS
  • tranzystor npn, na przykład C945
  • rezystor 470 omów
  • głośnik 8 omów 1 W
  • przewody
Zmontujmy schemat połączeń zgodnie z ryc. 6.

Rysunek 6. Schemat połączeń

Po uruchomieniu czujnika wywołujemy procedurę wysłania sms-a Uwagadziałanie!!! pod numer TEL. Zawartość szkicu pokazano na Listingu 2. Nakładka GSM/GPRS pobiera do 2 A w trybie wysyłania SMS-ów, dlatego korzystamy z zewnętrznego zasilacza 12V 2A. Listing 2 // Szkic 2 przedstawiający czujnik ruchu/obecności HC-SR501 // wysyłanie SMS-ów po uruchomieniu czujnika // strona // kontakt do podłączenia wyjścia czujnika #define PIN_HCSR501 2 // flaga wyzwalacza logiczna flagHCSR501 false; // pin do podłączenia głośnika int soundPin=9; // częstotliwość sygnału dźwiękowego int freq=587; // Biblioteka SoftwareSerial #include // numer telefonu do wysyłania smsów #define PHONE "+79034461752" // Piny do SoftwareSerial (możesz mieć 2,3) SoftwareSerial GPRS(7, 8); void setup() ( // inicjalizacja portu szeregowego Serial.begin(9600); // rozpoczęcie przetwarzania przerwań int0 załącznikInterrupt(0, intHCSR501,RISING); // do komunikacji z tarczą GPG/GPRS GPRS.begin(19200 ); ) void pętli() ( if (flagHCSR501 == true) ( ​​\/ Wiadomość na port szeregowy Serial. println("Uwaga!!!"); // Alarm dźwiękowy przez 5 sekund tone(soundPin, freq, 5000); // wyślij sms SendSMS(); // zresetuj flagę wyzwalacza flagHCSR501 = false; ) ) // przerwanie przetwarzania void intHCSR501() ( // ustawienie flagi wyzwalacza czujnika HCSR501 = true; ) // podprogram wysyłania SMS void SendSMS() ( // Ustawienia trybu tekstowego poleceń AT GPRS.print("AT+CMGF=1\r"); opóźnienie(100); // numer telefonu GPRS.print("AT + CMGS = \""); GPRS.print(TELEFON); GPRS. println("\""); opóźnienie(200); // Wiadomość GPRS. println("Uwaga!!!"); opóźnienie(200); // Kod ASCII ctrl+z – koniec transmisji GPRS println((char) 26); opóźnienie(200); GPRS.println(); )

Często zadawane pytania

1. Moduł nie działa, gdy obiekt się porusza
  • Sprawdź czy moduł jest prawidłowo podłączony.
  • Ustaw odległość wykrywania za pomocą potencjometru.
2. Czujnik jest uruchamiany zbyt często
  • Za pomocą potencjometru ustaw opóźnienie trwania sygnału.
  • Ustaw zworkę na tryb pracy pojedynczej L.

Tematem dzisiejszej lekcji jest czujnik ruchu oparty na efekcie piroelektrycznym (PIR, pasywny czujnik ruchu na podczerwień). Takie czujniki są często stosowane w systemach bezpieczeństwa oraz w życiu codziennym do wykrywania ruchu w pomieszczeniu. Przykładowo zasada detekcji ruchu opiera się na automatycznym włączeniu światła w wejściu lub w łazience. Czujniki piroelektryczne są dość proste, niedrogie i bezpretensjonalne w instalacji i konserwacji. Nawiasem mówiąc, istnieją inne sposoby wykrywania ruchu. Obecnie komputerowe systemy wizyjne są coraz częściej wykorzystywane do rozpoznawania obiektów i trajektorii ich ruchu. W tych samych systemach bezpieczeństwa stosowane są detektory laserowe, które w przypadku przekroczenia wiązki dają sygnał alarmowy. Stosowane są także czujniki termowizyjne, zdolne do wykrywania ruchu wyłącznie istot żywych.

1. Zasada działania piroelektrycznych czujników ruchu

Piroelektryki to dielektryki, które wytwarzają pole elektryczne, gdy zmienia się ich temperatura. W oparciu o piroelektryki wykonywane są czujniki temperatury, na przykład LHI778 lub IRA-E700. Każdy taki czujnik zawiera dwa czułe elementy o wymiarach 1×2 mm, połączone z przeciwną polaryzacją. I jak zobaczymy później, obecność dokładnie dwóch elementów pomoże nam wykryć ruch. Tak wygląda czujnik IRA-E700 Muraty. W tej lekcji będziemy pracować z czujnikiem ruchu HC-SR501, który posiada jeden taki czujnik piroelektryczny. Z góry piroelektryk jest otoczony półkulą podzieloną na kilka segmentów. Każdy segment tej kuli jest soczewką skupiającą promieniowanie cieplne w różnych obszarach czujnika PIR. Często jako soczewkę stosuje się soczewkę Fresnela.
Zasada działania czujnika ruchu jest następująca. Załóżmy, że czujnik jest zainstalowany w pustym pomieszczeniu. Każdy czuły element otrzymuje stałą dawkę promieniowania, co oznacza, że ​​napięcie na nim ma stałą wartość (lewy rysunek).
Gdy tylko osoba wejdzie do pomieszczenia, najpierw wchodzi w pole widzenia pierwszego elementu, co powoduje pojawienie się na nim dodatniego impulsu elektrycznego (rysunek środkowy). Osoba porusza się, a jej promieniowanie cieplne przechodzące przez soczewki uderza w drugi element PIR, który generuje impuls ujemny. Obwód elektroniczny czujnika ruchu rejestruje te wielokierunkowe impulsy i wyciąga wnioski, że dana osoba znalazła się w polu widzenia czujnika. Na wyjściu czujnika generowany jest dodatni impuls (rysunek po prawej).

2. Konfigurowanie urządzenia HC-SR501

W tej lekcji wykorzystamy moduł HC-SR501. Moduł ten jest bardzo powszechny i ​​jest stosowany w wielu projektach DIY ze względu na niski koszt. Czujnik posiada dwa rezystory zmienne oraz zworkę do ustawiania trybu. Jeden z potencjometrów reguluje czułość urządzenia. Im jest większy, tym dalej czujnik „widzi”. Czułość wpływa również na wielkość wykrytego obiektu. Można na przykład wykluczyć psa lub kota z wyzwalania.
Drugi potencjometr reguluje czas reakcji T . Jeśli czujnik wykryje ruch, generuje impuls o dodatniej długości T . Wreszcie trzecia kontrolka to zworka przełączająca tryb czujnika. W ciąży L czujnik liczy T już od pierwszej operacji. Załóżmy, że chcemy sterować światłem w łazience. Wchodząc do pomieszczenia, osoba uruchomi czujnik, a światło włączy się dokładnie na chwilę T . Po upływie tego okresu sygnał wyjściowy powróci do stanu pierwotnego, a czujnik wyda kolejny sygnał wyzwalający. W ciąży H czujnik rozpoczyna odmierzanie czasu T za każdym razem po wykryciu ruchu. Innymi słowy, każdy ruch człowieka zresetuje licznik czasu. T . Domyślnie zworka jest w stanie H .

3. Podłączenie HC-SR501 do Arduino Uno

Do podłączenia do mikrokontrolera lub bezpośrednio do przekaźnika, HC-SR501 ma trzy piny. Łączymy je z Arduino w następujący sposób:
HC-SR501 GND VCC NA ZEWNĄTRZ
Arduino Uno GND +5 V 2
Schemat obwodu
Wygląd układu
Program Jak już wspomniano, wyjście cyfrowe czujnika HC-SR501 po wyzwoleniu generuje wysoki poziom sygnału. Napiszmy prosty program, który wyśle ​​do portu szeregowego „1” jeśli czujnik wykrył ruch, a „0” w przeciwnym wypadku. const int movPin = 2 void setup() ( Serial.begin(9600); pinMode(movPin, INPUT); ) void pętla()( int val = digitalRead(movPin); Serial.println(val); opóźnienie(100); ) Wczytujemy program na Arduino i sprawdzamy działanie czujnika. Możesz dostosować ustawienia czujnika i zobaczyć, jak wpływa to na jego działanie.

4. Sterowanie oświetleniem w oparciu o czujnik ruchu

Kolejnym krokiem jest automatyczny system oświetlenia. Aby sterować oświetleniem w pomieszczeniu należy dodać do obwodu przekaźnik. Wykorzystamy moduł przekaźnikowy z zabezpieczeniem opartym na transoptorze, o którym pisaliśmy już na jednej z lekcji (lekcja o przekaźnikach). Uwaga! Obwód ten zapala lampę z sieci 220 woltów. Zaleca się siedmiokrotne sprawdzenie wszystkich połączeń przed podłączeniem obwodu do domowej sieci energetycznej. Schemat obwodu
Wygląd układu
Program Napiszmy teraz program, który po uruchomieniu czujnika włączy przekaźnik, a co za tym idzie oświetlenie w pomieszczeniu. const int movPin = 2; stała int relPin = 3; void setup() ( Serial.begin(9600); pinMode(movPin, INPUT); pinMode(relPin, OUTPUT); ) void pętli()( int val = digitalRead(movPin); if (val) digitalWrite(relPin, HIGH) ; else digitalWrite(relPin, LOW); ) Wczytujemy program na Arduino, ostrożnie podłączamy obwód do sieci domowej i sprawdzamy działanie czujnika. Wniosek Czujniki ruchu są wszędzie wokół nas. Dzięki systemom bezpieczeństwa można je spotkać niemal w każdym pomieszczeniu. Jak się przekonaliśmy, są one bardzo proste w obsłudze i można je łatwo zintegrować z dowolnym projektem Arduino lub Raspberry Pi. Oto kilka sytuacji i miejsc, w których czujnik ruchu może się przydać:
  • automatyczne włączanie światła przy wejściu do domu, w łazience i toalecie, przed drzwiami wejściowymi do pokoju;
  • alarm wewnątrz i na zewnątrz;
  • automatyczne otwieranie drzwi;
  • automatyczna aktywacja kamery bezpieczeństwa.
Jak wspomniano na samym początku, istnieją inne sposoby wykrywania ruchu. Porozmawiamy o nich na następnej lekcji!

W naszym niedoskonałym świecie istnieje duże zapotrzebowanie na różne rzeczy techniczne, mające na celu ochronę własności i spokoju ducha obywateli. Dlatego też, moim zdaniem, trudno znaleźć osobę, która nigdy nie widziałaby alarmów wyposażonych w czujniki ruchu. Fizyczna zasada ich działania, a także wykonanie mogą być różne, ale chyba najczęściej spotykane są piroelektryczne pasywne czujniki podczerwieni (PIR).

Mniej więcej tak:


Reagują na zmiany promieniowania w zakresie podczerwieni, czyli w jej środkowej części - 5-15 mikronów (ciało przeciętnego zdrowego człowieka emituje w zakresie około 9 mikronów). Z punktu widzenia użytkownika końcowego sprawa jest bardzo prosta - wejście zasilania (zwykle 12 V) i wyjście przekaźnikowe (zwykle półprzewodnikowe i ze stykami normalnie zamkniętymi). Ktoś ciepły wkradł się obok - przekaźnik zadziałał. Nuda. Ale w środku sprawy nie są takie proste.
Dzisiaj poświęcimy trochę czasu teorii, a potem wypatroszymy jedno takie urządzenie i sprawimy, że będzie ono nie tylko czujnikiem, który reaguje na fakt ruchu, ale rejestruje kierunek ruchu.

Przejdźmy do ćwiczeń

Uzbrojeni w informacje teoretyczne dostajemy lutownicę. Na zdjęciu zdemontowany czujnik (zdjęta przednia osłona z soczewkami Fresnela i metalowy ekran).


Patrzymy na oznaczenie mikroukładu najbliżej czujnika piroelektrycznego (okrągły metal z okienkiem - to jest to) i (och, szczęście!) Okazuje się, że to LM324 - poczwórny wzmacniacz operacyjny. Badając otaczające elementy, znajdujemy wyjście wzmacniacza operacyjnego, które najprawdopodobniej jest odpowiednie do naszych celów (w moim przypadku okazało się, że jest to pin 1 mikroukładu). Teraz miło byłoby sprawdzić, czy go znaleźliśmy. Zwykle używa się do tego oscyloskopu. Nie miałem go pod ręką. Okazało się jednak, że to arduino. Ponieważ poziom sygnału po wzmocnieniu jest rzędu kilku woltów i nie potrzebujemy specjalnej dokładności pomiaru (wystarczy ocena jakościowa), to wejścia Arduino ADC są w zupełności wystarczające. Lutujemy przewody do znalezionego wyjścia wzmacniacza operacyjnego i minusa zasilacza i wyprowadzamy je na płytkę stykową. Przewody nie powinny być długie. W przeciwnym razie jest szansa na zmierzenie nie sygnału czujnika, a czegoś zupełnie innego.
Zastanówmy się teraz, jak szybko musisz odczytać sygnał, aby uzyskać coś rozsądnego. Powyżej powiedziano, że zakres częstotliwości sygnału użytecznego jest ograniczony do około 10 Hz. Przywołując twierdzenie Kotelnikowa (lub Nyquista – jak kto woli) możemy stwierdzić, że nie ma sensu mierzyć sygnału o częstotliwości powyżej 20 Hz. Te. okres próbkowania wynoszący 50 ms jest w porządku. Piszemy prosty szkic, który odczytuje port A1 co 50 ms i zrzuca jego wartość na szereg (ściśle rzecz biorąc, pomiary sygnału występują rzadziej niż po 50 ms, ponieważ zapis na port również wymaga czasu, ale nie jest to istotne dla nasze cele).

niepodpisany długi czas; void setup() ( Serial.begin(9600); pinMode(A1, INPUT); time=millis(); ) void pętli() ( if ((millis()-time) >= 50) ( Serial.println(analogRead (A1)); ) czas=milis(); )

Włączamy go i machamy rękami przed czujnikiem (można biegać, jeszcze bardziej przydatne). Po stronie komputera zrzucamy dane z portu do pliku.
stty -F /dev/ttyUSB0 surowy ispeed 9600 ospeed 9600 -ignpar cs8 -cstopb -echo cat /dev/ttyUSB0 > wyjście.txt
Budujemy wykres (do pliku dodana została kolumna z numeracją odczytów):
gnuplot> wykreśl „output.txt” w proporcji 1:2 z liniami


I widzimy to, czego tak naprawdę chcieliśmy - dwubiegunowe skoki napięcia. Brawo, teoria się sprawdza i przewód przylutowany jest w odpowiednie miejsce. Prosta analiza (czyli oglądanie) wykresu pozwala stwierdzić, że mniej lub bardziej wiarygodne ustalenie faktu obecności ruchu można uznać za odchylenie sygnału o 150 jednostek od wartości średniej.
Czas w końcu zrobić czujnik kierunku ruchu.
Zmodyfikujmy schemat. Oprócz sygnału czujnika analogowego podłączymy do arduino parę diod LED (porty 2 i 3, nie zapomnij o rezystorach ograniczających prąd) i napiszemy nieco bardziej złożony szkic.

Zwiększać

int a1; int stan2=0; długa średnia=0; int=0; niepodpisany długi czas; void setup() ( pinMode(2, WYJŚCIE); pinMode(3, WYJŚCIE); pinMode(A1, WEJŚCIE); digitalWrite(2, LOW); digitalWrite(3, LOW); opóźnienie(30000); //mój czujnik po włączenie //start trwa 30 sekund time=millis(); //mierzymy sygnał tysiąc razy, żeby //obliczyć jego średnią wartość //aby było z czego zliczać odchylenia od while (n<= 1000) { ++n; a1=analogRead(A1); average=average+a1; delay(50); } average=average/1000; //одновременным включением светодиодов //сигнализируем, что система готова digitalWrite(2, HIGH); digitalWrite(3, HIGH); delay(1000); digitalWrite(2, LOW); digitalWrite(3, LOW); time=millis(); } void loop() { //опрашиваем датчик каждые 50 мс if ((millis()-time) >= 50) ( //tym prostym wyrażeniem sygnał analogowy //zamienia się na dyskretny o wartościach -1/0/1 a1=(analogRead(A1)-średnia)/150; //jeżeli był zmianę polaryzacji sygnału, następnie //włącz żądany przełącznik LED (a1) ( przypadek 1: if (stan2=-1) (digitalWrite(2, HIGH); digitalWrite(3, LOW);) stan2=a1; przerwa; przypadek -1: if (stan2=1) (digitalWrite (2, LOW);digitalWrite(3, HIGH);) stan2=a1; przerwa; ) //powtórz pierwszy raz=millis(); ) )


Aby z całego zestawu wiązek charakterystyki promieniowania czujnika pozostała tylko jedna para, zamykamy wszystkie soczewki Fresnela z wyjątkiem jednej papierowym ekranem.


Cieszymy się z rezultatu.

Czujnik ruchu Arduino umożliwia śledzenie ruchu obiektów emitujących ciepło (ludzie, zwierzęta) w zamkniętej przestrzeni. Takie systemy często wykorzystuje się w warunkach domowych, np. do włączania oświetlenia w wejściu. W tym artykule rozważymy podłączenie czujników PIR w projektach Arduino: pasywnych czujników podczerwieni lub czujników piroelektrycznych reagujących na ruch. Małe wymiary, niski koszt, łatwość obsługi i brak trudności przyłączeniowych sprawiają, że tego typu czujniki można stosować w różnego rodzaju systemach alarmowych.

Konstrukcja czujnika ruchu PIR nie jest bardzo skomplikowana – składa się z elementu piroelektrycznego, który jest bardzo czuły (część cylindryczna z kryształem pośrodku) na obecność określonego poziomu promieniowania podczerwonego w obszarze detekcji. Im wyższa temperatura obiektu, tym większe promieniowanie. Na górze czujnika PIR zainstalowana jest półkula, podzielona na kilka sekcji (soczewek), z których każda zapewnia skupienie promieniowania energii cieplnej na różnych segmentach czujnika ruchu. Najczęściej jako soczewkę wykorzystuje się soczewkę Fresnela, która dzięki koncentracji promieniowania cieplnego pozwala na rozszerzenie zakresu czułości czujnika ruchu na podczerwień Arduino.

Czujnik PIR jest strukturalnie podzielony na dwie połowy. Wynika to z faktu, że dla urządzenia alarmowego istotna jest obecność ruchu w strefie czułości, a nie sam poziom promieniowania. Dlatego części są instalowane w taki sposób, że po przechwyceniu jeszcze jednego poziomu promieniowania na wyjściu będzie sygnał o wysokiej lub niskiej wartości.

Główne parametry techniczne czujnika ruchu Arduino to:

  • Strefa wykrywania poruszających się obiektów wynosi od 0 do 7 metrów;
  • Zakres kąta śledzenia – 110°;
  • Napięcie zasilania - 4,5-6 V;
  • Prąd roboczy - do 0,05 mA;
  • Reżim temperaturowy – od -20° do +50°С;
  • Regulowany czas opóźnienia od 0,3 do 18 s.

Moduł, na którym montowany jest czujnik ruchu na podczerwień, zawiera dodatkowe okablowanie elektryczne z bezpiecznikami, rezystorami i kondensatorami.

Zasada działania czujnika ruchu w Arduino jest następująca:

  • Gdy urządzenie jest zainstalowane w pustym pomieszczeniu, dawka promieniowania otrzymywana przez każdy element jest stała, podobnie jak napięcie;
  • Kiedy osoba pojawia się w pomieszczeniu, najpierw wchodzi w obszar widzenia pierwszego elementu, na którym pojawia się dodatni impuls elektryczny;
  • Kiedy człowiek porusza się po pomieszczeniu, wraz z nim przemieszcza się również promieniowanie cieplne, które trafia w drugi czujnik. Ten element PIR już generuje impuls ujemny;
  • Impulsy wielokierunkowe są rejestrowane przez obwód elektroniczny czujnika, co stwierdza, że ​​w polu widzenia czujnika Pir-Arduino znajduje się osoba.

Aby zapewnić niezawodną ochronę przed hałasem zewnętrznym, zmianami temperatury i wilgocią, elementy czujnika Pir w Arduino są zainstalowane w szczelnej metalowej obudowie. Na górze obudowy pośrodku znajduje się prostokąt wykonany z materiału przepuszczającego promieniowanie podczerwone (najczęściej na bazie silikonu). Elementy czujnikowe są zainstalowane za płytą.

Schemat podłączenia czujnika ruchu do Arduino

Podłączenie czujnika Pir do Arduino nie jest trudne. Najczęściej moduły z czujnikami ruchu wyposażone są w trzy złącza z tyłu. Układ pinów każdego urządzenia zależy od producenta, ale najczęściej w pobliżu wyjść znajdują się odpowiednie napisy. Dlatego przed podłączeniem czujnika do Arduino należy zapoznać się z zapisem. Jedno wyjście idzie do masy (GND), drugie dostarcza wymagany sygnał z czujników (+5V), a trzecie to wyjście cyfrowe, z którego pobierane są dane.

Podłączenie czujnika Pir:

  • „Ziemia” - na dowolnym złączu Arduino GND;
  • Wyjście cyfrowe - na dowolne wejście lub wyjście cyfrowe Arduino;
  • Zasilanie - +5V na Arduino.

Schemat podłączenia czujnika podczerwieni do Arduino pokazano na rysunku.

Przykład programu

Szkic to kod programu, który pomaga sprawdzić działanie czujnika ruchu po jego włączeniu. W najprostszym przykładzie istnieje wiele wad:

  • Prawdopodobieństwo fałszywych alarmów ze względu na fakt, że samoinicjalizacja czujnika zajmuje jedną minutę;
  • Brak urządzeń wyjściowych typu wykonawczego - przekaźniki, sygnalizatory, sygnalizacje świetlne;
  • Krótki odstęp czasu sygnału na wyjściu czujnika, który w przypadku ruchu musi zostać opóźniony na poziomie oprogramowania.

Niedociągnięcia te są eliminowane poprzez rozszerzenie funkcjonalności czujnika.

Najprostszy typ szkicu, który można wykorzystać jako przykład pracy z czujnikiem ruchu Arduino, wygląda następująco:

#define PIN_PIR 2 #define PIN_LED 13 void setup() ( Serial.begin(9600); pinMode(PIN_PIR, INPUT); pinMode(PIN_LED, OUTPUT); ) void pętla() ( int pirVal = digitalRead(PIN_PIR); Serial. println(digitalRead(PIN_PIR)); //Jeśli wykryto ruch if (pirVal) ( digitalWrite(PIN_LED, HIGH); Serial.println("Wykryto ruch"); opóźnienie(2000); ) else ( //Serial.print(" Brak ruchu"); digitalWrite(PIN_LED, LOW); ) )

Możliwe opcje projektów wykorzystujących czujnik

Czujniki PIR są niezastąpione w projektach, gdzie główną funkcją sygnalizacji jest określenie obecności lub nieobecności osoby w określonej przestrzeni roboczej. Na przykład w miejscach lub sytuacjach takich jak:

  • Automatyczne włączenie światła w wejściu lub przed drzwiami wejściowymi, gdy pojawi się w nich osoba;
  • Włączenie oświetlenia w łazience, toalecie, korytarzu;
  • Alarm włącza się, gdy pojawi się osoba, zarówno w pomieszczeniu, jak i w okolicy;
  • Automatyczne podłączenie kamer bezpieczeństwa, które często są wyposażone w systemy bezpieczeństwa.

Pir-sensory są łatwe w obsłudze i nie sprawiają trudności przy podłączeniu, mają dużą strefę czułości i można je z powodzeniem zintegrować z dowolnym projektem oprogramowania Arduino. Należy jednak pamiętać, że nie mają one technicznych możliwości dostarczenia informacji o tym, ile obiektów znajduje się w obszarze zasięgu i jak blisko czujnika się znajdują, a także mogą pracować na zwierzętach domowych.

Czujniki PIR (pasywne czujniki podczerwieni) umożliwiają rejestrację ruchu. Bardzo często stosowany w systemach alarmowych. Czujniki te są małe, niedrogie, zużywają mało energii, są łatwe w obsłudze i praktycznie nie podlegają zużyciu. Oprócz PIR takie czujniki nazywane są czujnikami ruchu piroelektrycznymi i podczerwonymi.

Pojawiła się potrzeba zakupu pary czujników do użytku domowego w swoim rzemiośle opartym na podświetleniu LED.
Ponieważ moje prądy pobierane są stosunkowo małe, a napięcie zasilania wynosi 12 V, zakupiono kompaktowe piroelektryczne czujniki ruchu na podczerwień w obudowie.

Pakiet:

Zamówiłem dwa czujniki z możliwością regulacji światłoczułości:

Czujniki obsługują napięcie od 12 do 24 woltów. Wlutowali już standardowe przewody o długości około 30 cm z gniazdami wejścia i wyjścia, z pinem centralnym 2,1 mm, a to duży plus. Nie trzeba nic lutować, wystarczy podłączyć zasilanie i używać:



Same czujniki są dość kompaktowe. Wygląd:





Wymiary:







Aby dostać się do płytki i regulacji należy otworzyć obudowę. Tylna pokrywa na zatrzaskach, podważ śrubokrętem:





Wynagrodzenie wygląda następująco:

Znalazłem schemat tego urządzenia, oceny mogą się różnić, ale ogólnie, aby zrozumieć istotę pracy, jest to poprawne:

Tutaj widzimy regulator napięcia na wejściu do zasilania mikroukładu:


Swoją drogą tutaj jest datasheet tego elementu, widać, że różne oznaczenia implikują różne stabilizowane napięcia wyjściowe. Ale najważniejsze jest to, że obsługuje napięcie wejściowe do 24 woltów, dlatego nie należy go przekraczać.

Ponadto, zgodnie ze schematem, na wyjściu znajduje się tranzystor polowy, który jest kluczem w obwodzie obciążenia mocy:

W arkuszu danych podano maksymalny prąd ciągły w normalnej temperaturze pokojowej wynoszący 15 A, ale ponieważ nie mamy chłodzenia tranzystorów, mamy ograniczoną moc wyjściową.

Sercem urządzenia jest chip Biss0001. Chip ten wykrywa zewnętrzne źródło promieniowania i wykonuje minimalną obróbkę sygnału, aby przekształcić go z postaci analogowej na cyfrową:



Czujnik ruchu PIR składa się zasadniczo z piroelektrycznego elementu czujnikowego (cylindrycznego elementu z prostokątnym kryształem pośrodku), który wykrywa poziom promieniowania podczerwonego. Czujnik jest właściwie podzielony na dwie części. Wynika to z faktu, że nie jest dla nas ważny poziom promieniowania, ale bezpośrednio obecność ruchu w jego strefie wrażliwości. Obie części czujnika są skonfigurowane w taki sposób, że jeśli jedna połowa odbierze więcej promieniowania niż druga, sygnał wyjściowy wygeneruje wysoką lub niską wartość.

Teraz bezpośrednio do dostosowań. Ustawiłem urządzenie, odpowiednio wrzuciłem co i gdzie skręcić:



Czas można regulować w zakresie od 1 sekundy do 500 sekund. Po całkowitym odkręceniu suwaka lampka po prostu mruga.

Jeśli chodzi o próg włączenia czujnika, eksperymentalnie odkryłem, że napięcie to wynosi od 11,5 wolta, jeśli jest niższe, czujnik po prostu się nie włącza:

Ze schematu widać, że napięcie wyjściowe z czujnika jest mniejsze lub równe napięciu wejściowemu. Ustawiłem na 12V. pojawia się błąd w postaci niedokładnego wskazania zasilania, więc pobór samego czujnika jest oczywiście mniejszy:

W trybie czuwania czujnik pobiera 84 μA, a napięcie wyjściowe wynosi 170 mV.

Szczerze mówiąc ustawienie czujnika przy wyjętej płytce jest bardzo niewygodne więc zrobiłem dziury w tylnej obudowie i dużo lepiej jest tak:

Zebrałem schemat, wszystko skonfigurowałem:

Sprawdzony:

Czujnik działa już dwa dni, drugi założyłem na podświetlenie podstawki słuchawek i podoba mi się, że w odróżnieniu od poprzedniego, który pracował na 220 V, był większy i trzaskał przekaźnik, ten jest bardziej kompaktowy i oczywiście cichy.
Maksymalnego zasięgu nie mierzyłem, ale w mieszkaniu od 3 metrów na pewno się sprawdza

Czy jestem zadowolony z zakupu? Kompletne, wysokiej jakości gotowe urządzenie.

Co nam się podobało:
+ W pełni konfigurowalny tryb pracy
+ Minimalne zużycie własne
+ Jakość wykonania i zwartość
+ Przejrzystość działania bez przerw
+ Obecność przewodów z gniazdami

Co się nie podobało:
- Brak bezpośredniego dostępu do ustawień bez parsowania obudowy (stały)
- Uszy montażowe są bardzo małe (ale lepiej zamontować na taśmie dwustronnej np. 3M)

Biała nasadka czujnika wystaje z czarnej obudowy, ale w opcji z czujnikiem innym niż światło jest czarna.

To wszystko.

Planuję kupić +43 Dodaj do ulubionych Podobała mi się recenzja +40 +75

© 2023 globusks.ru - Naprawa i konserwacja samochodów dla początkujących