#include <IRremote.h> // importa libreria IRremote
#define Boton_1 0xCF30FF00
// reemplaza cada instancia de Boton_1 por su valor HEX
#define Boton_2 0xE718FF00
// reemplaza cada instancia de Boton_2 por su valor HEX
#define Boton_3 0x857AFF00
// reemplaza cada instancia de Boton_3 por su valor HEX
#define Boton_4 0xEF10FF00
int SENSOR = 11; // sensor KY-022 a pin digital 11
int LEDROJO = 2; // componente rojo de LED RGB a pin 1
int LEDVERDE = 3; // componente verde de LED RGB a pin 2
int LEDAZUL = 4; // componente azul de LED RGB a pin 3
int RELAY = 5; // componente RELAY a pin 4
void setup() {
Serial.begin(9600); // inicializa comunicacion serie a 9600 bps
IrReceiver.begin(SENSOR, DISABLE_LED_FEEDBACK); // inicializa recepcion de datos
pinMode(LEDROJO, OUTPUT); // pin 2 como salida
pinMode(LEDVERDE, OUTPUT); // pin 3 como salida
pinMode(LEDAZUL, OUTPUT); // pin 4 como salida
pinMode(RELAY, OUTPUT); // pin 5 como salida
}
void loop() {
if (IrReceiver.decode()) { // si existen datos ya decodificados
Serial.println(IrReceiver.decodedIRData.decodedRawData, HEX); // imprime valor en hexadecimal en monitor
if (IrReceiver.decodedIRData.decodedRawData == Boton_1) // si codigo recibido es igual a Boton_1
{digitalWrite(LEDROJO, !digitalRead(LEDROJO));
Serial.println(" >> 1");
} // enciende o apaga componente rojo
if (IrReceiver.decodedIRData.decodedRawData == Boton_2) // si codigo recibido es igual a Boton_2
digitalWrite(LEDVERDE, !digitalRead(LEDVERDE)); // enciende o apaga componente verde
if (IrReceiver.decodedIRData.decodedRawData == Boton_3) // si codigo recibido es igual a Boton_3
digitalWrite(LEDAZUL, !digitalRead(LEDAZUL)); // enciende o apaga componente azul
if (IrReceiver.decodedIRData.decodedRawData == Boton_4) // si codigo recibido es igual a Boton_3
digitalWrite(RELAY, !digitalRead(RELAY)); // enciende o apaga EL RELAY
IrReceiver.resume(); // resume la adquisicion de datos
}
delay (100); // breve demora de 100 ms.
}