#include <IRremote.hpp> // IRremote-Bibliothek einbinden
#define IR_RECEIVE_PIN 11 // Pin, an den der IR-Empfänger angeschlossen ist
#define Relay 10 // Pin für das Relais
int RelayState = LOW;
#define PC_ON 0xA2 // Empänger Code der gedrückten Taste
void setup() {
Serial.begin(9600); // // Establish serial communication
IrReceiver.begin(IR_RECEIVE_PIN); // Start the receiver ; ENABLE_LED_FEEDBACK einfügen um die LED_Buildin zu nutzen
pinMode(IR_RECEIVE_PIN, INPUT); // Reciver Pin auf INPUT setzen
pinMode(Relay, OUTPUT); // Relay Pin auf INPUT setzen
}
void loop() {
if (IrReceiver.decode()) { // Checked ob dateien empfangen wurden, wenn ja werden sie decodiert.
if (IrReceiver.decodedIRData.protocol == UNKNOWN) {
Serial.println(F("Received noise or an unknown (or not yet enabled) protocol"));
// We have an unknown protocol here, print extended info
//IrReceiver.printIRResultRawFormatted(&Serial, true);
IrReceiver.resume(); // Do it here, to preserve raw data for printing with printIRResultRawFormatted()
} else {
IrReceiver.resume(); // Early enable receiving of the next IR frame
IrReceiver.printIRResultShort(&Serial);
IrReceiver.printIRSendUsage(&Serial);
}
Serial.println("START"); // Info ausgeben
unsigned long value = IrReceiver.decodedIRData.command;
if (value == PC_ON) {
digitalWrite(LED_BUILTIN, HIGH);
delay(100);
digitalWrite(Relay, HIGH); // Relais einschalten
Serial.println("Relais eingeschaltet");
RelayState = HIGH;
delay(500); // 0.5 Sekunde warten
digitalWrite(Relay, LOW); // Relais ausschalten
digitalWrite(LED_BUILTIN, LOW);
delay(100);
RelayState = LOW;
Serial.println("Relais ausgeschaltet");
} else {
digitalWrite(LED_BUILTIN, HIGH);
delay(200);
digitalWrite(LED_BUILTIN,LOW);
delay(200);
digitalWrite(LED_BUILTIN, HIGH);
delay(200);
digitalWrite(LED_BUILTIN,LOW);
delay(200);
digitalWrite(LED_BUILTIN, HIGH);
delay(200);
digitalWrite(LED_BUILTIN,LOW);
delay(200);
digitalWrite(LED_BUILTIN, HIGH);
delay(200);
digitalWrite(LED_BUILTIN,LOW);
delay(200);
}
}
}