
Mit den Tasten einer Fernbedienung soll eine LED ein- und wieder ausgeschaltet werden.
So sieht es aus:
Benötigte Bauteile:
- LED
- Infrarot-Empfänger
- Fernbedienung
- Widerstand > 100 Ω
- Leitungsdrähte
Baue die Schaltung auf:
(Fahre mit der Maus über das Bild, um die Bezeichnungen der Bauteile zu sehen)
Achte auf die Pinbelegung des Infrarotempfängers.

Achte darauf, dass die Batterie richtig eingelegt wurde. Der Minus-Pol liegt oben.

Benötigte Bibliothek:
Suche die Bibliothek IRremote …
… klicke auf Installieren.

oder: Sketch -> Bibliothek einbinden -> Bibliotheken verwalten
Die Fernbedienung sendet beim Druck auf die Tasten einen Zahlencode.
Die Tastencodes beziehen sich auf die Keyes-Fernbedienung und die Open-Smart-Fernbedienung.

Tastencodes Keyes-Fernbedienung (hexadezimal und dezimal)
| oben | links | rechts | unten | OK | 1 | 2 | 3 | 4 |
| 0x46 70 | 0x44 68 | 0x43 67 | 0x15 21 | 0x40 64 | 0x16 22 | 0x19 25 | 0xD 13 | 0xC 12 |
| 5 | 6 | 7 | 8 | 9 | + | 0 | # | |
| 0x18 24 | 0x5E 94 | 0x8 8 | 0x1C 28 | 0x5A 90 | 0x42 66 | 0x52 82 | 0x4A 74 |

| Ein/aus | Menu | Test | + | ↺ | | ◄ ◄ | ► | ►►| | 0 | - |
| 0x45 69 | 0x47 71 | 0x44 68 | 0x40 64 | 0x40 64 | 0x7 7 | 0x15 21 | 0x9 9 | 0x16 22 | 0x19 25 |
| C | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 0xD 13 | 0xC 12 | 0x18 24 | 0x5E 94 | 0x8 8 | 0x1C 28 | 0x5A 90 | 0x42 66 | 0x52 82 | 0x4A 74 |
Die Tastencodes kannst du mit folgendem Programm herausfinden. Sie werden im Seriellen Monitor angezeigt.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | // benötigte Bibliothek einbinden #include “IRremote.hpp” // der Pin, an dem der Infrarot-Empfänger angeschlossen ist int EmpfaengerPin = 11; void setup() { // Seriellen Monitor starten Serial.begin(9600); // Infrarot-Empfänger starten IrReceiver.begin(EmpfaengerPin); } void loop() { // decode() -> Daten lesen if (IrReceiver.decode()) { // kurzes delay, damit nur ein Tastendruck gelesen wird delay(200); // resume -> nächsten Wert lesen IrReceiver.resume(); /* der Empfänger empfängt zwischendurch Signale, die nicht ausgewertet werden können es sollen dehalb nur die korrekt erkannten Tasten ausgewertet werden die Dezimalwerte der korrekten erkannten Tasten liegen zwischen > 0 und < 95 es wird abgefragt, ob das empfangene Kommando decodedIRData.command zwischen 0 und (&&) 95 liegt */ if (IrReceiver.decodedIRData.command > 0 && IrReceiver.decodedIRData.command < 95) { Serial.print(“Dezimalwert: ”); // IrReceiver.decodedIRData.command = Wert der gedrückten Taste Serial.print(IrReceiver.decodedIRData.command); Serial.print(“ -> ”); // Werte abfragen und anzeigen if (IrReceiver.decodedIRData.command == 22) Serial.println(“Taste 1”); if (IrReceiver.decodedIRData.command == 25) Serial.println(“Taste 2”); if (IrReceiver.decodedIRData.command == 13) Serial.println(“Taste 3”); if (IrReceiver.decodedIRData.command == 12) Serial.println(“Taste 4”); if (IrReceiver.decodedIRData.command == 24) Serial.println(“Taste 5”); if (IrReceiver.decodedIRData.command == 94) Serial.println(“Taste 6”); if (IrReceiver.decodedIRData.command == 8) Serial.println(“Taste 7”); if (IrReceiver.decodedIRData.command == 28) Serial.println(“Taste 8”); if (IrReceiver.decodedIRData.command == 90) Serial.println(“Taste 9”); if (IrReceiver.decodedIRData.command == 82) Serial.println(“Taste 0”); if (IrReceiver.decodedIRData.command == 66) Serial.println(“Taste *”); if (IrReceiver.decodedIRData.command == 74) Serial.println(“Taste #”); if (IrReceiver.decodedIRData.command == 68) Serial.println(“Pfeil links”); if (IrReceiver.decodedIRData.command == 67) Serial.println(“Pfeil rechts”); if (IrReceiver.decodedIRData.command == 70) Serial.println(“Pfeil oben”); if (IrReceiver.decodedIRData.command == 21) Serial.println(“Pfeil unten”); if (IrReceiver.decodedIRData.command == 64) Serial.println(“OK”); } } } |

Binde die benötigte Bibliothek ein und definiere den Pin des Empfängers und der LED.
1 2 3 | #include <IRremote.hpp> int EmpfaengerPin = 11; int LED = 7; |
Im setup-Teil wird die LED als OUTPUT definiert und die Infrarot-Empfänger initialisiert.
1 2 3 4 5 6 | void setup() { Serial.begin(9600); // Empfänger starten IrReceiver.begin(EmpfaengerPin); } |
Im loop-Teil musst du die Tasten 1 und 2 mit if abfragen.

⇒ if
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | void loop() { // Daten lesen if (IrReceiver.decode()) { // nächsten Wert lesen IrReceiver.resume(); if (IrReceiver.decodedIRData.address == 0) { // Taste 1 -> gelesener Deizimalwert 22 -> LED einschalten if (IrReceiver.decodedIRData.command == 22) digitalWrite(LED, HIGH); // Taste 2 -> gelesener Deizimalwert 25 -> LED ausschalten if (IrReceiver.decodedIRData.command == 25) digitalWrite(LED, LOW); } } } |
Verwandte Anleitungen:
Letzte Aktualisierung:






