Kod Arduino i wideo dla modułu czujnika ruchu HC-SR505 z przekaźnikiem
W tym samouczku zbudujemy system wykrywania ruchu z wykorzystaniem czujnika ruchu HC-SR505 oraz modułu przekaźnika. To rozwiązanie pozwoli Ci włączać urządzenia, takie jak światła lub brzęczyki, gdy wykryty zostanie ruch. Przekaźnik działa jak przełącznik do bezpiecznego sterowania urządzeniami wysokiego napięcia. Po ukończeniu tego przewodnika będziesz mieć działający zestaw czujnika ruchu, który może aktywować różne urządzenia na podstawie wykrytego ruchu. Aby lepiej to zrozumieć, koniecznie obejrzyj powiązane wideo (na wideo w 0:00).

Wyjaśnienie sprzętu
Główne elementy tego projektu to czujnik ruchu HC-SR505, moduł przekaźnika oraz płytka Arduino. HC-SR505 to pasywny czujnik podczerwieni (PIR), który wykrywa ruch poprzez zmiany w promieniowaniu podczerwonym. Działa poprzez pomiar ciepła emitowanego przez obiekty w jego polu widzenia. Gdy wykryty zostanie poruszający się obiekt, czujnik wysyła sygnał do Arduino.
Moduł przekaźnika służy do sterowania urządzeniem wysokiego napięcia, takim jak żarówka. Działa jak przełącznik elektryczny, umożliwiając Arduino bezpieczne włączanie i wyłączanie urządzenia. Przekaźnik ma dwie główne konfiguracje: normalnie otwarty (NO) i normalnie zamknięty (NC), które określają stan domyślny, gdy przekaźnik nie jest aktywowany.
Szczegóły z karty katalogowej
| Producent | HC-SR505 |
|---|---|
| Numer części | HC-SR505 |
| Napięcie logiczne/IO | 3,3 V - 20 V |
| Napięcie zasilania | 5 V |
| Prąd wyjściowy (na kanał) | 20 mA |
| Prąd szczytowy (na kanał) | 100 mA |
| Zalecenia dotyczące częstotliwości PWM | Nie dotyczy |
| Progi logiczne wejścia | 0,3 V (niski) / 2,5 V (wysoki) |
| Spadek napięcia / RDS(on) / nasycenie | 0,2 V |
| Limity termiczne | +70 °C |
| Obudowa | Moduł |
| Uwagi / warianty | Mały format; niskie zużycie energii |
- Zapewnij odpowiednie odprowadzanie ciepła dla obciążeń o wysokim prądzie.
- Użyj kondensatorów odsprzęgających dla stabilnego zasilania.
- Zachowaj ostrożność przy połączeniach wysokiego napięcia; zapewnij bezpieczeństwo.
- Przetestuj czujnik z prostymi wyjściami przed podłączeniem do przekaźników.
- Sprawdź orientację czujnika PIR dla optymalnego wykrywania.
Instrukcje podłączenia

Aby podłączyć czujnik ruchu HC-SR505, najpierw podłącz pin zasilania (oznaczony jako +) do wyjścia 5 V na Arduino. Następnie podłącz pin masy (oznaczony jako -) do jednego z pinów masy Arduino. Pin sygnałowy (środkowy pin) należy podłączyć do pinu cyfrowego 2 na Arduino.
Dla modułu przekaźnika podłącz pin VCC do wyjścia 5 V na Arduino, a pin masy do masy Arduino. Pin wejściowy przekaźnika należy podłączyć do pinu cyfrowego 9 na Arduino. Na koniec podłącz dodatni zacisk brzęczyka do pinu cyfrowego 8, a ujemny do masy. Upewnij się, że podłączasz wspólny i normalnie otwarty pin przekaźnika odpowiednio, aby sterować swoim urządzeniem.
Przykłady kodu i omówienie
Kod tego projektu inicjalizuje piny dla czujnika, brzęczyka i przekaźnika. Używa funkcji digitalRead() do sprawdzania ruchu i odpowiednio reaguje. Poniżej znajduje się fragment funkcji setup:
void setup() {
Serial.begin(9600); // konfiguracja monitora szeregowego
pinMode(PIR, INPUT_PULLUP); // zdefiniuj pin jako wejście dla czujnika
pinMode(BUZZER, OUTPUT); // zdefiniuj pin jako wyjście dla brzęczyka
pinMode(RELAY, OUTPUT); // zdefiniuj pin jako wyjście dla przekaźnika
}
W tym fragmencie piny są ustawiane w tryb wejścia lub wyjścia. Serial.begin(9600) inicjalizuje komunikację szeregową do debugowania.
Główna pętla sprawdza ruch i aktywuje brzęczyk oraz przekaźnik, gdy ruch zostanie wykryty. Oto fragment funkcji loop:

