#include <IRremote.h>
#define PIN_RECEIVER A0
IRrecv receiver(PIN_RECEIVER);
decode_results irRecvResults;
String input = ""; // Verwenden Sie einen String, um die Eingabe zu speichern
void irdecode(IRrecv inputIRPin) {
char cmd = '\0'; // Deklaration und Initialisierung der interne Variable mit einem Nullzeichen
int decoded = inputIRPin.decode(); // Dekodieren des empfangenen IR-Signals und Speichern des Ergebnisses in der Variable 'decoded'
if (decoded) {
if (inputIRPin.decodedIRData.command) {
switch (inputIRPin.decodedIRData.command) {
// Fälle für andere Befehle...
case 104: cmd = '0'; break;
case 48: cmd = '1'; break;
case 24: cmd = '2'; break;
case 122: cmd = '3'; break;
case 16: cmd = '4'; break;
case 56: cmd = '5'; break;
case 90: cmd = '6'; break;
case 66: cmd = '7'; break;
case 74: cmd = '8'; break;
case 82: cmd = '9'; break;
case 162: // Power
case 226: // Menu
case 34: // Test
case 176: // C
case 2: // Plus
case 152: // Minus
case 168: // Play
case 144: // Forward
case 224: // Rewind
case 194: // Back
cmd = 'P'; // Setzt cmd auf 'P' für alle oben aufgeführten Fälle
break;
}
}
// Führt den Code aus, wenn die Taste "P" gedrückt wurde
if (cmd == 'P') {
// Überprüft, ob die Eingabe mindestens ein Zeichen lang ist
if (input.length() > 0) {
Serial.print("Eingabe: ");
Serial.print(input); // Ausgabe des Eingabestrings
Serial.print(" => Ausgabe: ");
int result = input.toInt(); // Konvertiere den Eingabestring in eine Ganzzahl
Serial.println(result); // Ausgabe des Ergebnisses
input = ""; // Zurücksetzen des Eingabestrings für die nächste Eingabe
}
} // Überprüfen, ob die empfangene Zeichen eine Ziffer ist
else if (cmd >= '0' && cmd <= '9') {
input += cmd; // Hängen Sie das empfangene Zeichen an den Eingabestring an
}
inputIRPin.resume(); // Setzt den IR-Empfänger zurück, um bereit für das nächste Signal zu sein
}
}
void setup() {
Serial.begin(9600); // Initialisierung der seriellen Verbindung mit einer Baudrate von 9600
receiver.enableIRIn(); // Aktivierung des Infrarot-Empfangs
}
void loop() {
irdecode(receiver); // Aufruf der Funktion irdecode zum Entschlüsseln des empfangenen Infrarot-Signals
delay(500); // Verzögerung von 500 Millisekunden, um die Prozessorgeschwindigkeit zu verlangsamen und das Programm nicht zu überlasten
}