Suchcode

Arduino-Code und Video für ein HC-SR505-Bewegungssensor-Modul mit Relais

Arduino-Code und Video für ein HC-SR505-Bewegungssensor-Modul mit Relais

In diesem Tutorial bauen wir ein Bewegungsmeldesystem mit dem HC-SR505-Bewegungssensor und einem Relaismodul. Diese Einrichtung ermöglicht es dir, Geräte wie Lampen oder einen Summer einzuschalten, wenn Bewegung erkannt wird. Das Relais fungiert als Schalter, um Hochspannungsgeräte sicher zu steuern. Am Ende dieser Anleitung hast du eine funktionierende Bewegungsmelder‑Konfiguration, die verschiedene Geräte basierend auf Bewegung aktivieren kann. Zur besseren Verständlichkeit solltest du dir das zugehörige Video ansehen (im Video bei 0:00).

HC-SR505 motion sensor

Hardware erklärt

Die Hauptkomponenten dieses Projekts sind der Bewegungssensor HC-SR505, ein Relaismodul und ein Arduino-Board. Der HC-SR505 ist ein passiver Infrarot-(PIR-)Sensor, der Bewegung erkennt, indem er Veränderungen der Infrarotstrahlung registriert. Er funktioniert, indem er die von Objekten in seinem Sichtfeld abgegebene Wärme misst. Wenn ein sich bewegendes Objekt erkannt wird, sendet der Sensor ein Signal an das Arduino-Board.

Das Relaismodul wird verwendet, um ein Hochspannungsgerät, wie eine Glühbirne, zu steuern. Es fungiert als elektrisch betätigter Schalter und ermöglicht dem Arduino, das Gerät sicher ein- oder auszuschalten. Das Relais hat zwei Hauptkonfigurationen: normalerweise offen (NO) und normalerweise geschlossen (NC), die den Standardzustand bestimmen, wenn das Relais nicht aktiviert ist.

Details zum Datenblatt

HerstellerHC-SR505
TeilenummerHC-SR505
Logik-/I/O-Spannung3.3V - 20V
Versorgungsspannung5 V
Ausgangsstrom (pro Kanal)20 mA
Spitzenstrom (je Kanal)100 mA
Hinweise zur PWM-Frequenznicht zutreffend
Eingangslogik-Schwellenwerte0.3 V (niedrig) / 2.5 V (hoch)
Spannungsabfall / RDS(on) / Sättigung0,2 V
Thermische Grenzwerte+70 °C
PaketModul
Notizen / VariantenKompakte Bauform; geringer Stromverbrauch

  • Sorgen Sie für eine ausreichende Wärmeabfuhr bei hochstromigen Lasten.
  • Verwenden Sie Entkopplungskondensatoren für eine stabile Stromversorgung.
  • Seien Sie bei Hochspannungsanschlüssen vorsichtig; treffen Sie Sicherheitsvorkehrungen.
  • Prüfen Sie den Sensor mit einfachen Ausgangssignalen, bevor Sie ihn an Relais anschließen.
  • Überprüfen Sie die Ausrichtung des PIR-Sensors für eine optimale Erkennung.

Verdrahtungsanleitung

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

Um den HC-SR505-Bewegungssensor zu verkabeln, verbinden Sie zunächst den Strom-Pin (beschriftet mit +) mit dem 5V-Ausgang Ihres Arduino. Als Nächstes verbinden Sie den Masse-Pin (beschriftet mit -) mit einem der GND-Pins Ihres Arduino. Der Signal-Pin (mittlerer Pin) sollte mit dem digitalen Pin 2 Ihres Arduino verbunden werden.

Verbinden Sie beim Relaismodul den VCC-Pin mit dem 5V-Ausgang des Arduino und den GND-Pin mit der Masse des Arduino. Der Eingangs-Pin des Relais sollte mit dem digitalen Pin 9 des Arduino verbunden werden. Schließen Sie schließlich den Pluspol des Buzzers an den digitalen Pin 8 und den Minuspol an Masse an. Stellen Sie sicher, dass Sie den gemeinsamen Anschluss (COM) und den normalerweise offenen Anschluss (NO) des Relais entsprechend anschließen, um Ihr Gerät zu steuern.

Codebeispiele & Schritt-für-Schritt-Anleitung

Der Code für dieses Projekt initialisiert die Pins für den Sensor, den Summer und das Relais. Er verwendet diedigitalRead()Funktion, die nach Bewegung prüft und entsprechend reagiert. Nachfolgend ein Auszug aus der Setup-Funktion:


void setup() {
  Serial.begin(9600); // setup Serial Monitor
  pinMode(PIR, INPUT_PULLUP); // define pin as Input for sensor
  pinMode(BUZZER, OUTPUT); // define pin as OUTPUT for buzzer
  pinMode(RELAY, OUTPUT); // define pin as OUTPUT for relay
}

In diesem Auszug werden die Pins entweder als Eingänge oder als Ausgänge konfiguriert. DerSerial.begin(9600)initialisiert die serielle Kommunikation zum Debuggen.

Die Hauptschleife prüft auf Bewegung und aktiviert den Summer und das Relais, wenn Bewegung erkannt wird. Hier ist ein fokussierter Ausschnitt aus der loop-Funktion:

Wirig relay module to AC load

void loop() {
  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);
}

Dieser Ausschnitt liest den Zustand des PIR-Sensors und aktiviert oder deaktiviert den Summer und das Relais basierend auf der erkannten Bewegung. Die Verzögerung von 500 Millisekunden sorgt dafür, dass die Schleife den Sensor in einem angemessenen Intervall überprüft.

Demonstration / Was Sie erwartet

Wenn eine Bewegung erkannt wird, schaltet das an das Relais angeschlossene Licht ein und der Summer ertönt. Wird keine Bewegung erkannt, schaltet das Relais das Licht aus und der Summer bleibt stumm. Beachten Sie, dass der HC-SR505 eine eingebaute Verzögerung hat, die den Ausgang für eine kurze Zeit nach der Bewegungserkennung aktiv hält (bis zu 8 Sekunden) und nicht einstellbar ist (im Video bei 5:30).

Video-Zeitstempel

  • 00:00- Einführung in das Projekt
  • 01:30- Erläuterung der Komponenten
  • 03:15- Verdrahtungsanleitung
  • 05:30- Code-Durchgang
  • 07:00- Demonstration des Aufbaus

Bilder

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.
Sprache: 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
}

Dinge, die Sie vielleicht brauchen

Ressourcen & Referenzen

Noch keine Ressourcen vorhanden.

Dateien📁

Fritzing-Datei