Ingenieure von Morgen Robotik Kinder
Intuitiver Einstieg Arduino programmieren
Für Tüftler Elektrobaukästen
Exploratives Lernen Raspberry Pi

Arduino Bewegungsmelder – Tutorial in 4 Schritten

Veröffentlicht: . Geändert: .
Arduino Bewegungsmelder – Tutorial

Mit dem Arduino Bewegungsmelder kannst Du Dein Zuhause noch sicherer machen. Willst Du zum Beispiel wissen, ob Deine Schwester wieder heimlich in Dein Zimmer geht? Mit unserem einfachen Tutorial kannst Du eine coole Alarmanlage für Deine eigenen vier Wände basteln und sie auf frischer Tat ertappen. In der Rubrik Arduino stellen wir Dir übrigens viele weitere spannende Projekte vor!

Arduino Bewegungsmelder: Infrarotstrahlung erfassen

Aber wie funktioniert der Arduino Bewegungsmelder eigentlich? Schauen wir uns das doch einmal genauer an: Jeder Körper, der eine Temperatur besitzt, strahlt Wärme ab. Dafür muss man nicht einmal Fieber haben, die normale Körpertemperatur reicht völlig aus. Diese Wärmestrahlung bezeichnet man zudem als Infrarotstrahlung. Sie ist zwar für das menschliche Auge unsichtbar, aber man kann sie trotzdem mit einem Infrarot-Sensor erfassen. Indes kann man mit diesem Sensor, einem Arduino und einer LED einen tollen Bewegungsmelder erstellen!

Wie das geht, zeigen wir Dir jetzt in 4 einfachen Schritten: Dabei werden wir sowohl einige Bauteile zusammenfügen als auch etwas Code schreiben.

1. Erforderliche Bauteile

Für unseren Arduino Bewegungsmelder müssen wir folgende Bauteile bereitlegen:

  • ein Arduino UNO
  • einen Bewegungsmelder HC-SR501
  • einen 220Ω-Widerstand
  • eine LED
  • ein Breadboard & diverse Verbindungskabel

Abbildung 1 zeigt Dir, ob Du die richtigen Bauteile zusammengestellt hast:

Arduino Bewegungsmelder: Alle Bauteile
Abb. 1: Hier siehst Du die Bauteile für den Arduino Bewegungsmelder

Der hier verwendete Infrarotsensor HC-SR501 hat auf der Unterseite drei Pins für VCC, OUT und GND. Wenn Du die weiße Deckhaube abziehst, siehst Du, dass die Anschlüsse beschriftet sind. Jedes Mal, wenn der Sensor eine Bewegung erfasst, werden 5V am mittleren Pin (OUT) angelegt. Die Dauer des Ausgangssignals und die Empfindlichkeit des Sensors können bei Bedarf über die beiden orangefarbenen Drehregler eingestellt werden.

Auch die LED ist einen genaueren Blick wert. Denn Du siehst sicherlich, dass die beiden Beine nicht gleich lang sind. Bei dem längeren Bein handelt es sich um die Anode. Sie muss mit dem Plus-Pol verbunden werden. Das kürzere Bein, die Kathode, wird hingegen mit dem Minuspol konnektiert.

Der verwendete Widerstand hat Farbringe in der Reihenfolge rot, rot und braun. Rot steht für den Wert zwei und der braune Ring stellt einen Multiplikator von 10 dar. Somit ergeben sich 22 x 10 = 220 Ohm. Der vierte Ring gibt die Toleranz an, die für unser Projekt jedoch nicht wichtig ist. Eine kurze Suche im Internet liefert Dir mehrere Rechner, mit denen Du den Widerstandswert ermitteln kannst. Um ganz sicherzugehen, kannst Du den Widerstand außerdem mit einem Messgerät prüfen.

2. Aufbau der Schaltung

Unsere Schaltung können wir ohne Lötkolben auf einem Steckbrett zusammenstecken. Die folgende Abbildung zeigt den Aufbau:

