Der Bewegungsmelder HC-SR505 ist baugleich mit dem HC-SR501 welchen ich bereits im Tutorial Arduino, Lektion 15: Pyroelektrischer Infrarot Motion Sensor (PIR) beschrieben habe. Nun möchte ich jedoch den „kleinen Bruder“ mir vorknöpfen.
Gleichzeitig werde ich die beiden PIR Sensoren miteinander vergleichen.
Die beiden Shields unterscheiden sich nur von den Abmaßen und der Leistung (wow) jedoch kann man den HC SR501 in der Empfindlichkeit und der Dauer des Signals einstellen.
Technische Daten
HC – SR501 | HC – SR505 | |
---|---|---|
Betriebsspannung | 4,5V bis 20V | 4,5V bis 20V |
Ruhestromaufnahme | < 50µA | < 60µA |
Abmaße | 32 mm x 24 mm | 10 mm x 23 mm |
Linsendurchmesser | 23 mm | 10 mm |
Umgebungstemperatur | -15 °C bis + 70 °C | -20 °C bis +80 °C |
Reichweite | 3 m bis 7 m (Regelbar) | 3 m |
Auslösedauer | 5sek. bis 5min. (Regelbar) | 8sek. +- 30 % |
Schaltplan
Da die beiden Sensoren über die gleichen PINs verfügen, kann man den gleichen Schaltplan (und damit auch den gleichen Quellcode) verwenden.
Quellcode
int buzzerPin = 2; //Ausgangspin für den Buzzer int inputPin = 10; // Eingangspin des PIR Sensors int pirState = LOW; //Status des PIR Sensors void setup() { pinMode(buzzerPin, OUTPUT); //Den Buzzer als Ausgang deklarieren pinMode(inputPin, INPUT); //Den PIR Sensor als Eingang deklarieren Serial.begin(9600); //Serielle kommunikation mit 9600 Baud beginnen. } void loop(){ int val = digitalRead(inputPin); //Das Eingangssignal lesen if (val == HIGH) { // Prüfen ob der Wert HIGH, also ob ein Signal anliegt //Wenn der gespeicherte Status == LOW ist, also wenn vorher kein Signal vorhanden war, //dann soll auf dem Seriellen Ausgang der Text ausgegeben werden und der PIR Status auf HIGH gesetzt werden. if (pirState == LOW) { Serial.println("Bewegung erkannt!"); pirState = HIGH; } //Wenn der gelesene Wert nicht HIGH ist, also es liegt KEIN Signal an. } else { //Wenn der PIR Status HIGH ist, also es lag ein Signal vorher an, //dann soll auf dem Seriellen Ausgang der Text ausgegeben werden und der PIR Status auf LOW gesetzt werden. if (pirState == HIGH){ Serial.println("Bewegung beendet!"); pirState = LOW; } } //Wenn der PIR Status auf HIGH ist dann soll ein Ton ausgegeben werden. //Hier könnte auch zusätzlich eine LED oder ähnliches mit angebracht werden. if(pirState == HIGH){ tone(buzzerPin,850, 500); } }
Fazit
Der kleine Bewegungssensor arbeitet auf 3 m sehr zuverlässig. Die fest eingestellten 8sek. Signaldauer kann man ggf. im Sketch programmatisch manipulieren, daher sehe ich als einzigen Minuspunkt die geringere Reichweite gegenüber dem HC-SR501. Was einen deutlichen Pluspunkt bringt ist die geringe Größe, was die verdeckte Montage deutlich einfacher gestaltet als beim HC-SR501.
Hallo Stefan,
wäre es möglich mit dir direkt zu kommunizieren, ich benötige für ein spezielleres Projekt Unterstützung.
Beste Grüße
siggy