/*
Receptor Infrarrojo en módulo KY-022 + LED RGB (lector códigos).
Con el programa anterior se encuentran los códigos que son recibidos
*/
#include <IRemote.h>
// "#define Boton_1 0x"+código leido por el botón con el programa previo
// #define es una directiva al compilador, no se trata de una variable
// simplemente dice que cada ocurrencia del nombre "Boton_1" sea
// reemplazado con el código decimal "80BF49B6"
// "0x" es para indicar que se trata de un número hexadecimal
// Así tenemos "Boton_1" para hacer mas entendible el código
#define Boton_1 0x80BF49B6
// Igualmente para los otros botones
// Cuando se usa #define no se debe poner ; al final de la línea
// #define, como no es una variable, no ocupa espacio de memoria de
// almacenamiento de arduino. Es solo una directiva del compilador.
// Si luego se quiere usar otro control remoto, basta con cambiar el código
// hexadecimal al principio y listo
#define Boton_2 0x80BFC936
#define Boton_3 0x80BF33CC
int SENSOR = 11;
IRrecv irrecv(SENSOR);
decode_results codigo;
// Se conecta un LED RGB cátodo común
int LEDROJO = 2;
int LEDVERDE = 3;
int LEDAZUL = 4;
void setup() {
Serial.begin(9600);
irrecv.enableIRIn();
pinMode(LEDROJO, OUTPUT);
pinMode(LEDVERDE, OUTPUT);
pinMode(LEDAZUL, OUTPUT);
}
void loop() {
if (irrecv.decode(&codigo)) {
Serial.println(codigo.value, HEX);
if (codigo.value == Boton_1)
digitalWrite(LEDROJO, !digitalRead(LEDROJO));
if (codigo.value == Boton_2)
digitalWrite(LEDVERDE, !digitalRead(LEDVERDE));
if (codigo.value == Boton_3)
digitalWrite(LEDAZUL, !digitalRead(LEDAZUL));
irrecv.resume();
}
delay(100);
}