IR Fernbedienung mit Arduino auslesen: Eigene Fernsteuerung für LEDs & Relais bauen
Statt Taster und Schalter zu verdrahten, kannst du Projekte auch ganz einfach per Infrarot-Fernbedienung steuern – die gleiche Technik, die in jedem Fernseher steckt. Mit dem IR-Fernbedienungs-Kit (Empfänger + Fernbedienung) liest du in diesem Tutorial Tastencodes aus und steuerst damit LEDs sowie ein Relais drahtlos.
Wie funktioniert Infrarot-Fernsteuerung?
Eine IR-Fernbedienung sendet beim Tastendruck eine kurze Folge von Infrarot-Lichtimpulsen, die mit ca. 38 kHz moduliert sind – das unterscheidet das Nutzsignal von Störlicht wie Sonnenlicht oder Glühbirnen. Der passende IR-Empfänger (im Kit meist ein TSOP- oder VS1838B-kompatibler Baustein) demoduliert dieses Signal automatisch und gibt es als einfaches digitales An/Aus-Muster an den Mikrocontroller weiter.
Jede Taste sendet dabei einen eigenen, festen Hexadezimal-Code (z. B. 0xFF6897 für die "0"-Taste bei vielen gängigen Fernbedienungen im NEC-Protokoll). Mit der Arduino-Bibliothek IRremote musst du dich um das Timing und die Protokoll-Dekodierung nicht selbst kümmern – sie liefert dir direkt den erkannten Code, den du dann in deinem Sketch auswertest.
Was du brauchst
| Bauteil | Menge | ca. Preis | Link |
|---|---|---|---|
| IR Fernbedienung Modul Kit (Empfänger + Fernbedienung) | 1 Set | ab 2,49 € | Zum Produkt |
| UNO R3 Board | 1x | ab 4,99 € | Zum Produkt |
| 1-Kanal Relais KY-019 | 1x (für Projekt 3) | ab 1,09 € | Zum Produkt |
| 3mm LED Sortiment | 1 Box | ab 4,49 € | Zum Produkt |
| 600x Widerstände-Sortiment | 1 Set | ab 5,99 € | Zum Produkt |
| Breadboard 400 Kontakte | 1x | ab 3,49 € | Zum Produkt |
Schaltungsaufbau
| IR-Empfänger Pin | UNO R3 Pin | Funktion |
|---|---|---|
| S / OUT | Pin 11 | Digitales IR-Signal |
| + (VCC) | 5V | Spannungsversorgung |
| - (GND) | GND | Masse |
Für Projekt 2 hängst du eine LED mit passendem Vorwiderstand (aus dem Widerstände-Set, ca. 220Ω) an einen PWM-fähigen Pin (z. B. Pin 9). Für Projekt 3 kommt das Relais an IN = Pin 7 hinzu.
Installiere zunächst die Bibliothek IRremote (Version 3 oder 4) über den Bibliotheksverwalter der Arduino IDE, bevor du die folgenden Sketche hochlädst.
Code 1: Tastencodes der Fernbedienung auslesen
Bevor du irgendetwas steuerst, musst du wissen, welchen Code jede Taste deiner Fernbedienung sendet. Dieser Sketch gibt jeden empfangenen Code auf der seriellen Konsole aus.
#include <IRremote.hpp>
const int PIN_IR_EMPFAENGER = 11;
void setup() {
Serial.begin(9600);
IrReceiver.begin(PIN_IR_EMPFAENGER, ENABLE_LED_FEEDBACK);
Serial.println("Bereit - druecke eine Taste auf der Fernbedienung");
}
void loop() {
if (IrReceiver.decode()) {
Serial.print("Code: 0x");
Serial.println(IrReceiver.decodedIRData.decodedRawData, HEX);
IrReceiver.resume();
}
}
So funktioniert's
Öffne den seriellen Monitor mit 9600 Baud, drehe die Fernbedienung Richtung Empfänger und drücke nacheinander alle Tasten, die du später nutzen willst. Notiere dir die ausgegebenen Hex-Codes – sie sind je nach Fernbedienungsmodell unterschiedlich, deshalb funktioniert dieser erste Schritt nicht übersprungen werden.
Code 2: LED per Fernbedienung dimmen
Mit den notierten Codes aus Code 1 steuerst du jetzt die Helligkeit einer LED über die Pfeiltasten (oder zwei beliebige Tasten deiner Wahl – ersetze die Hex-Werte durch deine eigenen).
#include <IRremote.hpp>
const int PIN_IR_EMPFAENGER = 11;
const int LED_PIN = 9;
// Ersetze diese Codes durch die deiner eigenen Fernbedienung (siehe Code 1)!
const unsigned long CODE_HELLER = 0xFF906F;
const unsigned long CODE_DUNKLER = 0xFFE01F;
int helligkeit = 128;
void setup() {
Serial.begin(9600);
pinMode(LED_PIN, OUTPUT);
IrReceiver.begin(PIN_IR_EMPFAENGER, ENABLE_LED_FEEDBACK);
}
void loop() {
if (IrReceiver.decode()) {
unsigned long code = IrReceiver.decodedIRData.decodedRawData;
if (code == CODE_HELLER) {
helligkeit = min(255, helligkeit + 20);
} else if (code == CODE_DUNKLER) {
helligkeit = max(0, helligkeit - 20);
}
analogWrite(LED_PIN, helligkeit);
Serial.print("Helligkeit: ");
Serial.println(helligkeit);
IrReceiver.resume();
}
}
Wiederholtes Halten einer Taste sendet bei den meisten Fernbedienungen einen speziellen "Repeat"-Code statt des Original-Codes erneut – für ein einfaches Dimmen reicht der hier gezeigte Ansatz mit Einzeldruck aber völlig aus.
Code 3: Relais per Fernbedienung ein-/ausschalten
Als drittes Beispiel schaltest du ein Gerät über das Relais per Tastendruck komplett ein oder aus – mit einer einzigen Taste als Toggle-Schalter.
#include <IRremote.hpp>
const int PIN_IR_EMPFAENGER = 11;
const int PIN_RELAIS = 7;
// Ersetze diesen Code durch den deiner Power-Taste (siehe Code 1)!
const unsigned long CODE_POWER = 0xFFA25D;
bool relaisIstAn = false;
void setup() {
Serial.begin(9600);
pinMode(PIN_RELAIS, OUTPUT);
digitalWrite(PIN_RELAIS, LOW);
IrReceiver.begin(PIN_IR_EMPFAENGER, ENABLE_LED_FEEDBACK);
}
void loop() {
if (IrReceiver.decode()) {
unsigned long code = IrReceiver.decodedIRData.decodedRawData;
if (code == CODE_POWER) {
relaisIstAn = !relaisIstAn;
digitalWrite(PIN_RELAIS, relaisIstAn ? HIGH : LOW);
Serial.println(relaisIstAn ? "Relais AN" : "Relais AUS");
}
IrReceiver.resume();
}
}
Der Toggle-Mechanismus merkt sich den letzten Zustand in relaisIstAn und kehrt ihn bei jedem Druck auf die Power-Taste um – genau wie beim Ein-/Ausschalter eines Fernsehers.
Praxisprojekte
📺 Universalfernbedienung: Da du beliebige Codes zuordnen kannst, funktioniert auch eine alte TV- oder HiFi-Fernbedienung aus der Schublade als Steuerung für deine Projekte.
💡 Lichtsteuerung kombinieren: Verbinde dieses Tutorial mit unserem Relais-Tutorial, um Lampen oder Pumpen komplett kabellos zu schalten.
🎵 Sound per Knopfdruck: Kombiniere die IR-Fernbedienung mit einem MP3-Modul, um bestimmte Sounds oder Ansagen per Tastendruck abzuspielen.
Häufige Fehler
⚠️ Kein Code wird erkannt: Prüfe, ob der Empfänger richtig gepolt ist (VCC/GND vertauscht liefert nie ein Signal) und ob die Fernbedienung wirklich mit sichtbarem Licht "blinkt", wenn du sie z. B. mit einer Handykamera anvisierst (IR ist für Kamerasensoren oft sichtbar).
⚠️ Codes ändern sich bei jedem Druck leicht: Manche Fernbedienungen nutzen ein Toggle-Bit im Protokoll. Vergleiche in diesem Fall nur die unteren Bytes des Codes statt des kompletten Werts.
⚠️ Reichweite zu gering: IR benötigt direkte Sichtlinie zum Empfänger. Reflektionen an hellen Wänden können die Reichweite sogar verbessern, direktes Sonnenlicht auf den Empfänger dagegen stört den Empfang erheblich.
📶 Baue deine eigene IR-Steuerung
Alle Bauteile für dieses Projekt findest du bei makeroo.
- Sensoren & Module – IR-Kit, Relais & mehr
- Mikrocontroller-Boards – UNO R3, Nano V3 und ESP32
Kombiniere die Fernbedienung mit unserem Relais-Tutorial für eine drahtlose Lichtsteuerung.
Fazit
Mit einem günstigen IR-Empfänger und der IRremote-Bibliothek liest du Fernbedienungscodes zuverlässig aus und nutzt sie als drahtlose Steuerung für eigene Projekte. Vom reinen Code-Auslesen über das Dimmen einer LED bis zum Toggle-Schalten eines Relais zeigen die drei Codebeispiele den kompletten Einstieg.