Arduino Bewegungsmelder – Schaltungsaufbau
Abb. 2: So ist die Schaltung unseres Arduino Bewegungsmelders aufgebaut

Der Bewegungsmelder wird mit den Pins 5V und GND des Arduinos verbunden (rotes und schwarzes Kabel). Der mittlere Pin des Bewegungsmelders wird an einen schaltbaren Eingang (hier PIN 7) des Arduinos angeschlossen (gelbes Kabel). Wird eine Bewegung erfasst, werden hier 5 Volt angelegt, auf die dann im Code reagiert wird.

Bei Pin 5 des Arduinos handelt es sich um einen schaltbaren Digital-Pin, auf den mit unserem Code eine Spannung von 5 Volt angelegt werden kann. Wir verbinden diesen Pin mit dem Pluspol der LED (das ist die Seite mit dem längeren Bein). Diese Verbindung stellen wir mit dem blauen Kabel her.

Den Minuspol der LED (die Kathode) verbinden wir hingegen mit einem 220Ω-Vorwiderstand. Wir erinnern uns: Die LED darf nicht direkt an die Spannungsversorgung angeschlossen werden. Deshalb begrenzt der Vorwiderstand den Strom, der durch die LED fließt. Die andere Seite des Widerstands wird durch ein schwarzes Kabel mit einem GND-Pin des Arduinos verbunden.

Noch eine wichtige Information zum Breadboard: Zwischen den Kontaktlöchern in der Mitte gibt es in vertikaler Richtung eine Verbindung. Das blaue Kabel ist also mit der LED konnektiert, obwohl die Löcher nicht genau nebeneinanderliegen. Die folgende Darstellung zeigt den Aufbau noch mal deutlicher:

Aufbau der Steckplatine
Abb. 3: Eine Zeichnung unserer Schaltung

3. Das Arduino an den Bewegungsmelder anschließen

Zum Coden wird hier die Entwicklungsumgebung verwendet, die man auf der Arduino-Seite für Windows, Mac und Linux herunterladen kann. Die Installation ist nicht weiter schwierig, denn unter Windows wird die Installation durch einen Assistenten begleitet. Auf dem Mac wird die geladene Software einfach durch einen Doppelklick ausgeführt.

Nach dem Start der Entwicklungsumgebung, auch IDE genannt, musst Du als erstes den Port auswählen, über den der Rechner mit dem Arduino verbunden ist. Du findest diese Einstellung unter Werkzeuge > Port.

Den richtigen Port auswählen
Abb. 4: Den Port auswählen

Ob alles geklappt hat, erkennst Du daran, dass Dir unter Werkzeuge > Boardinformationen holen ein paar Daten zu Deinem Arduino angezeigt werden. Welche anderen Arduino Boards es sonst noch gibt, erfährst Du übrigens in unserem Wissensblog.

4. Der Code für unser Projekt

Bevor wir anfangen, sollten wir noch ein paar Begriffe kennenlernen: Ein Skript, das in der Arduino IDE verfasst wurde, wird auch Sketch genannt. In der Entwicklungsumgebung ist bereits ein leerer Sketch geöffnet. Er besteht aus den beiden Routinen setup() und loop(), welche Kommentare enthalten:

Arduino Bewegungsmelder: Code
Abb. 5: Den Code für unseren Arduino Bewegungsmelder erstellen

In beide Routinen kannst Du Deinen eigenen Code in die geschweiften Klammern packen. Die vorhandenen Kommentare kannst Du löschen. Der Code innerhalb von setup() wird einmalig beim Start ausgeführt, hier lassen sich beispielsweise Variablen initialisieren. Der Code in loop() wird hingegen wieder und wieder in einer Endlosschleife durchlaufen. Im Folgenden ist der Code für die Anbindung des Arduino Bewegungsmelders wiedergegeben:

int LED = 5;
int MOTION = 7;
int STATE = 0;

void setup()
{
  pinMode(LED, OUTPUT);
  pinMode(MOTION, INPUT);
}

