ARDUINO + SENSOR IR + CTRL REMOTO


Este proyecto nos permitirá controlar dispositivos conectados a la tarjeta Arduino a través de una interfaz infrarroja y usando el control de la televisión podremos encender las luces, ventiladores, o lo que se te ocurra.

MATERIALES

1 Tarjeta Arduino (Uno, Nano o Mega)
1 Detector Infrarrojo TSOP4838
1 Capacitor de 47uF
1 Control Remoto IR
4 Leds

DESCRIPCIÓN

Arduino.- Tarjeta de control programable que nos permitirá moldear nuestro proyecto para cada una de nuestras necesidades, para este caso solo usaremos cuatro salidas y una entrada digital, en el esquema de conexión podremos ver que pines o puertos usaremos, recordemos que podemos usar cualquier puerto de la tarjeta siempre y cuando sea digital.

TSOP4838.- Es un receptor infrarrojo de 38 kHz, nos permitirá recivir las señales del control remoto, para ello pueden usar controles de TV, DVD u otros de la marca Sony, Samsung, LG o Universales.



ESQUEMA DE CONEXIÓN


Como se puede ver en el diagrama estamos usando el PIN2 para recibir la información generada por el receptor IR.


BÚSQUEDA DE CÓDIGOS DEL CONTROL REMOTO

Como primer paso tenemos que obtener los códigos generados por los controles, abrimos un nuevo Scketch en el Software de Arduino y escribimos el siguiente código:

/******************************************/*
#include <IRremote.h>
int ReceptorIR = 2;
IRrecv irrecv(ReceptorIR);
decode_results Codigo;

void setup()
    {
    Serial.begin(9600);
    irrecv.enableIRIn();
    }
void loop()
   {
    if (irrecv.decode(&Codigo))
        {
        Serial.print("0x");
        Serial.println(Codigo.value, HEX);
        delay(50);
        irrecv.resume();
        }
   }
/******************************************/*

Para que el compilador pueda correr sin problemas este código, debes tener instalada la librería IRremote, una vez descargada debes descomprimirla y pegar todo el contenido dentro de la carpeta libreries de Arduino. 

Cuando el compilador no emita ningún error en el código, sera enviado a la tarjeta Arduino y deberás abrir el Monitor Serial que contiene el compilador, presionas un botón de tu control remoto y podrás ver en el Monitor Serial el código hexadecimal que genera el botón al ser presionado. 



En el monitor serial aparecieron los códigos al presionar los botones 1(0xFD609F), 2(0xFD906F) y 3(0xFD807F).

Por el momento usaremos el control y al receptor infrarrojo como interfaz de usuario, manipularemos el encendido  de unos leds conectados a los puertos digitales de nuestra tarjeta Arduino.



Como pueden ver en el diagrama anterior los ánodos (+) de los leds están conectados a los pines 8, 9 y 10 en los puertos digitales y los cátodos (-).



Ahora crearemos un código en el compilador de Arduino que nos permita encender y apagar los leds desde el control remoto, claro usando los códigos que adquirimos en el programa anterior.

Considerando que el control remoto es un menú de opciones diseñaremos el código del programa usando Switch-Case.


/*********************************************************/*
#include <IRremote.h>
int ReceptorIR = 2;
int Led1=8;
int Led2=9;
int Led3=10;
IRrecv irrecv(ReceptorIR);
decode_results Codigos;

void setup() 
{
    Serial.begin(9600);
    irrecv.enableIRIn();
    pinMode(Led1,OUTPUT);
    pinMode(Led2,OUTPUT);
    pinMode(Led3,OUTPUT);   
}
void loop() 
{
    if (irrecv.decode(&Codigos)) 
    {
       switch (Codigos.value)
       {
            case 0xFD609F: //codigo boton1
            digitalWrite(Led1, HIGH);//Encender Led1                   
            break;

            case 0xFD906F: //codigo boton2
            digitalWrite(Led2, HIGH);//Encender Led2                   
            break;
            
            case 0xFD807F: //codigo boton3
            digitalWrite(Led3, HIGH);//Encender Led3                   
            break;
            
            case 0xFD902F: //codigo boton4
            digitalWrite(Led1, LOW);//Apagar Led1                   
            break;

            case 0xFD912F: //codigo boton5
            digitalWrite(Led2, LOW);//Apagar Led2
            break;            
            
            case 0xFD805F: //codigo boton6
            digitalWrite(Led3, LOW);//Apagar Led3                   
            break;
       }
    irrecv.resume();
   }

}

/***********************************************************/*

Si siguieron los pasos de este tutorial, ahorita deben estar probando el encendido de sus leds e imaginando donde lo aplicaran, en la siguiente entrada publicare como utilizar estas salidas digitales para activar focos, ventiladores o cualquier otro elemento de mayor potencia.




+