Utilización mando infrarrojos II: Control LED RGB

Tras haber leído los códigos de los botones de nuestro mando  (Utilización mando infrarrojos I: Lectura del código y ejemplo), podemos seguir avanzando nuestro estudio en el sensor de infrarrojos para ir más allá y ser capaces de controlar un LED RGB (Tutorial – Led RBG con pulsadores).

Para ello necesitaremos los siguientes componentes:

  •  Led RGB
  •  Sensor de infrarrojos + mando compatible
  •  4 resistencias 220Ω (una para cada color del led RGB y otra para el sensor de infrarrojos)
  •  Protoboard
  •  Cables

El sketch que utilizaremos en este caso será el siguiente:

#include <WProgram.h>

#include <NECIRrcv.h> //Libreria del protocolo NEC

#define IRPIN 8 // Pin del receptor IR

NECIRrcv ir(IRPIN);



int rojo = 13;  //Pin del color rojo del led RGB

int verde = 12; //Pin del color verde del led RGB

int azul = 11; //Pin del color azul del led RGB



//power = 4228087680;  //Codigo correspondiente al boton POWER del mando a distancia

//butrojo = 4161240960; //Codigo correspondiente al boton 1 del mando a distancia

//butverde = 4194664320; //Codigo correspondiente al boton 2 del mando a distancia

//butazul = 4177952640; //Codigo correspondiente al boton 3 del mando a distancia



void setup()

{

  //Serial.begin(9600); //Iniciamos comunicacion serie

  ir.begin(); //Iniciamos la recepcion IR



  pinMode(rojo, OUTPUT);

  pinMode(verde,OUTPUT);

  pinMode(azul, OUTPUT);

}



void loop()

{

  unsigned long ircode; //Variable que contendra el codigo decimal del boton pulsado

  while (ir.available()) 

  {

    ircode = ir.read(); //Leemos el codigo del boton pulsado



     if (ircode == power) //Si el boton de power… apagamos el led

     {

       digitalWrite(rojo, LOW);

       digitalWrite(verde, LOW);

       digitalWrite(azul, LOW);

     }

     else if (ircode == butrojo) digitalWrite(rojo,HIGH);  //Si boton 1, encendemos color rojo

     else if (ircode == butverde) digitalWrite(verde,HIGH); //Si boton 2, encendemos color verde

     else if (ircode == butazul) digitalWrite(azul,HIGH); //Si boton 3, encendemos color azul

  }

}



Aclaración: destacar que una patilla del RGB se encuentra en el pin 13, el cual ya lleva internamente incorporado una resistencia que impide que el led se deteriore. El dibujo es genérico por si se deseara utilizarlo con otros pines.


Si observamos el sketch, podemos observar como para cada botón del mando, tenemos asociado un código que emplearemos en las condiciones.

Finalmente, el resultado obtenido puede mostrarse en el siguiente vídeo:

Y esto es todo. No dudéis en comentar y en preguntar cualquier duda.

Gracias por la atención.

I.

1 comentario en «Utilización mando infrarrojos II: Control LED RGB»

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.