Arduino Mega - Bewegungssensor
Diese Anleitung zeigt Ihnen, wie Sie den HC-SR501 Bewegungssensor und einen Arduino Mega zur Personenerkennung verwenden. Hier ist, was wir lernen werden:
- Was der HC-SR501 Bewegungssensor macht
- Wie Sie den HC-SR501 Bewegungssensor mit dem Arduino Mega verdrahten
- Wie Sie den Arduino Mega programmieren, um Daten vom HC-SR501 Bewegungssensor zu lesen
- Wie Sie den Arduino Mega und Bewegungssensor verwenden, um zu erkennen, wenn jemand eintritt

Benötigte Hardware
Oder Sie können die folgenden Kits kaufen:
| 1 | × | DIYables Sensor-Kit (30 Sensoren/Displays) | |
| 1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Über den HC-SR501 Bewegungssensor

Der HC-SR501 ist ein PIR-Sensor, der sich bewegende Personen oder Tiere erkennt. Er wird häufig für viele Aufgaben verwendet, wie das Ein- und Ausschalten von Lichtern, das Öffnen und Schließen von Türen, die Steuerung von Rolltreppen und das Entdecken von Eindringlingen.
Haben Sie schon einmal Türen gesehen, die sich von selbst öffnen und schließen, Lichter, die sich von selbst ein- und ausschalten, oder Rolltreppen, die von selbst starten? Haben Sie sich schon einmal gefragt: "Wie funktioniert das?" Wenn ja, wird diese Anleitung erklären, wie es funktioniert und Ihnen auch zeigen, wie Sie es selbst machen können. Lassen Sie uns anfangen!
Pinbelegung
Der HC-SR501 Bewegungssensor hat drei Pins.
- GND Pin: mit Masse verbinden (0 V)
- VCC Pin: mit 5V verbinden
- OUTPUT Pin: wird LOW wenn keine Bewegung da ist, HIGH wenn Bewegung erkannt wird. Verbinden Sie diesen Pin mit dem Input-Pin eines Arduino Uno R4.
Der HC-SR501 hat einen Jumper und zwei Einstellregler, um die Sensoreinstellungen zu ändern. Beginnen Sie mit der Standardeinstellung. Für weitere Informationen siehe den Abschnitt "Erweiterte Anwendungen". Erweiterte Anwendungen

Funktionsweise
Der HC-SR501 Sensor erkennt Bewegung, indem er Veränderungen im Infrarotlicht des sich bewegenden Objekts überwacht. Damit der HC-SR501 ein Objekt erkennen kann, müssen zwei Bedingungen erfüllt sein:
- Es bewegt sich oder zittert.
- Es strahlt Infrarotenergie aus.
Also:
- Wenn sich etwas bewegt, aber kein Infrarotlicht ausstrahlt (zum Beispiel ein Roboter oder ein Spielzeugauto), wird der Sensor es nicht erkennen.
- Wenn etwas Infrarotlicht ausstrahlt, aber stillsteht (zum Beispiel eine Person, die stillsteht), wird der Sensor es nicht erkennen.
Menschen und Tiere strahlen natürlich Wärme aus. Deshalb kann der Sensor erkennen, wenn sich Menschen und Tiere bewegen.
Der Status des Output-Pins:
- Wenn sich nichts im Erfassungsbereich des Sensors bewegt, ist der OUTPUT Pin LOW.
- Wenn eine Person oder ein Tier in den Erfassungsbereich des Sensors eintritt, wechselt der OUTPUT Pin von LOW zu HIGH und zeigt an, dass Bewegung erkannt wurde.
- Wenn eine Person oder ein Tier den Erfassungsbereich des Sensors verlässt, wechselt der OUTPUT Pin von HIGH zu LOW und zeigt an, dass die Bewegung beendet ist.
Das Video zeigt das Grundprinzip der Funktionsweise des Bewegungssensors. In der Praxis kann die Funktionsweise je nach Einstellungen etwas anders sein, wie im Abschnitt Erweiterte Anwendungen erklärt.
Arduino Mega - HC-SR501 Bewegungssensor
Wenn Sie einen Pin am Arduino Mega als digitalen Eingang konfigurieren, kann er erkennen, ob das Angeschlossene low oder high ist.
Verbinden Sie einen Pin am Arduino Mega mit dem OUTPUT Pin des HC-SR501 Sensors. Verwenden Sie dann einfachen Arduino Code, um den Wert dieses Pins zu lesen und Bewegung zu erkennen.
Schaltplan

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Anfangseinstellung
| Zeitverzögerung Einsteller | Vollständig gegen den Uhrzeigersinn einschrauben. |
| Erfassungsbereich Einsteller | Vollständig im Uhrzeigersinn einschrauben. |
| Wiederholungsauslöser Wähler | Jumper wie im Bild gezeigt platzieren. |

