Szukaj kodu

Użycie czujnika ruchu HC-SR501 z przekaźnikiem i kodem Arduino

Użycie czujnika ruchu HC-SR501 z przekaźnikiem i kodem Arduino

W tym samouczku dowiemy się, jak używać czujnika ruchu HC-SR501 wraz z przekaźnikiem do sterowania żarówką AC lub innym rodzajem obciążenia za pomocą Arduino. HC-SR501 to podczerwony czujnik ruchu, który może wykrywać ruch z odległości do 7 metrów, co czyni go idealnym do różnych zastosowań, takich jak alarmy bezpieczeństwa czy automatyczne systemy oświetleniowe. Wykorzystując ten czujnik i przekaźnik, możesz stworzyć projekt, który włącza światło po wykryciu ruchu.

Przedstawimy szczegółowy przewodnik dotyczący konfiguracji sprzętu, instrukcji podłączenia oraz kodu Arduino potrzebnego do osiągnięcia tej funkcjonalności. Aby lepiej zrozumieć proces, obejrzyj powiązane wideo (na wideo o 00:00).

Wyjaśnienie Sprzętu

Główne komponenty w tym projekcie to czujnik ruchu HC-SR501, moduł przekaźnika oraz płytka Arduino. Czujnik HC-SR501 ma trzy piny: VCC, GND i OUT. Pin VCC łączy się ze źródłem zasilania (5V), pin GND łączy się z masą, a pin OUT wysyła sygnał do Arduino po wykryciu ruchu.

Moduł przekaźnika działa jak przełącznik, który może sterować urządzeniami wysokiego napięcia. Ma trzy główne piny: COM (wspólny), NO (normalnie otwarty) i NC (normalnie zamknięty). W tej konfiguracji użyjemy pinu NO, który łączy się z obciążeniem po aktywacji przekaźnika. Pozwala to Arduino sterować przekaźnikiem na podstawie sygnału otrzymanego z czujnika ruchu.

Szczegóły z Karty Katalogowej

ProducentHC-SR501
Numer częściHC-SR501
Napięcie logiczne/IO5 V
Napięcie zasilania5–20 V
Pobór mocy65 mA
Kąt detekcji120 stopni
Odległość detekcji3–7 m
Temperatura pracy-15 do 70 °C
Typ wyjściaCyfrowy
ObudowaModuł

  • Zapewnij odpowiednie zasilanie (5–20 V) dla czujnika.
  • Dostosuj potencjometr czułości, aby uzyskać optymalny zasięg detekcji.
  • Użyj pinu NO przekaźnika, aby skutecznie sterować obciążeniem.
  • Zachowaj ostrożność co do prądu znamionowego przekaźnika (maks. 10 A).
  • Przetestuj zasięg detekcji czujnika ruchu przed ostateczną instalacją.
  • Rozważ odprowadzanie ciepła, jeśli używasz przekaźnika do dużych obciążeń.

Instrukcje Podłączenia

Arduino wiring for HC-SR501 Motions sensor
Arduino wiring for HC-SR501 Motions sensor

Aby podłączyć czujnik ruchu HC-SR501 i przekaźnik do Arduino, zacznij od połączenia pinu VCC czujnika ruchu z pinem 5V na Arduino. Następnie podłącz pin GND czujnika do jednego z pinów GND na Arduino. Pin OUT z czujnika ruchu powinien być podłączony do pinu cyfrowego 2 na Arduino.

Dla modułu przekaźnika podłącz pin VCC do pinu 5V na Arduino, a pin GND do masy. Pin wejściowy (często oznaczony jako IN lub podobnie) przekaźnika powinien być podłączony do pinu cyfrowego 4 na Arduino. Upewnij się, że sprawdziłeś orientację przekaźnika, aby był ustawiony na normalnie otwarty (NO) w tej konfiguracji. Na koniec podłącz obciążenie (np. żarówkę AC) do przekaźnika zgodnie ze specyfikacją przekaźnika, upewniając się, że połączenia są bezpieczne.

Przykłady Kodu i Omówienie

W kodzie Arduino definiujemy stałe dla pinów czujnika i przekaźnika. Pin czujnika jest ustawiony jako SENSOR_PIN, który jest przypisany do pinu cyfrowego 2, a pin przekaźnika jest ustawiony jako RELAY_PIN, przypisany do pinu cyfrowego 4. Ta konfiguracja pozwala nam odczytywać wyjście czujnika i odpowiednio sterować przekaźnikiem.

const int SENSOR_PIN = 2; // pin Arduino podłączony do wyjścia czujnika
const int RELAY_PIN = 4; // pin Arduino podłączony do sterowania przekaźnikiem

