Saltar la navegación

Encendemos y apagamos 4 leds por infrarrojos

Encendemos y apagamos 4 leds por infrarrojos

/*
En este ejemplo utilizaremos los botones para encender/apagar los leds 1, 2, 3, 4 y 0.
Con el ejemplo anterior averiguamos los códigos de las teclas 1,2,3,4 y 0.
Los códigos del mando a distancia keyes son:
Boton_1 = 0xFF6897
Boton_2= 0xFF9867
Boton_3=0xFFB04F
Boton_4=0xFF30CF
Boton_0=0xFF4AB5

Los códigos del mando a distancia simulador Tinkercad son:
Boton_1 0xFD08F7
Boton_2 0xFD8877
Boton_3 0xFD48B7
Boton_4 0xFD28D7
Boton_0 0xFD30CF

www.sacosta.org 09/2019


*/

#include <IRremote.h> // importa libreria IRremote
#define Boton_1 0xFD08F7 // reemplaza cada instancia de Boton_1 por su valor HEX
#define Boton_2 0xFD8877 // reemplaza cada instancia de Boton_2 por su valor HEX
#define Boton_3 0xFD48B7 // reemplaza cada instancia de Boton_3 por su valor HEX
#define Boton_4 0xFD28D7 // reemplaza cada instancia de Boton_4 por su valor HEX
#define Boton_0 0xFD30CF // reemplaza cada instancia de Boton_0 por su valor HEX

int SENSOR = 11; // sensor KY-022 a pin digital 11
IRrecv irrecv(SENSOR); // establece al 11 para objeto irrecv
decode_results codigo; // crea objeto código de la clase decode_results

int Led_1 = 2; // componente rojo de LED RGB a pin 2
int Led_2 = 3; // componente verde de LED RGB a pin 3
int Led_3 = 4;
int Led_4 = 5; // componente azul de LED RGB a pin 4

void setup() {
Serial.begin(9600); // inicializa comunicacion serie a 9600 bps
irrecv.enableIRIn(); // inicializa recepcion de datos
pinMode(Led_1, OUTPUT); // pin 2 como salida
pinMode(Led_2, OUTPUT); // pin 3 como salida
pinMode(Led_3, OUTPUT); // pin 4 como salida
pinMode(Led_4, OUTPUT); // pin 5 como salida
}

void loop() {
if (irrecv.decode(&codigo)) { // si existen datos ya decodificados
Serial.println(codigo.value, HEX); // imprime valor en hexadecimal en monitor
if (codigo.value == Boton_1) // si codigo recibido es igual a Boton_1
digitalWrite(Led_1, !digitalRead(Led_1)); // enciende o apaga si está encendido led_1

if (codigo.value == Boton_2) // si codigo recibido es igual a Boton_2
digitalWrite(Led_2, !digitalRead(Led_2)); // enciende o apaga si está encendido led_2

if (codigo.value == Boton_3) // si codigo recibido es igual a Boton_3
digitalWrite(Led_3, !digitalRead(Led_3)); // enciende o apaga si está encendido led_3

if (codigo.value == Boton_4) // si codigo recibido es igual a Boton_4
digitalWrite(Led_4, !digitalRead(Led_4)); // enciende o apaga si está encendido led_4

if (codigo.value == Boton_0) { // si codigo recibido es igual a Boton_0
// apaga todos los leds
digitalWrite(Led_1, LOW); // apaga led_1
digitalWrite(Led_2, LOW); // apaga led_2
digitalWrite(Led_3, LOW); // apaga led_2
digitalWrite(Led_4, LOW); // apaga led_4
} irrecv.resume(); // resume la adquisicion de datos
}
delay (100); // breve demora de 100 ms.
}