

Arduino (IoT): Simple Tutorial de IR Receptor/Transmisor (Parte 2)
En la Parte 1 vimos como usar el receptor IR para leer códigos enviados por un control remote X. Ahora veremos como controlar LEDs de colores.
Conexiones
Si recuerdan de la primera parte, nuestro circuito era asi pero no usamos las LED:

Ahora vamos a usar 3 LEDs y controlarlas desde nuestro mcu.

Codigo
La libreria que usaremos esta aqui.
El codigo de nuestro ejemplo sera:
- #include <IRremote.h>
- int RECV_PIN = 3; // pin de salida del TSOP4838
- int led1 = 2;
- int led2 = 4;
- int led3 = 7;
- int itsONled[] = {0,0,0,0};
- /* al inicio las LEDs estan OFF (zero)
- #define code1 63495 // code received from button A
- #define code2 30855 // code received from button B
- #define code3 22695 // code received from button C
- IRrecv irrecv(RECV_PIN);
- decode_results results;
- void setup(){
- Serial.begin(9600); // you can comment this line
- irrecv.enableIRIn(); // Start the receiver
- pinMode(led1, OUTPUT);
- pinMode(led2, OUTPUT);
- pinMode(led3, OUTPUT);
- }
- void loop() {
- if (irrecv.decode(&results)) {
- unsigned int value = results.value;
- switch(value) {
- case code1:
- if(itsONled[1] == 1) { // Si la led1 esta ON
- digitalWrite(led1, LOW); // apagarla
- itsONled[1] = 0; // y guardar su estado como OFF
- } else { // Si la led1 estaba OFF
- digitalWrite(led1, HIGH); // encenderla
- itsONled[1] = 1; // y registrarla como ON
- }
- break;
- case code2:
- if(itsONled[2] == 1) {
- digitalWrite(led2, LOW);
- itsONled[2] = 0;
- } else {
- digitalWrite(led2, HIGH);
- itsONled[2] = 1;
- }
- break;
- case code3:
- if(itsONled[3] == 1) {
- digitalWrite(led3, LOW);
- itsONled[3] = 0;
- } else {
- digitalWrite(led3, HIGH);
- itsONled[3] = 1;
- }
- break;
- }
- Serial.println(value); // Esto es para ver los resultados
- irrecv.resume(); // Proximo valor…
- }
- }
Lo unico es que primero habra que determinar los códigos de los botones que vamos a usar. Esto lo aprendimos en la Parte 1 de esta serie.