Bemerkung
Hallo und willkommen in der SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasten-Gemeinschaft auf Facebook! Tauchen Sie tiefer ein in die Welt von Raspberry Pi, Arduino und ESP32 mit anderen Enthusiasten.
Warum beitreten?
Expertenunterstützung: Lösen Sie Nachverkaufsprobleme und technische Herausforderungen mit Hilfe unserer Gemeinschaft und unseres Teams.
Lernen & Teilen: Tauschen Sie Tipps und Anleitungen aus, um Ihre Fähigkeiten zu verbessern.
Exklusive Vorschauen: Erhalten Sie frühzeitigen Zugang zu neuen Produktankündigungen und exklusiven Einblicken.
Spezialrabatte: Genießen Sie exklusive Rabatte auf unsere neuesten Produkte.
Festliche Aktionen und Gewinnspiele: Nehmen Sie an Gewinnspielen und Feiertagsaktionen teil.
👉 Sind Sie bereit, mit uns zu erkunden und zu erschaffen? Klicken Sie auf [hier] und treten Sie heute bei!
PIR-Bewegungsmelder-Modul (HC-SR501)
Einleitung
Der Passive Infrarot (PIR) Bewegungsmelder ist ein Sensor zur Erfassung von Bewegungen. Er findet häufig Einsatz in Sicherheitssystemen und automatischen Beleuchtungsanlagen. Der Sensor besitzt zwei Schlitze, die Infrarotstrahlung erkennen. Passiert ein Objekt, etwa eine Person, den Erfassungsbereich des Sensors, so registriert dieser eine Veränderung der Infrarotstrahlung und löst ein Ausgangssignal aus.
Funktionsprinzip
Der PIR-Sensor ist in zwei Schlitze unterteilt, die mit einem Differenzverstärker verbunden sind. Wenn ein stationäres Objekt vor dem Sensor ist, empfangen beide Schlitze dieselbe Menge an Strahlung, und der Ausgang bleibt neutral. Bewegt sich jedoch ein Objekt vor dem Sensor, nimmt einer der Schlitze mehr Strahlung auf als der andere, was zu Schwankungen im Ausgangssignal führt. Diese Veränderung der Ausgangsspannung ist ein Indikator für erkannte Bewegung.
Nach der Verkabelung des Sensormoduls erfolgt eine einminütige Initialisierung. Während dieser Zeit kann das Modul 0 bis 3-mal in Abständen ein Signal ausgeben. Danach geht das Modul in den Standby-Modus. Um Fehlbedienungen durch störende Signale zu vermeiden, sollte der Sensor von Lichtquellen und anderen Störeinflüssen ferngehalten werden. Am besten wird der Sensor in einer windgeschützten Umgebung eingesetzt, da auch Wind die Sensorik beeinträchtigen kann.
Reichweiteneinstellung
Durch Drehen des Potentiometers für die Reichweiteneinstellung im Uhrzeigersinn wird die Erfassungsreichweite erhöht, mit einem Maximalbereich von etwa 0-7 Metern. Dreht man es gegen den Uhrzeigersinn, verringert sich die Reichweite auf etwa 0-3 Meter.
Verzögerungseinstellung
Dreht man das Potentiometer für die Verzögerungseinstellung im Uhrzeigersinn, erhöht sich die Verzögerungszeit. Die maximale Verzögerungszeit kann bis zu 300 Sekunden betragen. In entgegengesetzter Richtung verringert sich die Verzögerung auf ein Minimum von 5 Sekunden.
Zwei Trigger-Modi
Durch Verwendung einer Jumperkappe können verschiedene Modi ausgewählt werden.
H: Wiederholbarer Trigger-Modus. Nach der Erfassung einer Bewegung gibt das Modul ein hohes Signal aus. Während der anschließenden Verzögerungszeit bleibt das Ausgangssignal bei erneuter Bewegungserkennung hoch.
L: Nicht wiederholbarer Trigger-Modus. Nach der Erfassung einer Bewegung gibt das Modul ein hohes Signal aus, das nach Ablauf der Verzögerungszeit automatisch auf ein niedriges Niveau zurückfällt.
Anwendungsbeispiele
Hardware-Komponenten
Arduino Uno R4 oder R3 Platine * 1
PIR-Bewegungsmelder-Modul * 1
Jumperkabel
Schaltungsaufbau
Bemerkung
Die Pin-Markierungen sind durch die Fresnel-Linse verdeckt. Zum Ansehen kann diese geöffnet werden.
Programmcode
Code-Erklärung
Einrichten des PIR-Sensor-Pins. Der Pin für den PIR-Sensor wird als Pin 2 definiert.
const int pirPin = 2; int state = 0;
Initialisierung des PIR-Sensors. In der
setup()Funktion wird der Pin des PIR-Sensors als Eingang definiert. Dadurch kann der Arduino den Status des PIR-Sensors lesen.void setup() { pinMode(pirPin, INPUT); Serial.begin(9600); }
Auslesen des PIR-Sensors und Anzeige der Ergebnisse. In der
loop()Funktion wird der Status des PIR-Sensors kontinuierlich ausgelesen.void loop() { state = digitalRead(pirPin); if (state == HIGH) { Serial.println("Somebody here!"); } else { Serial.println("Monitoring..."); delay(100); } }
Wenn der Status
HIGHist, also eine Bewegung erkannt wird, erscheint die Meldung „Somebody here!“ im seriellen Monitor. Andernfalls wird „Monitoring…“ angezeigt.
Weitere Ideen
Einbindung einer LED, die bei erkannter Bewegung aufleuchtet oder blinkt. Dies bietet eine visuelle Rückmeldung zusätzlich zur Nachricht im seriellen Monitor.
Integration eines Summers, der bei Bewegungserkennung einen Alarmton ausgibt.