Hallo an alle!
Ich bin noch recht neu in Sachen Mikorcontroller etc. und habe ein Problem mit dem Klonen der Signale einer IR-Fernbedienung. Genauer gesagt geht es um drei Fernbedienungen. Einige Funktionen dieser sollen in einer einzigen integriert werden.
Hierzu möchte ich einen Arduino Mega 2560 sowie die IRRemote.h von Kenn Shirriff verwenden (sofern es keine bessere option gibt). Sämtliche relevante Hardware sowie elektronische Grundkenntnisse sind vorhanden, ebenso die Möglichkeiten und Kenntnis zum Löten, Ätzen und Fräsen. Ferner verwende ich die Arduino IDE 1.6.2
Das auslesen, so meine ich, klappt bisher ohne Probleme, ich habe dazu den originalen Beispielcode ein wenig angepasst da ich mit der Originalversion nur Zeichensalat auf dem Serial Monitor bekam (z.B. trotz identischer Tastendrücke unterschiedliche Ausgabewerte, lag wohl iwie am Timing).
Hier der von mir verwendete Code:
/*
* IRremote: IRrecvDemo - demonstrates receiving IR codes with IRrecv
* An IR detector/demodulator must be connected to the input RECV_PIN.
* Version 0.1 July, 2009
* Copyright 2009 Ken Shirriff
* http://arcfn.com
*/
#include <IRremote.h>
int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN); // Empfänger an Pin 11
decode_results results;
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); // Empfänger starten
}
void loop() {
if (irrecv.decode(&results)) {
Serial.println(""); // 0o0-Strings zur besseren Darstellung im Serial Monitor
Serial.println("");
Serial.println("0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0");
Serial.println("0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0");
Serial.println("0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0");
Serial.println("0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0");
Serial.println("");
Serial.println("Hexadezimal:"); //Werteausgabe
Serial.println(results.value, HEX);
Serial.println("Dezimal:");
Serial.println(results.value, DEC);
Serial.println("Oktal:");
Serial.println(results.value, OCT);
Serial.println("Binaer:");
Serial.println(results.value, BIN);
Serial.println("");
Serial.println("0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0");
Serial.println("0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0");
Serial.println("0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0");
Serial.println("0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0o0");
Serial.println("");
Serial.println("");
irrecv.resume(); // Auf nächste Eingabe warten
}
}
Die damit erhaltenen Werte habe ich derweil in einer Tabelle festgehalten, das ganze sieht dann so aus:
Wie handhabe ich denn jetzt die Ausgabe dieser Signale mittels einer IR-LED? Ich meine, der hardwareseitige Aspekt wirft keinerlei Fragen auf, aber wie kann ich diese Codes jetzt in das Beispielsketch sendir.ino einbauen? Leider habe ich keinen der in der Headerdatei gelisteten Hersteller wie Sony oder NEC… Kann ich die Werte nicht einfach irgendwie als Raw Data an einen gewissen Pin übergeben oder so?
Der Vollständigkeit halber hier noch der Code des Sende-Beispiels:
#include <IRremote.h>
IRsend irsend;
void setup()
{
Serial.begin(9600);
}
void loop() {
if (Serial.read() != -1) {
for (int i = 0; i < 3; i++) {
irsend.sendSony(40409867, 12); // Sony TV power code
delay(40);
}
}
}
Ich bedanke mich fürs Lesen und jegliche Ratschläge!
P.S.: Gibt es hier kein Spoilertag oder funktioniert das bloß in der Preview nicht?