/* * alessandrobuzzi.com */ #include <IRremote.h> #include <Arduino.h> #define DECODE_NEC // special decoder for all protocols #define IR_RECEIVE_PIN 7 // Relay const int SW1 = 8; // the Arduino pin, which connects to the IN pin of relay const int SW2 = 9; // the Arduino pin, which connects to the IN pin of relay const int SW3 = 10; // the Arduino pin, which connects to the IN pin of relay void setup() { Serial.begin(115200); //Start the receiver, enable feedback LED and take LED feedback pin from the internal boards definition IrReceiver.begin(IR_RECEIVE_PIN, ENABLE_LED_FEEDBACK, USE_DEFAULT_FEEDBACK_LED_PIN); Serial.print(F("Ready to receive IR signals at pin ")); Serial.println(IR_RECEIVE_PIN); // relays off pinMode(SW1, OUTPUT); pinMode(SW2, OUTPUT); pinMode(SW3, OUTPUT); digitalWrite(SW1, HIGH); // Relay is active low, so HIGH will turn it off at startup digitalWrite(SW2, HIGH); digitalWrite(SW3, HIGH); } void loop() { /* * Check if received data is available and if yes, try to decode it. * Decoded result is in the IrReceiver.decodedIRData structure. * * E.g. command is in IrReceiver.decodedIRData.command * address is in command is in IrReceiver.decodedIRData.address * and up to 32 bit raw data in IrReceiver.decodedIRData.decodedRawData */ if (IrReceiver.decode()) { // Print a short summary of received data IrReceiver.printIRResultShort(&Serial); Serial.println(); //Enable receiving of the next value IrReceiver.resume(); // Enable receiving of the next value /* * Finally, check the received data and perform actions according to the received command */ if (IrReceiver.decodedIRData.command == 0xC) { // 1 digitalWrite(SW1, LOW); } else if (IrReceiver.decodedIRData.command == 0x18) { // 2 digitalWrite(SW1, HIGH); }else if (IrReceiver.decodedIRData.command == 0x8) { // 4 digitalWrite(SW2, LOW); }else if (IrReceiver.decodedIRData.command == 0x1C) { // 5 digitalWrite(SW2, HIGH); }else if (IrReceiver.decodedIRData.command == 0x42) { // 7 digitalWrite(SW3, LOW); }else if (IrReceiver.decodedIRData.command == 0x52) { // 8 digitalWrite(SW3, HIGH); // tasto 8 }else if (IrReceiver.decodedIRData.command == 0x9) { // DOWN digitalWrite(SW1, HIGH); // All off digitalWrite(SW2, HIGH); digitalWrite(SW3, HIGH); }else if (IrReceiver.decodedIRData.command == 0x7) { // UP digitalWrite(SW1, LOW); // All on digitalWrite(SW2, LOW); digitalWrite(SW3, LOW); } } }
Lascia un commento