Wie Sie für den Bewegungssensor programmieren
- Konfigurieren Sie einen Arduino Mega Pin als digitalen Eingang mit der pinMode() Funktion.
- Verwenden Sie die digitalRead() Funktion, um zu sehen, ob der OUTPUT Pin des Sensors high oder low ist.
- Erkennen Sie, wenn Bewegung beginnt (der Pin wechselt von low zu high).
- Erkennen Sie, wenn keine Bewegung mehr da ist (der Pin wechselt von HIGH zu LOW).
Arduino Mega Code
Schnelle Schritte
Befolgen Sie diese Schritte nacheinander:
- Verbinden Sie die Teile wie im Schaltplan gezeigt.
- Verbinden Sie das Arduino Mega Board mit Ihrem Computer über ein USB-Kabel.
- Öffnen Sie die Arduino IDE auf Ihrem Computer.
- Wählen Sie das richtige Board: Arduino Mega, und wählen Sie den COM-Port.
- Kopieren Sie den obigen Code und öffnen Sie ihn in der Arduino IDE.
- Drücken Sie den Upload Button, um den Code zum Arduino Mega zu senden.
- Öffnen Sie den Serial Monitor.
- Bewegen Sie Ihre Hand vor dem Sensor.
- Überprüfen Sie die Ausgabe im Serial 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.
Erweiterte Anwendungen
Wir können die Sensoreinstellungen mit einem Jumper und zwei Reglern anpassen, wie oben beschrieben.
Erfassungsbereich Einsteller
Dieser Regler lässt Sie ändern, wie weit er Objekte erkennen kann (etwa 3 bis 7 Meter).
- Wenn er ganz nach rechts gedreht wird, kann er bis zu etwa 3 Meter erkennen.
- Wenn er ganz nach links gedreht wird, kann er bis zu etwa 7 Meter erkennen.

Wir können das Potentiometer einstellen, um den Bereich zwischen 3 und 7 Metern zu setzen.
Zeitverzögerung Einsteller
Dieser Regler stellt die Verzögerungszeit ein.
- Drehen Sie ihn ganz nach rechts, und die Verzögerung beträgt etwa 5 Minuten.
- Drehen Sie ihn ganz nach links, und die Verzögerung beträgt etwa 3 Sekunden.
Als nächstes erklären wir, was eine Zeitverzögerung ist und wie sie mit dem Wiederholungsauslöser funktioniert.

Wiederholungsauslöser Wähler
Dieser Schalter lässt Sie wählen, wie der Auslöser funktioniert: einmaliger Auslöser oder wiederholender Auslöser.

Wir nennen die Zeitverzögerungseinstellung time_delay (Sie ändern sie mit dem Zeitverzögerung Einsteller). Stellen Sie sich vor, Sie bewegen sich lange Zeit innerhalb des Erfassungsbereichs des Sensors. Das ist motion_time, was viel länger ist als time_delay.
- Im Einzel-Modus geht der OUTPUT Pin mehrmals an und aus. Er bleibt für eine Zeit gleich time_delay an und bleibt für feste 3 Sekunden aus.

- Der OUTPUT Pin bleibt HIGH für die Bewegungszeit plus die Verzögerung.

Testen
Lassen Sie uns die Auslösermodi testen. Drehen Sie den Verzögerungsregler ganz nach links, um die Verzögerung auf 3 Sekunden zu setzen.
- Einzel-Auslöser Modus:
- Setzen Sie den Jumper auf Einzel-Auslöser Modus.
- Bewegen Sie Ihre Hand 10 Sekunden lang vor dem Sensor.
- Nehmen Sie Ihre Hand vom Sensor weg.
- Warten Sie 3 Sekunden, dann überprüfen Sie den Serial Monitor, um die Ausgabe zu sehen.
- Wiederholbarer Auslöser Modus:
- Setzen Sie den Jumper auf wiederholbaren Auslöser Modus.
- Halten Sie Ihre Hand etwa 10 Sekunden lang vor dem Sensor.
- Entfernen Sie Ihre Hand vom Sensor.
- Nach etwa 3 Sekunden überprüfen Sie den Serial Monitor, um die Ausgabe zu sehen.
Im Einzel-Modus schaltet sich der Sensor zwei- oder dreimal ein. Im wiederholbaren Auslöser Modus schaltet er sich nur einmal ein.
※ Notiz:
Während der LOW-Periode (3 Sekunden) kann der Sensor keine Bewegung erkennen. Das bedeutet, der Sensor ist während dieser Zeit nicht aktiv, aber es verursacht normalerweise keine Probleme.
Wir empfehlen die Verwendung des wiederholbaren Auslöser Modus.
In der praktischen Anwendung:
- Geräte oder Maschinen schalten sich oft ein, wenn jemand in der Nähe ist.
- Sie schalten sich nicht sofort aus, wenn die Person geht; sie schalten sich nach einer kurzen Verzögerung aus.