void loop()
{
  STATE = digitalRead(MOTION);
  if (STATE == HIGH)
  {
    digitalWrite(LED, HIGH);
    delay(5000);
    digitalWrite(LED, LOW);
  }
  else
  {
    digitalWrite(LED, LOW);
  }
}

Wir beginnen unsere Arbeit mit der Definition einiger Konstanten (also unveränderlicher Größen). Damit sparen wir uns nämlich Arbeit, weil wir die Zahlenwerte später an nur einer einzigen Stelle ändern müssen. Im weiteren Verlauf werden die Konstanten dann anstelle von Zahlen verwendet. Die Konstante LED ist die Nummer des Pins, an den das blaue Kabel angeschlossen wurde (also 5). MOTION steht für PIN 7, das ist der Anschluss, an den der Bewegungsmelder jede Regung meldet. In der setup()-Funktion wird der LED-Pin als Ausgang und der MOTION-Pin als Eingang festgelegt.

Dann ist die Loop-Routine an der Reihe. Hier wird zunächst der Zustand des Bewegungsmelders eingelesen. Wenn eine Bewegung erfasst wurde, liegt eine Spannung von 5 Volt an, und die Methode digitalRead() liefert HIGH zurück. In diesem Fall wird der LED-PIN unter Strom gesetzt, damit die LED leuchtet. Nach 5000 Millisekunden wird die Spannung wieder weggenommen.

Nachdem Du den Code abgetippt oder kopiert hast, kann er überprüft werden. Das machst Du, indem Du ein Häkchen unter dem Menü der IDE setzt. Anschließend wirst Du nach einem Speicherort gefragt. Wenn alles korrekt ist, kannst Du den Sketch danach mit dem Pfeil-Button auf den Arduino übertragen und ausführen.

Wenn Du nun eine Hand vor den Arduino Bewegungsmelder hältst, leuchtet die LED ein paar Sekunden. Schaffst Du es, den Sensor auszutricksen? Vielleicht klappt es, wenn Du Deine Hand mit Alufolie umwickelst? Du kannst es auch mit einer sehr langsamen Bewegung versuchen.

Wir hoffen, Du hattest viel Spaß bei unserem Tutorial und Dein brandneuer Bewegungsmelder funktioniert einwandfrei. Solltest Du noch offene Fragen haben, dann schau doch mal in einem unserer Kurse vorbei. Wenn Du Lust hast, Dich an ein neues Projekt zu wagen, dann lies Dir einfach den Artikel zum Arduino Pro Micro durch.

FAQs zum Bewegungsmelder mit Arduino

Was kann ich tun, wenn mein Arduino Bewegungsmelder nichts erfasst?

Das kann mehrere Gründe haben. Kontrolliere die Schaltung noch mal genau. Wenn alles korrekt ist, drehe vorsichtig an den beiden Stellschrauben für die Empfindlichkeit und Dauer.

Muss ich beim Bau des Bewegungsmelders darauf achten, wie rum ich den Widerstand platziere?

Nein, die Richtung ist vollkommen egal. Normale Widerstände haben keine Richtung. Beim Ablesen der Farbcodes musst Du jedoch links beginnen.

Woher weiß ich denn, welche Arduino-Pins ich für den Bewegungsmelder benötige?

Die Zahlen stehen klein auf dem Board neben den Pins. Die Belegung findet man aber auch im Internet mit einer Bildersuche nach Arduino Pinout. Hilfreiche Tipps zum Surfen im Internet gibt es übrigens in unserem Computerkurs.

Ist es egal, wie rum ich die Diode in den Bewegungsmelder einbaue?

Nein! Leuchtdioden sind Bauteile, die den Strom in eine Richtung fließen lassen und in der anderen Richtung blockieren. Deshalb musst Du das längere Bein an den Pluspol anschließen.

Muss ich für den Bewegungsmelder die Arduino IDE verwenden?

Nein, es gibt einige Alternativen. Allerdings ist die Arduino-IDE der Standard und Du solltest auf jeden Fall erst mal damit beginnen.

Anderen hat auch das noch gefallen