Mobile
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
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: