Verwendung eines HC-SR501-Bewegungssensors mit einem Relais und Arduino-Code

Verwendung eines HC-SR501-Bewegungssensors mit einem Relais und Arduino-Code

In diesem Tutorial werden wir erkunden, wie man den HC-SR501 Bewegungssensor zusammen mit einem Relais verwendet, um eine AC-Birne oder eine andere Art von Last mit einem Arduino zu steuern. Der HC-SR501 ist ein Infrarot-Bewegungssensor, der Bewegungen bis zu 7 Meter entfernt erkennen kann und sich daher ideal für verschiedene Anwendungen wie Sicherheitssysteme oder automatische Beleuchtungssysteme eignet. Mit diesem Sensor und einem Relais können Sie ein Projekt erstellen, das ein Licht einschaltet, wenn eine Bewegung erkannt wird.

Wir werden eine Schritt-für-Schritt-Anleitung zur Hardwareeinrichtung, zu den Verdrahtungsanweisungen und zum Arduino-Code bereitstellen, der erforderlich ist, um diese Funktionalität zu erreichen. Für ein klareres Verständnis des Prozesses sollten Sie sich das entsprechende Video ansehen (im Video bei 00:00).

Hardware erklärt

Die Hauptkomponenten dieses Projekts umfassen den HC-SR501 Bewegungssensor, ein Relaismodul und ein Arduino-Board. Der HC-SR501-Sensor hat drei Pins: VCC, GND und OUT. Der VCC-Pin wird mit einer Stromquelle (5V) verbunden, der GND-Pin wird mit der Erde verbunden und der OUT-Pin sendet ein Signal an das Arduino, wenn Bewegung erkannt wird.

Das Relaismodul fungiert als Schalter, der Hochspannungsgeräte steuern kann. Es hat drei Hauptanschlüsse: COM (gemeinsam), NO (normalerweise geöffnet) und NC (normalerweise geschlossen). In diesem Setup verwenden wir den NO-Anschluss, der mit der Last verbunden wird, wenn das Relais aktiviert ist. Dies ermöglicht es dem Arduino, das Relais basierend auf dem vom Bewegungssensor empfangenen Signal zu steuern.

Datenblattdetails

HerstellerHC-SR501
TeilenummerHC-SR501
Logik/IO-Spannung5 V
Versorgungsspannung5-20 V
Stromverbrauch65 mA
Erkennungswinkel120 Grad
Erkennungsdistanz3-7 m
Betriebstemperatur-15 bis 70 °C
AusgabetypDigital
PaketModul

  • Sorgen Sie für eine ordnungsgemäße Stromversorgung (5-20 V) für den Sensor.
  • Stellen Sie den Empfindlichkeits-Potentiometer für einen optimalen Erkennungsbereich ein.
  • Verwenden Sie den NO-Pin des Relais, um die Last effektiv zu steuern.
  • Seien Sie vorsichtig mit der Stromstärke des Relais (max. 10 A).
  • Testen Sie den Erkennungsbereich des Bewegungssensors vor der endgültigen Installation.
  • Berücksichtigen Sie die Wärmeableitung, wenn Sie das Relais für hohe Lasten verwenden.

Verdrahtungsanweisungen

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

Um den HC-SR501 Bewegungssensor und das Relais mit dem Arduino zu verdrahten, beginnen Sie damit, den VCC-Pin des Bewegungssensors mit dem 5V-Pin des Arduino zu verbinden. Verbinden Sie als Nächstes den GND-Pin des Sensors mit einem der GND-Pins des Arduino. Der OUT-Pin des Bewegungssensors sollte mit dem digitalen Pin 2 des Arduino verbunden werden.

Für das Relaismodul verbinden Sie den VCC-Pin mit dem 5V-Pin des Arduinos und den GND-Pin mit dem Boden. Der Eingangspool (häufig mit IN oder ähnlichem beschriftet) des Relais sollte mit dem digitalen Pin 4 des Arduinos verbunden werden. Überprüfen Sie unbedingt die Orientierung des Relais, um sicherzustellen, dass es für dieses Setup auf normalerweise offen (NO) eingestellt ist. Schließen Sie schließlich die Last (z.B. eine AC-Glühbirne) gemäß den Spezifikationen des Relais an das Relais an und stellen Sie sicher, dass die Verbindungen sicher sind.

Codebeispiele und Walkthrough

Im Arduino-Code definieren wir Konstanten für die Sensor- und Relaisanschlüsse. Der Sensoranschluss ist aufSENSOR_PIN, der dem digitalen Pin 2 zugewiesen ist, und der Relais-Pin ist aufRELAY_PIN, zugewiesen an digitalen Pin 4. Diese Konfiguration ermöglicht es uns, den Ausgang des Sensors zu lesen und das Relais entsprechend zu steuern.

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

In dersetup()Wir initialisieren den seriellen Monitor zur Fehlersuche und setzen die Pinmodi für die Sensor- und Relais-Pins. Dies stellt sicher, dass der Arduino weiß, welche Pins Eingänge und Ausgänge sind.

void setup() {
  Serial.begin(9600); // setup Serial Monitor to display information
  pinMode(SENSOR_PIN, INPUT); // Define SENSOR_PIN as Input from sensor
  pinMode(RELAY_PIN, OUTPUT); // Define RELAY_PIN as OUTPUT for relay
}

Im derloop()Wir überprüfen kontinuierlich den Zustand des Bewegungssensors. Wenn Bewegung erkannt wird, drucken wir eine Nachricht auf dem seriellen Monitor aus und schalten das Relais ein, indem wir es auf niedrig setzen. Wenn keine Bewegung erkannt wird, drucken wir eine andere Nachricht aus und schalten das Relais aus, indem wir es auf hoch setzen.

void loop() {
  int motion = digitalRead(SENSOR_PIN); // read the sensor pin
  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);
}

Demonstration / Was zu erwarten ist

Wenn der Bewegungssensor Bewegung erkennt, wird das Relais aktiviert, wodurch Strom an die angeschlossene Last, wie z. B. eine AC-Glühbirne, fließen kann. Sie sollten sehen, dass die Glühbirne sofort bei Bewegungserkennung angeht. Wenn der Sensor keine Bewegung erkennt, bleibt die Glühbirne aus. Beachten Sie, dass die Empfindlichkeitseinstellungen des Sensors seinen Erkennungsbereich beeinflussen, sodass Anpassungen für eine optimale Leistung erforderlich sein können (im Video bei 05:00).

Häufige Fallen sind falsche Verdrahtung oder das Überschreiten der Stromgrenzen des Relais, was zu einem Ausfall führen kann. Stellen Sie sicher, dass alle Verbindungen sicher sind, und testen Sie die Einrichtung in einer kontrollierten Umgebung vor der endgültigen Nutzung.

Video-Zeitstempel

  • 00:00 Start
  • 00:35 Hardware erklärt
  • 04:35 Relaisleistung
  • 06:00 Verdrahtung erklärt
  • 07:53 Arduino-Code erklärt
  • 09:48 Demonstration dieses Projekts

Bilder

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
Sprache: C++
Kopiert!

Ressourcen & Referenzen

Noch keine Ressourcen vorhanden.

Dateien📁

Keine Dateien verfügbar.