void loop() {
int motion = digitalRead(PIR); // odczytaj czujnik
if(motion) {
Serial.println("Wykryto ruch");
digitalWrite(BUZZER, HIGH); // włącz brzęczyk
digitalWrite(RELAY, LOW); // włącz przekaźnik
} else {
Serial.println("===nic się nie porusza");
digitalWrite(BUZZER, LOW); // wyłącz brzęczyk
digitalWrite(RELAY, HIGH); // wyłącz przekaźnik
}
delay(500);
}
Ten fragment odczytuje stan czujnika PIR i aktywuje lub dezaktywuje brzęczyk oraz przekaźnik na podstawie wykrytego ruchu. Opóźnienie 500 milisekund zapewnia, że pętla sprawdza czujnik w rozsądnych odstępach czasu.
Demonstracja / Czego się spodziewać
Gdy ruch zostanie wykryty, światło podłączone do przekaźnika włączy się, a brzęczyk wyda dźwięk. Jeśli ruch nie zostanie wykryty, przekaźnik wyłączy światło, a brzęczyk będzie cichy. Należy pamiętać, że HC-SR505 ma wbudowane opóźnienie, które utrzymuje wyjście aktywne przez krótki czas po wykryciu ruchu (do 8 sekund), którego nie można regulować (na wideo w 5:30).
Znaczniki czasu wideo
- 00:00 – Wprowadzenie do projektu
- 01:30 – Wyjaśnienie komponentów
- 03:15 – Instrukcje podłączenia
- 05:30 – Omówienie kodu
- 07:00 – Demonstracja zestawu
/*
* This is the Arduino code for HC-SR501 Motion Sensor
* to detect motion of human or objects using Arduino for robotic car and other applications
* Watch HC-SR505 video https://youtu.be/qhThpxiXubI
*
// Written by Ahmad S. for Robojax.com on
// February 10, 2018 at 11:41 in Ajax, Ontario, Canada
* Permission granted to share this code given that this
* note is kept with the code.
* Disclaimer: this code is "AS IS" and for educational purposes only.
*
*/
#define PIR 2 // define pin 2 for sensor
#define BUZZER 8 // define pin 8 as for buzzer
#define RELAY 9 // define pin 9 as for relay
void setup() {
// HC-SR505 Motion Sensor Code by Robojax.com 20180210
Serial.begin(9600);// setup Serial Monitor to display information
pinMode(PIR, INPUT_PULLUP);// define pin as Input sensor
pinMode(BUZZER, OUTPUT);// define pin as OUTPUT for buzzer or LED
pinMode(RELAY, OUTPUT);// define pin as OUTPUT for relay
}
void loop() {
// HC-SR505 Motion Sensor Code by Robojax.com 20180210
int motion =digitalRead(PIR);// read the sensor
if(motion){
Serial.println("Motion detected");
digitalWrite(BUZZER,HIGH);// turn the buzzer ON
digitalWrite(RELAY,LOW);// turn the relay ON
}else{
Serial.println("===nothing moves");
digitalWrite(BUZZER,LOW);// keep the buzzer OFF
digitalWrite(RELAY,HIGH);// turn the relay OFF
}
delay(500);
// HC-SR505 Motion Sensor Code by Robojax.com 20180210
}
Rzeczy, których możesz potrzebować
-
Amazon
-
Amazon
-
AliExpressPurchase 5v 12v 1 2 4 6 8 channel channel relay moduls.click.aliexpress.com
Zasoby i odniesienia
Brak zasobów.
Pliki📁
Karta katalogowa (pdf)
-
robojax-HC-SR505-manual.pdf
robojax-HC-SR505-manual.pdf0.09 MB
Plik Fritzing
-
HC-SR501 Body Sensor Module
HC-SR501 Body Sensor Module.fzpz0.01 MB