Hallo Forum,
mit einem Arduino Nano möchte ich eine Übersetzung eines FB IR Signals realisieren.
Also Empfang eines FB Codes und dann da Senden eines anderen FB Codes.
Hintergrund:
In meiner Wohnung werkelt eine Universale Fb von Logitech, eine HarmonyLink.
Das ist eine Universelle FB, die mittels APP über LAN an einen IRSender komandos von vielen FB`s
senden kann.
Wie das immer so ist, habe ich eine FB für einen DeckenVentilator, der in der Datenbank von Logitech nicht drin ist.
Also meine Idee; ein beliebiges Gerät aus der Datenbank in die Harmony eintragen, und der Arduino empfängt dann diese Signal ( zB rec.) und sendet daraufhin ein IR Signal im RAW Code des Ventilators.
RAW habe ich ausgelesen, Signal (rec) von FB A auch.
Bei meinen Versuchen war ich z.T erfolgreich, in sofern dass der Test mit einem Code empfangen , und den RAW Code senden klappt.
Nun möchte ich aber noch ein 2. Signal verarbeiten (zB Pause), um das zu benutzen einen anderen
RAW Code zu senden.
Da bekomme ich beim Kompilieren aber Fehlermeldungen, die ich nicht verstehe.
Zu meiner Ehrenrettung, ich bin von Hause aus Handwerker. Mit der Hardware und Löten habe ich überhaupt keine Probleme.
Die Programierung allerdings fällt mir mit 58 Jahren als Einsteiger schwer.
Darum hier die Bitte mal in meinen Sketch zu schauen und mir helfen die Fehler zu finden.
Danke für die Hilfe
/*
Umsetzung von IR Signalen.
Ein IR Signsl von Fernb A empangen und anderes
IR Signal von Fernb B senden.
FB B ist RAW Code
*/
#include <IRremote.h>
#include <IRremoteInt.h>
#define irPin 11
IRrecv irrecv(irPin); // IR Empf an Pin 11
decode_results results;
void setup() {
Serial.begin(9600);
irrecv.enableIRIn(); //Sendediode ist mit Pin 5 verbunden
}
void loop() {
if (irrecv.decode(&results)) {
switch (results.value) {
case 0xff38c7: //Venti ofen 2 Signal empfang von FB A
Serial.println("Venti Ofen 2"); // Kontrolle Monitor
IRsend irsend;
int khz = 38; // 38kHz
unsigned int ofen2[] = {600, 550, 600, 600, 550, 1450, 600, 1400, 650, 1400, 600, 1450, 600, 1400, 650, 550, 600, 550, 600, 1450, 600, 550, 600, 600, 550, 4350, 600, 550, 600, 600, 550, 1450, 600, 1450, 600, 1400, 650, 1400, 600, 1450, 600, 550, 600, 600, 550, 1450, 600, 550, 600, 600, 600, 4300, 600, 550, 600, 600, 600, 1400, 600, 1400, 650, 1400, 600, 1450, 600, 1450, 600, 550, 600, 600, 550, 1450, 600, 550, 600, 600, 600, 4400, 650, 550, 600, 550, 600, 1450, 600, 1450, 550, 1450, 600, 1400, 650, 1450, 550, 600, 600, 550, 600, 1450, 600, 550 }; //AnalysIR Batch Export (IRremote) - RAW
irsend.sendRaw(ofen2, sizeof(ofen2) / sizeof(ofen2[0]), khz); // Sende RAW von FB B
break;
case 0xffb847: //Venti ofen aus Signal empfang von BF A
Serial.println("Venti Ofen aus");
IRsend irsend;
unsigned int ofen0[] = {650, 500, 650, 550, 600, 1400, 650, 1400, 650, 1400, 600, 1450, 600, 1450, 600, 550, 600, 1450, 600,1400, 650, 550, 600, 550, 600, 4350, 600, 600, 600, 500, 650, 1400, 650, 1400, 600, 1450, 600, 1450, 600, 1400, 650, 550, 600, 1450, 600, 1400 650, 550, 600, 550, 600, 4350, 600, 550, 650, 500, 650, 1400, 600, 1450, 600, 1450, 600, 1400, 650, 1400, 650, 550, 600, 1400, 650, 1400, 650, 550, 600, 550, 600, 4450, 650, 550, 600, 550, 600, 1400, 650, 1400, 650, 1400, 600, 1450, 600, 1450, 600, 550, 600, 1450, 600, 1450, 600, 550 };
irsend.sendRaw(ofen0, sizeof(ofen0) / sizeof(ofen0[0]), khz); //Sende RAW von FB B
break;
}
irrecv.resume();
}
}