0. Komponenty i programowanie wymagane do instalacji czujnika ruchu PIR HC-SR501 do Arduino UNO

Wymagane komponenty:

{Produkt: 2000} {Produkt: 341}

I. Jak używać czujnika ruchu HC-SR501 PIR

Aby uzyskać więcej informacji o produktach lub ich opisach technicznych, wejdź na naszą stronę internetową Sklep Solectro .

Wykonaj następujące połączenie bezpośrednio lub do płytki prototypowej MB-102 bez lutowania za pomocą kabli dupont:

Eksperymentalne procedury

Moduł zasilany jest bezpośrednio z Arduino , więc nie potrzebujemy zewnętrznego źródła zasilania. Piny są połączone zgodnie z tabelą:

Kołek czujnika

Przypnij przez Arduino UNO

VCC

5V

GND

GND

NA ZEWNĄTRZ

Pin 2

Pozostałe dwa piny modułu czujnika są połączone z sondą pomiarową za pomocą dostarczonych kabli, jak pokazano na poniższym schemacie:

Schemat podłączenia czujnika do płyty UNO

Operacja

Aby ten kod działał poprawnie, najlepiej ustawić zworkę trybu ognia na „H” (tryb powtarzania ognia). Ustawić również potencjometr opóźnienia czasowego na najniższą wartość. Obróć go maksymalnie w kierunku przeciwnym do ruchu wskazówek zegara.

Kod odczyta stan czujnika (WYSOKI lub NISKI) i odpowiednio włączy lub wyłączy wbudowaną diodę LED. Wyświetli również komunikat w monitorze szeregowym, do którego można uzyskać dostęp w Narzędziach lub wpisać (Ctrl + Shift + M).

Otwórz nowy szkic i wklej następujący kod:

/ * Przykładowy kod dla czujnika ruchu PIR HC-SR501 z Arduino . Więcej informacji: www.makerguides.com * /

// Zdefiniuj piny połączeniowe:

# zdefiniować pirPin 2

# zdefiniować ledPin 13

// Utwórz zmienne:

int val = 0;

bool motionState = false ; // Zaczynamy bez wykrywania ruchu.

unieważnić konfiguracja() {

// Ustaw piny jako wejście lub wyjście:

pinMode(ledPin, OUTPUT);

pinMode(pirPin, INPUT);

// Rozpocznij komunikację szeregową z prędkością 9600 bodów:

Seryjny. rozpocząć ( 9600 ) ;

}

unieważnić pętla() {

// Przeczytaj pirPin i zapisz go jako val:

val = digitalRead (pirPin);

// Jeśli zostanie wykryty ruch (pirPin = HIGH), wykonaj następujące czynności:

gdyby (val == WYSOKA) {

digitalWrite(ledPin, HIGH); // Włącz wbudowaną diodę LED.

/ Zmień stan ruchu na true (wykryto ruch):

gdyby ( motionState == false ) {

Seryjny.println(" Wykryto ruch!

motionState = true;

}

}

// Jeśli nie wykryto ruchu (pirPin = LOW), wykonaj następujące czynności:

jeszcze {

digitalWrite ( ledPin, LOW ) ; // Wyłącz wbudowaną diodę LED.

// Zmień stan ruchu na false (brak ruchu):

gdyby (motionState == true) {

Seryjny. println ( " Przenieś zakończone !" ) ;

motionState = false ;

}

}

}

Efekty działania programu można zobaczyć na poniższym ekranie otwierając Serial Monitor: