Search Code

Kod Arduino i wideo dla modułu czujnika ruchu HC-SR505 z przekaźnikiem

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).

HC-SR505 motion sensor

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

ProducentHC-SR505
Numer częściHC-SR505
Napięcie logiczne/IO3,3 V - 20 V
Napięcie zasilania5 V
Prąd wyjściowy (na kanał)20 mA
Prąd szczytowy (na kanał)100 mA
Zalecenia dotyczące częstotliwości PWMNie dotyczy
Progi logiczne wejścia0,3 V (niski) / 2,5 V (wysoki)
Spadek napięcia / RDS(on) / nasycenie0,2 V
Limity termiczne+70 °C
ObudowaModuł
Uwagi / wariantyMał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

Arduino wiring for  HC-SR505 motion sensor
Arduino wiring for HC-SR505 motion sensor

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:

Wirig relay module to AC load

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

Obrazy

Wirig relay module to AC load
Wirig relay module to AC load
HC-SR505 motion sensor
HC-SR505 motion sensor
HC-SR505 motion sensor
HC-SR505 motion sensor
HC-SR505 motion sensor
HC-SR505 motion sensor
HC-SR505 motion sensor
HC-SR505 motion sensor
HC-SR505 motion sensor
HC-SR505 motion sensor
Arduino wiring for  HC-SR505 motion sensor
Arduino wiring for HC-SR505 motion sensor
74-This is the Arduino code for the HC-SR505 motion sensor (small) with relay.
Język: C++
/*
 * 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ć

Zasoby i odniesienia

Brak zasobów.

Pliki📁

Karta katalogowa (pdf)

Plik Fritzing