AEQ-WEB

Arduino HC-SR501 Passive Infrared Motion Sensor
Arduino
03.07.2018

Switch language to: en Englisch

Arduino Infrarot Bewegungsmelder

Zu diesem Artikel gibt es auch ein Video auf Youtube: Arduino Alarmanlage -HC-SR501 Bewegungsmelder


Der DC-SR501 ist ein passiver Infrarot Bewegungsmelder, der sehr einfach mit dem Arduino betrieben werden kann. Der Sensor verfügt über einen digitalen Ausgang, der je nach Einstellung für eine gewisse Zeit 3,3 Volt schalten kann. Außerdem ist der Sensor relativ energiesparend und für einen großen Spannungsbereich gebaut. Mit dem Arduino wird der Wert vom Sensor verarbeitet und je nach Status wird entweder der PIN12 oder PIN13 am Arduino geschaltet. Zur Vereinfachung wurde im Beispiel eine rote und eine grüne LED verbaut. Wird eine Bewegung erkannt, schaltet sich die rote LED ein, wird keine Bewegung erkannt, leuchtet die grüne LED.


Technische Daten

Reichweite 3 bis 7 Meter
Triggerzeit ca. 5 bis 300 Sekunden
Spannung 5 bis 20 Volt
Erfassungsbereich max. 100 Grad

Wie der Sensor funktioniert

Bei diesem Sensor handelt es sich um einen pyroelektrischen Sensor (PIR-Sensor), der auf Temperaturveränderungen reagiert. Betritt ein Mensch den Raum bzw. Erfassungsbereich, so wird die Körperwärme als Veränderung der Umgebungstemperatur über den Sensor aufgenommen. Daher reagiert der Sensor auch auf Tiere, die ausreichend Körperwärme abstrahlen. Alternativ kann ein Bewegungsmelder auch mit Radarwellen oder Ultraschall realisiert werden. Es gibt auch Bewegungsmelder, die eine Kombination von zwei verschiedenen Sensoren haben. Wird eine Bewegung detektiert, so löst der Sensor aus und schaltet den digitalen Ausgang ein. Die Spannung bleibt für ca. 5 Sekunden aufrecht. Der Sensor schaltet nach einigen Sekunden aus und wieder ein, auch wenn eine Bewegung durchgehend erfasst wird. Wird im Arduino ein Timer programmiert, so kann man dieses Wechseln zwischen dem High und Low Pegel kompensieren. Wenn man sich das erste mal mit so einem Sensor befasst, ist die richtige Einstellung etwas kompliziert. Der Sensor lässt sich jedoch sehr gut justieren und funktioniert dann auch sehr zuverlässig.


Arduino Infrared Motion Sensor - Bewegungsmelder

Einstellungen & Pins

P1 Abfallzeit vom High-Level.
P2 Empfindlichkeit und Erfassungsbereich
J1 Einzel oder Mehrfach Impuls
GND Masse (0V)
OUT Digitaler Ausgang (3,3V)
VIN Stromversorgung (5V)

Arduino HC-SR501 Wiring

Arduino Code

Die Stromversorgung vom Senor erfolgt über den Arduino. Eine Library für die Software wird nicht benötigt. Der Code sieht wie folgt aus:


int ledRed = 13;    // LED on Pin 13 (RED)
int ledGreen = 12;  // LED on Pin 12 (Green)
int SensorPin = 2;  // Digital Sensor Input
int SensorValue;

void setup() {
  pinMode(ledRed, OUTPUT);
  pinMode(ledGreen, OUTPUT);
  pinMode(SensorPin, INPUT);
  digitalWrite(ledRed, LOW);
  digitalWrite(ledGreen, LOW);
}

void loop() {
  SensorValue = digitalRead(SensorPin);
  if(SensorValue == HIGH){
  digitalWrite(ledRed, HIGH);
  digitalWrite(ledGreen, LOW);
  }else{
  digitalWrite(ledRed, LOW);
  digitalWrite(ledGreen, HIGH);
  }
}


Von Alex @ AEQ-WEB 131