W funkcji setup() inicjalizujemy monitor szeregowy do debugowania i ustawiamy tryby pinów dla czujnika i przekaźnika. Zapewnia to, że Arduino wie, które piny są wejściami, a które wyjściami.

void setup() {
  Serial.begin(9600); // konfiguracja monitora szeregowego do wyświetlania informacji
  pinMode(SENSOR_PIN, INPUT); // zdefiniuj SENSOR_PIN jako wejście z czujnika
  pinMode(RELAY_PIN, OUTPUT); // zdefiniuj RELAY_PIN jako wyjście dla przekaźnika
}

W funkcji loop() ciągle sprawdzamy stan czujnika ruchu. Jeśli wykryty zostanie ruch, wyświetlamy komunikat na monitorze szeregowym i włączamy przekaźnik, ustawiając go na niski poziom. Jeśli nie wykryto ruchu, wyświetlamy inny komunikat i wyłączamy przekaźnik, ustawiając go na wysoki poziom.

void loop() {
  int motion = digitalRead(SENSOR_PIN); // odczytaj pin czujnika
  if (motion) {
    Serial.println("Wykryto ruch");
    digitalWrite(RELAY_PIN, LOW); // Włącz przekaźnik
  } else {
    Serial.println("===Nic się nie porusza");
    digitalWrite(RELAY_PIN, HIGH); // Wyłącz przekaźnik
  }
  delay(500);
}

Demonstracja / Czego Się Spodziewać

Gdy czujnik ruchu wykryje ruch, przekaźnik zostanie aktywowany, umożliwiając przepływ prądu do podłączonego obciążenia, takiego jak żarówka AC. Powinieneś zobaczyć, jak żarówka włącza się natychmiast po wykryciu ruchu. Jeśli czujnik nie wykryje żadnego ruchu, żarówka pozostanie wyłączona. Należy pamiętać, że ustawienia czułości czujnika wpływają na jego zasięg detekcji, więc regulacje mogą być konieczne dla optymalnej wydajności (na wideo o 05:00).

Typowe problemy obejmują nieprawidłowe podłączenie lub przekroczenie limitów prądu przekaźnika, co może prowadzić do awarii. Upewnij się, że wszystkie połączenia są bezpieczne i przetestuj konfigurację w kontrolowanym środowisku przed ostatecznym użyciem.

Znaczniki Czasowe Wideo

  • 00:00 Start
  • 00:35 Wyjaśnienie sprzętu
  • 04:35 Moc znamionowa przekaźnika
  • 06:00 Wyjaśnienie okablowania
  • 07:53 Wyjaśnienie kodu Arduino
  • 09:48 Demonstracja tego projektu

Obrazy

HC-SR501 back
HC-SR501 back
HC-SR501 module
HC-SR501 module
Arduino wiring for HC-SR501 Motions sensor
Arduino wiring for HC-SR501 Motions sensor
141-Arduino source code for an HC-SR501 motion sensor to control an AC bulb or load
Język: C++
/*
 * This Arduino code uses an HS-SR501 motion sensor and a relay
 * and switches an alarm or a device using the relay when motion is detected.
 * The device can be an alarm, a light, or any other device.
 *

 * Written by Ahmad Shamshiri on August 5, 2018, at 12:36 PM for Robojax.com
 * in Ajax, Ontario, Canada
 * Watch the video instruction for this code: https://youtu.be/QQ7iDagQnQM
 * This code has been downloaded from Robojax.com

 */

const int SENSOR_PIN = 2;// the Arduino pin connected to the output (middle) wire of the sensor
const int RELAY_PIN = 4;// the Arduino pin which is connected to control the relay

void setup() {
  Serial.begin(9600);// setup Serial Monitor to display information
   Serial.println("Robojax Arduino Tutorial");
   Serial.println("HC-SR501 sensor with relay");
  pinMode(SENSOR_PIN, INPUT);// Define SENSOR_PIN as Input from sensor
  pinMode(RELAY_PIN, OUTPUT);// Define RELAY_PIN as OUTPUT for relay
}

void loop() {
  // Robojax.com HC-SR501 motion sensor tutorial August 5, 2018
  int motion =digitalRead(SENSOR_PIN);// read the sensor pin and stores it in "motion" variable
 
  // if motion is detected
  if(motion){
    Serial.println("Motion detected");
    digitalWrite(RELAY_PIN, LOW);// Turn the relay ON
  }else{
     Serial.println("===Nothing moves");
     digitalWrite(RELAY_PIN,HIGH);// Turn the relay OFF
  }
  delay(500);
  // Robojax.com HC-SR501 motion sensor tutorial August 5, 2018
}

Zasoby i odniesienia

Brak zasobów.

Pliki📁

Brak dostępnych plików.