Arduino UNO R4 - Bewegungssensor
Dieses Tutorial zeigt Ihnen, wie Sie den HC-SR501-Bewegungssensor und den Arduino UNO R4 verwenden, um einen Menschen zu erkennen. Im Detail werden wir lernen:
- Wie der HC-SR501-Bewegungssensor funktioniert
- Wie man den HC-SR501-Bewegungssensor an den Arduino UNO R4 anschließt
- Wie man den Arduino UNO R4 programmiert, um Informationen vom HC-SR501-Bewegungssensor auszulesen
- Wie man den Arduino UNO R4 und den Bewegungssensor verwendet, um das Betreten durch Personen zu erkennen

Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
1 | × | DIYables STEM V4 IoT Starter-Kit (Arduino enthalten) | |
1 | × | DIYables Sensor-Kit (30 Sensoren/Displays) | |
1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Über HC-SR501 Bewegungsmelder

Der HC-SR501 PIR-Sensor erkennt menschliche oder tierische Bewegungen. Er wird häufig in verschiedenen Anwendungen eingesetzt, zum Beispiel beim Ein- und Ausschalten von Lichtern, beim Öffnen und Schließen von Türen, beim Betreiben von Rolltreppen und beim Erkennen von Eindringlingen.
Wenn Sie zu Orten gehen, an denen sich Türen von selbst öffnen und schließen, an denen sich Lichter automatisch ein- und ausschalten oder an denen Rolltreppen von selbst starten, haben Sie sich jemals gefragt: „Wie passiert das?“ Wenn ja, wird Ihnen diese Anleitung nicht nur erklären, wie es funktioniert, sondern auch zeigen, wie Sie es selbst nachbauen können. Fangen wir an!
Pinbelegung
Der HC-SR501-Bewegungssensor kommt mit drei Pins:
- GND-Pin: mit GND (0 V) verbinden
- VCC-Pin: mit VCC (5 V) verbinden
- OUTPUT-Pin: sendet LOW, wenn keine Bewegung vorliegt, HIGH bei Bewegung. Schließen Sie diesen Pin an den Eingangspin des Arduino UNN R4 an.
Der HC-SR501 enthält einen Jumper und zwei Potentiometer, die bei der Einstellung des Sensors helfen. Beginnen Sie mit der Standardeinstellung. Weitere Informationen finden Sie im Abschnitt Fortgeschrittene Anwendungen. Fortgeschrittene Anwendungen

Wie es funktioniert
Der HC-SR501-Sensor erkennt Bewegungen, indem er Veränderungen des infraroten Lichts feststellt, das von dem sich bewegenden Objekt ausgeht. Damit der HC-SR501-Sensor ein Objekt erkennen kann, muss er zwei Bedingungen erfüllen:
- Zittert oder bewegt sich
- Strahlt Infrarotstrahlung aus
Deshalb:
- Wenn sich ein Objekt bewegt, ohne Infrarotstrahlen abzugeben (wie ein Roboter oder ein Spielzeugauto), wird der Sensor es nicht erkennen.
- Wenn ein Objekt Infrarotstrahlen abgibt, sich aber nicht bewegt (wie eine Person, die stillsteht), wird der Sensor es nicht erkennen.
Menschen und Tiere geben natürlich Infrarot ab. Dadurch kann der Sensor erkennen, wenn Menschen und Tiere sich bewegen.
Der Zustand des OUTPUT-Pins:
- Wenn sich im Erfassungsbereich des Sensors weder eine Person noch ein Tier bewegt, ist der Ausgangspin des Sensors LOW.
- Wenn eine Person oder ein Tier den Erfassungsbereich des Sensors betritt, ändert sich der Ausgangspin von LOW zu HIGH, was auf eine Bewegungserkennung hinweist.
- Wenn sich eine Person oder ein Tier aus dem Erfassungsbereich des Sensors entfernt, ändert sich der Ausgangspin von HIGH zu LOW, was das Ende der Bewegung anzeigt.
Das Video zeigt die Grundidee dahinter, wie der Bewegungsmelder funktioniert. In der Praxis kann die Funktionsweise je nach Einstellung leicht variieren, wie im Abschnitt „Fortgeschrittene Anwendungen“ erläutert.
Arduino UNO R4 - HC-SR501 Bewegungsmelder
Wenn Sie einen Pin am Arduino UNO R4 als digitalen Eingang konfigurieren, kann er erkennen, ob das angeschlossene Bauteil sich in einem LOW- oder HIGH-Zustand befindet.
Verbinde den Pin des Arduino UNO R4 mit dem OUTPUT-Pin des HC-SR501-Sensors. Verwende dann den Arduino UNO R4-Code, um den Wert des OUTPUT-Pins auszulesen, um Bewegung zu erkennen.
Verdrahtungsdiagramm

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Siehe Der beste Weg, den Arduino Uno R4 und andere Komponenten mit Strom zu versorgen.
Ersteinrichtung
Time Delay Adjuster | Screw it in anti-clockwise direction fully. |
Detection Range Adjuster | Screw it in clockwise direction fully. |
Repeat Trigger Selector | Put jumper as shown on the image. |

