HC-SR501 PIR-Bewegungssensor mit Arduino einrichten
By Kunkune | Published: 2026-10-13
Category: Anleitungen
Schließen Sie ein HC-SR501 PIR-Modul an einen Arduino an, stellen Sie Empfindlichkeit und Verzögerung ein und beheben Sie Fehlauslösungen mit einer klaren Schritt-für-Schritt-Anleitung.
Schnellantwort
Verbinden Sie den HC-SR501 mit VCC an 5V, GND an GND und OUT mit einem digitalen Pin. Decken Sie dann die Linse ab und warten Sie 30-60 Sekunden, bis sich das Modul aufgewärmt hat, bevor Sie den Messwerten vertrauen. Stellen Sie beide Potentiometer zunächst ungefähr auf Mittelstellung, laden Sie einen einfachen digitalRead-Sketch hoch und justieren Sie erst dann Empfindlichkeit und Verzögerung, während Sie den seriellen Monitor beobachten.
Was die Pins des HC-SR501 tatsächlich tun
Das Modul hat drei Pins: VCC, OUT und GND. OUT ist ein digitales Signal, das bei erkannter Bewegung auf HIGH geht, sodass jeder digitale Arduino-Eingang funktioniert. Der Katalog listet die Ausgangsspannung als 3.3V auf, was dem Logikpegel entspricht, den das Modul an OUT ausgibt. Das ist wichtig, wenn Sie das Signal in einen Logikeingang speisen möchten, der nur 5V verträgt, oder in ein 3.3V-Board: Ein HIGH mit 3.3V wird von 3.3V-MCUs wie ESP32 oder Raspberry Pi normalerweise korrekt gelesen, aber ein klassischer 5V-Arduino-Uno behandelt alles über etwa 3V als HIGH, funktioniert also ebenfalls. Wenn Sie unsicher sind, messen Sie OUT während einer Auslösung mit einem Multimeter, anstatt zu raten.
Der HC-SR501 hat außerdem zwei Potentiometer und einen Jumper. Ein Potentiometer stellt die Empfindlichkeit (Erfassungsreichweite) ein, das andere die Verzögerung (wie lange OUT nach Bewegungsende HIGH bleibt). Der Jumper wählt zwischen wiederholbarem und nicht wiederholbarem Auslösemodus. Das Modul benötigt nach dem Einschalten eine Aufwärmphase; während dieser Zeit kann OUT HIGH sein oder umschalten. Beurteilen Sie den Sensor daher erst, wenn er sich beruhigt hat.
Stromversorgung und Verdrahtung, die Störungen vermeiden
Der HC-SR501 arbeitet am besten mit einer stabilen 5V-Versorgung. Die Stromversorgung über den 5V-Pin des Arduino ist für ein einzelnes Modul in Ordnung. Wenn Sie jedoch Relais, Motoren oder lange Kabel hinzufügen, verwenden Sie eine separate geregelte 5V-Versorgung und verbinden Sie die Massen. Eine schwache oder verrauschte Versorgung ist eine der häufigsten Ursachen für zufällige Auslösungen.
Halten Sie das Signalkabel kurz und führen Sie es nicht in der Nähe von Motor- oder Netzleitung. Wenn Sie ein langes Kabel verwenden müssen, verdrillen Sie OUT und GND miteinander oder verwenden Sie abgeschirmtes Kabel. Für einen dauerhaften Aufbau löten Sie die Verbindungen oder verwenden Sie eine Schraubklemme, anstatt lose Jumper-Kabel, die sich verschieben können.
Ein minimaler Arduino-Sketch zur Bewegungsprüfung
Beginnen Sie mit dem einfachsten möglichen Test: Lesen Sie einen digitalen Pin und geben Sie seinen Zustand aus. Verbinden Sie OUT mit Pin 2 und laden Sie dann einen Sketch hoch, der Pin 2 als INPUT setzt und digitalRead(2) mit 9600 Baud auf dem seriellen Monitor ausgibt. Winken Sie mit der Hand vor der Linse und beobachten Sie die Wertänderung. So bestätigen Sie die Verdrahtung, bevor Sie Logik hinzufügen.
Sobald die rohe Messung funktioniert, fügen Sie eine kurze Entprellung oder eine Zustandswechselprüfung hinzu, damit ein Bewegungsereignis den seriellen Ausgang nicht überflutet. Beispiel: Nur drucken, wenn sich der Wert von LOW auf HIGH ändert. Das macht das Verhalten des Verzögerungspotentiometers viel leichter beobachtbar.
Empfindlichkeit und Verzögerung einstellen, ohne Fehlauslösungen zu jagen
Drehen Sie zuerst beide Potentiometer ganz gegen den Uhrzeigersinn und erhöhen Sie dann die Empfindlichkeit langsam, bis der Sensor den gewünschten Bereich abdeckt. Mehr Empfindlichkeit ist nicht besser: Sie erfasst auch Wärmequellen, Luftströmungen und Haustiere. Das Verzögerungspotentiometer steuert, wie lange OUT nach der letzten Bewegung HIGH bleibt; stellen Sie es kurz für Ereigniszählung und länger für Beleuchtungs- oder Alarmhaltezeiten ein.
Ändern Sie immer nur eine Einstellung und warten Sie, bis sich das Modul beruhigt hat. Wenn der Ausgang dauerhaft HIGH bleibt, reduzieren Sie die Empfindlichkeit und prüfen Sie, ob die Linse nicht auf ein Fenster, eine Heizung oder einen bewegten Vorhang gerichtet ist. Wenn er nie auslöst, überprüfen Sie den Jumper-Modus und ob die Aufwärmphase vorbei ist.
Schritt-für-Schritt HC-SR501 Arduino-Setup
- Schritt 1: Pinbelegung identifizieren und Jumper setzen: Wenn Sie die Linse vor sich haben, sind die Pins normalerweise von links nach rechts VCC, OUT, GND, aber bestätigen Sie dies anhand der Markierungen auf Ihrem Board. Setzen Sie den Jumper auf nicht wiederholbaren Modus (H) für einfache Ein/Aus-Erkennung oder auf wiederholbaren Modus (L), wenn OUT während anhaltender Bewegung HIGH bleiben soll. Checkpoint: Wenn die Markierungen unklar sind, testen Sie mit einem Multimeter, bevor Sie Strom anschließen.
- Schritt 2: Strom und Signal verdrahten: Verbinden Sie VCC mit 5V, GND mit GND und OUT mit Arduino-Digitalpin 2. Halten Sie das Signalkabel kurz und fern von Motoren oder Netzkabeln. Wenn Sie ein externes Netzteil verwenden, verbinden Sie dessen Masse mit der Arduino-Masse. Häufiger Fehler: Die gemeinsame Masse vergessen, wenn Sie eine separate 5V-Versorgung verwenden.
- Schritt 3: Aufwärmphase abwarten: Schalten Sie das Modul ein und warten Sie 30-60 Sekunden, ohne sich davor zu bewegen. Der Ausgang kann in dieser Zeit umschalten; das ist normal. Stellen Sie die Potentiometer erst ein, wenn sich das Modul beruhigt hat. Checkpoint: Wenn OUT nach zwei Minuten immer noch instabil ist, prüfen Sie Versorgungsstabilität und Verdrahtung.
- Schritt 4: Minimalen Lese-Sketch hochladen: Setzen Sie Pin 2 als INPUT und geben Sie digitalRead(2) mit 9600 Baud auf dem seriellen Monitor aus. Winken Sie mit der Hand und bestätigen Sie die Wertänderung. Fügen Sie eine Zustandswechselprüfung hinzu, sodass nur Übergänge gedruckt werden. Häufiger Fehler: INPUT_PULLUP verwenden, das mit dem Modulausgang kollidiert; verwenden Sie einfaches INPUT, es sei denn, Ihr spezifisches Modul erfordert etwas anderes.
- Schritt 5: Empfindlichkeit und Verzögerung einstellen: Drehen Sie beide Potentiometer ganz gegen den Uhrzeigersinn. Erhöhen Sie die Empfindlichkeit, bis der Sensor Ihren Zielbereich zuverlässig abdeckt, und stoppen Sie dann. Stellen Sie die Verzögerung auf die kürzeste Haltezeit ein, die zu Ihrem Projekt passt. Checkpoint: Wenn Fehlauslösungen bestehen bleiben, reduzieren Sie die Empfindlichkeit und entfernen Sie Wärme- oder Luftbewegungsquellen aus dem Sichtfeld.
- Schritt 6: Endverhalten vor Ort testen: Montieren Sie den Sensor in der Höhe und im Winkel, den Sie verwenden werden, und gehen Sie dann mehrmals durch den Erfassungsbereich. Bestätigen Sie, dass OUT wie erwartet auf HIGH geht und nach der Verzögerung auf LOW fällt. Nächster Schritt: Fügen Sie im Code Entprellung oder einen Halte-Timer hinzu, wenn Sie sauberere Ereigniszählung benötigen.
Produktfakten
- HC-SR501 Bewegungssensor-Modul-Detektor PIR einstellbar: HC-SR501 Bewegungssensor-Modul-Detektor PIR einstellbar, Ausgangsspannung 3.3V. Ein Logik-HIGH mit 3.3V ist kompatibel mit 3.3V-Boards und wird von den meisten 5V-Arduino-Eingängen immer noch als HIGH gelesen, sodass Sie es in typischen Aufbauten ohne Pegelwandler mit beiden verwenden können.
- DC-DC-Abwärts-/Aufwärtswandler 4-35V auf 1.25-25V LM2596S XL6019E1 3A: DC-DC-Abwärts-/Aufwärtswandler 4-35V auf 1.25-25V LM2596S XL6019E1 3A mit einstellbarem Ausgang. Nützlich, wenn Ihr Projekt mit Batterie oder einer höheren Spannungsschiene läuft und Sie eine saubere, einstellbare 5V-Versorgung für das PIR-Modul benötigen, anstatt eine verrauschte Arduino-Schiene anzuzapfen.

