Arduino: Infrarotsensor in Projekte einbauen

Man braucht es nicht mehr zu sagen, dass der Arduino vielseitig einsetzbar ist. Viele Projekte können beispielsweise durch eine drahtlose Fernsteuerung erweitert werden. Dafür gibt es viele Möglichkeiten: Bluetooth, WLAN, Xbee, GSM und beispielsweise auch Infrarotempfänger, um die es in diesem Tutorial gehen soll. Infrarot ist der Funkstandart der in fast jeder TV-, HiFi- oder Garagenfernsteuerung benutzt wird. Benutzt man den Arduino mit einem Infrarotempfänger braucht man sich nicht mal eine neue Fernsteuerung kaufen, wenn man eine Fernsehfernsteuerung zu Hause rumliegen hat. Man könnte sagen, wir recyclen hier jetzt alte Fernsteuerungen.

Vorausetzungen

  • Ein beliebiges Arduinoboard (ich benutze derzeit einen Arduino Mega 2560 R1)
  • Eine Infrarotfernsteuerung
  • Einen Infrarotempfänger
  • Jumperkabel

Das wars auch schon. Hier ein Bild des Infrarotempfängers und der Fernsteuerung die ich benutze. Sie lagen einem Anfängerarduinokit von Sainsmart bei, das ich mal vor Monaten erworben habe.

20150109_171643

And now: step by step

Schritt 1: Das Verdrahten

Wie üblich, stelle ich euch hier meine fritzing-Zeichnungen zu diesem Projekt zur Verfügung:

Steckplatinenansicht
Steckplatinenansicht
Schaltplanansicht
Schaltplanansicht

Ich habe bei den Zeichnungen einfach einen IR-Sensor verwendet, der in den fritzing-Sortimenten zu finden war. Schaut bitte vorher in der Dokumentation eures Sensors nach, wie dieser zu verdrahten ist. In der Regel hat ein solcher Sensor drei Anschlüsse. Bei meinem befindet sich links der Datenpin, in der Mitte GND und rechts der 5V-Anschluss. Ihr könnt den Datenpin auch auf einen anderen Steckplatz als Pin 11 festlegen, dafür müsst ihr später bei der Programmierung einfach eine Variable ändern.

Schritt 2: Das Programmieren

Der folgende Sketch betreibt einen IR-Sensor und sendet einfache Infrarotdaten über die serielle Schnittstelle an den PC. So kann man die Hashes der Fernsteuerung auslesen, um sie später in Projekten einzubinden, sodass bei bestimmten Signalen bestimmte Aktionen folgen.

Wie ihr seht, braucht man zum Betrieb eine Library, die ihr vorher in die IDE von Arduino einbinden müsst. Die von mir benutzte Library kann man hier auf github.com herunterladen: https://github.com/shirriff/Arduino-IRremote

Schritt 3: Das Auslesen der IR-Daten

Nach dem Start des Arduinos wartet dieser auf eingehende IR-Signale, die dieser dann über die serielle Schnittstelle an den PC weiterleitet. Nehmt also nun eure Fernsteuerung in die Hände und drückt – auf den Sensor zeigend –  auf die Tasten, deren IR-Code ihr wissen wollt. Vorher müsst ihr natürlich den Serial Monitor in der IDE gestartet haben, mit der richtigen Baudrate.

Nachdem ich auf meiner Fernsteuerung auf die „Powertaste“ gedrückt habe, kann ich folgendes im Serialmonitor sehen:

Der gesuchte Code ist hier FFA25D. Dasselbe bei der Playtaste darunter ergibt:

Bzw. FF22DD als gesuchten Code für diese Taste.

Wie verwenden wir diese Informationen?

Das liegt ganz bei euch. Wie gesagt: Der Arduino ist vielseitig. Um jedoch ein Beispiel zu zeigen, um euch die Programmierung zu vereinfachen, zeige ich euch hier einfach einen erweiterten Sketch, der die build-in LED (LED 13) zum Leuchten bringt, wenn man auf Play drückt und diese Ausschaltet, wenn man auf Power drückt. Außerdem ein Highlight: Drückt man auf der Fernsteuerung eine Zahl, erleuchtet diese auf der Siebensegmentanzeige. Wie diese anggeschlossen und programmiert wurde, könnt ihr hier lesen. Empfangene Signale werden immer noch über die serielle Schnittstelle an den PC geschickt. Vorteil, selbst wenn kein PC angeschlossen ist: An dem Aufblinken der TX/RX LEDs auf dem Pin erkennt man, ob der Arduino Signale empfangen hat.

Bei Fragen: Einfach fragen! Benutzt dazu die Kommentarfunktion oder schreibt mir eine Mail.

Sketche und Library zum Download

4 Kommentare:

  1. Hallo, ich werde versuchen, den Artikel nicht nur zu lesen sonder auch zu verstehen, weil ich nicht nur einen IR tester brauche, sonder auch meine „elektronische“ Deutsche Sprache etwas zu verbessern :-))

    Viel Gluck, BE

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.