So programmieren Sie einen Bewegungsmelder
- Setzen Sie einen Pin des Arduino UNO R4 in den digitalen Eingangsmodus, indem Sie die pinMode() Funktion verwenden.
- Verwenden Sie die Funktion digitalRead(), um den Status des OUTPUT-Pins des Sensors zu überprüfen.
- Bewegung erkennen, wenn sie beginnt (der Pin wechselt den Zustand von LOW zu HIGH).
- Feststellen, wann die Bewegung stoppt (der Pinstatus ändert sich von HIGH zu LOW).
Arduino UNO R4 Code
Schnelle Schritte
Folgen Sie diesen Anweisungen Schritt für Schritt:
- Wenn dies das erste Mal ist, dass Sie den Arduino Uno R4 WiFi/Minima verwenden, lesen Sie das Tutorial zur Einrichtung der Umgebung für Arduino Uno R4 WiFi/Minima in der Arduino IDE Einrichtung der Umgebung für Arduino Uno R4 WiFi/Minima in der Arduino IDE.
- Verbinden Sie die Bauteile gemäß dem bereitgestellten Diagramm.
- Schließen Sie das Arduino UNO R4-Board über ein USB-Kabel an Ihren Computer an.
- Starten Sie die Arduino IDE auf Ihrem Computer.
- Wählen Sie das passende Arduino Uno R4-Board (z. B. Arduino Uno R4 WiFi) und den COM-Port aus.
- Kopieren Sie den obigen Code und öffnen Sie ihn mit der Arduino IDE.
- Drücken Sie in der Arduino IDE die Schaltfläche Hochladen, um den Code auf Arduino UNO R4 hochzuladen.
- Öffnen Sie den seriellen Monitor.
- Bewegen Sie Ihre Hand vor dem Sensor.
- Überprüfen Sie die Ausgabe im seriellen Monitor.
Video Tutorial
Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.
Fortgeschrittene Anwendungen
Wir können die Einstellungen des Sensors mit einem Jumper und zwei Potentiometern anpassen, wie oben beschrieben.
Detektionsreichweite-Einsteller
Dieses Potentiometer stellt den Erkennungsabstand ein (etwa 3 bis 7 Meter).
- Wenn er vollständig im Uhrzeigersinn gedreht ist, beträgt der Erfassungsbereich etwa 3 Meter.
- Wenn er vollständig gegen den Uhrzeigersinn gedreht ist, beträgt der Erfassungsbereich etwa 7 Meter.

Wir können die Potentiometer-Einstellungen so ändern, dass der gewünschte Bereich zwischen 3 Metern und 7 Metern liegt.
Zeitverzögerungsregler
Dieses Potentiometer stellt die Verzögerungszeit ein.
- Wenn Sie es ganz im Uhrzeigersinn drehen, beträgt die Zeitverzögerung etwa 5 Minuten.
- Wenn Sie es ganz gegen den Uhrzeigersinn drehen, beträgt die Zeitverzögerung etwa 3 Sekunden.
Als Nächstes erklären wir, was eine Zeitverzögerung bedeutet und wie sie sich auf den Wiederholungs-Auslöser bezieht.

Wiederholungs-Auslöser-Auswahl
Dieser Jumper ermöglicht es Ihnen, einen Trigger-Modus auszuwählen: Einzeltrigger oder wiederholbarer Trigger.

Wir bezeichnen die Zeitverzögerungseinstellung (durch den Time Delay Adjuster angepasst) als time_delay. Stellen Sie sich vor, Sie bewegen sich weiterhin innerhalb des Detektionsbereichs des Sensors über eine beträchtliche Zeit, die wir motion_time nennen werden (viel länger als time_delay).
- Im Einzel-Auslöser-Modus wechselt der OUTPUT-Pin mehrmals zwischen LOW und HIGH. Er bleibt HIGH für eine Periode, die der Verzögerungszeit 'time_delay' entspricht, und LOW für eine feste Zeit von 3 Sekunden.

- Der Ausgangspin bleibt während der Bewegungszeit zuzüglich der Zeitverzögerung HIGH.

Tests
Lassen Sie uns die Trigger-Modi testen. Drehen Sie den Verzögerungsregler ganz nach links, um die Verzögerungszeit auf 3 Sekunden einzustellen.
- Einzel-Auslöser-Modus:
- Setzen Sie den Jumper, um den Einzel-Auslöser-Modus auszuwählen.
- Bewegen Sie Ihre Hand kontinuierlich vor dem Sensor für 10 Sekunden.
- Entfernen Sie Ihre Hand aus dem Erfassungsbereich des Sensors.
- Warten Sie 3 Sekunden; prüfen Sie anschließend den seriellen Monitor auf die Ausgabe, wie gezeigt.
- Wiederholbarer Trigger-Modus:
- Setzen Sie den Jumper ein, um den Wiederholbaren Trigger-Modus zu aktivieren.
- Bewegen Sie Ihre Hand ungefähr 10 Sekunden lang kontinuierlich vor dem Sensor.
- Entfernen Sie Ihre Hand aus dem Bereich des Sensors.
- Nachdem Sie 3 Sekunden gewartet haben, überprüfen Sie den seriellen Monitor, um die Ausgabe zu sehen.
- Geräte oder Maschinen werden oft eingeschaltet, wenn in der Nähe eine Person erkannt wird.
- Geräte oder Maschinen werden nicht sofort ausgeschaltet, sobald die Person den Bereich verlässt. Sie werden nach einer bestimmten Verzögerung ausgeschaltet.
Im Einzeltrigger-Modus aktiviert der Sensor zweimal oder dreimal. Im wiederholbaren Trigger-Modus aktiviert er nur einmal.
※ Notiz:
Während der LOW-Periode, die 3 Sekunden dauert, kann der Sensor keine Bewegung erkennen. Das bedeutet, dass der Sensor in dieser Zeit inaktiv ist, aber das verursacht in der Regel keine Probleme.
Es wird empfohlen, den wiederholbaren Auslösemodus zu verwenden.
In praktischen Anwendungen: