Proyecto numero 11:

Control de Leds con Control Infrarrojo

Dificultad: media

La comunicación d IR (infrarroja) es ampliamente utilizada en la vida cotidiana mediante controles de remotos de TV, equipos de audio, sensores de movimiento y termómetros infrarrojos.

En este tutorial explicaremos los conceptos básicos del infrarrojo y luego explicaremos un programa básico para controlar 2 leds mediante el un control remoto infrarrojo.

¿Qué es infrarrojo?

Infrarrojo (IR) es una forma de luz similar a la luz visible. La única diferencia entre luz IR y la luz visible es la frecuencia y la longitud de onda. La radiación IR se encuentra fuera del rango visible de luz, por lo que los humanos no pueden verla:

Debido a que el IR es un tipo de luz, la comunicación IR requiere línea directa de vista desde el transmisor a receptor.

En el siguiente diagrama se puede observar el diagrama lógico de una comunicación IR con arduino:

A la izquierda se encuentra el control remoto, el cual tiene un codificador el cual modula una señal que es transmitida a través del LED IR, la señal viaja por el aire hasta que la recibe el Diodo receptor IR, el cual se conecta al Arduino y es decodificada para utilizarla como deseemos.

Lista de componentes:

  • Arduino Uno
  • Control Remoto IR
  • Receptor IR VS1838
  • 2 leds, color a elección
  • 2 resistencias de 1k ohms
  • Cables de conexión

Imágenes ilustrativas de componentes:

PASO 1 : conexión de componentes:

A continuación, se muestra el circuito para realizar el proyecto.

El circuito encenderá el LED cuando uno de los botones es presionado, el programa se puede modificar fácilmente para colocar mas leds u otros componentes como motores, relays, etc.

Paso 2 programación:

Primeros se debe instalar la librería IRremote desde el siguiente link:

http://z3t0.github.io/Arduino-IRremote/

Para instalar la librería desde un archivo .zip se debe abrir el Arduino IDE, luego ir a programa>incluir librería> añadir librería .ZIP, luego seleccionar el archivo descargado anteriormente.

Antes de cargar el programa para controlar los leds debemos encontrar los codigos correspondientes a cada botón de nuestro control remoto, para eso debemos cargar el siguiente programa y abrir el monitor serial:

#include <IRremote.h>

const int RECV_PIN = 7;

IRrecv irrecv(RECV_PIN);

decode_results results;

void setup(){

    Serial.begin(9600);

    irrecv.enableIRIn();

    irrecv.blink13(true);

}

void loop(){

  if (irrecv.decode(&results)){

    Serial.println(results.value, HEX);

    irrecv.resume();

  }

}

Una vez cargado el programa anterior, apretamos cada botón del control remoto y en el monitor serial nos aparecerá el código hexadecimal correspondiente a cada botón:

Una vez que tenemos identificado los códigos correspondientes a cada botón de nuestro control remoto, podemos continuar con el programa.

El siguiente código colocara el pin 10 en estado alto (HIGH) por 2 segundo cuando el botón “5” del control sea presionado, y colocara en estado alto (HIGH) el pin 11 por dos segundos cuando el botón “2” del control remoto.

Debemos recordar de modificar el código hexadecimal de los botones en el programa con el código hexadecimal que identificamos anteriormente.

#include <IRremote.h>

const int RECV_PIN = 7;

IRrecv irrecv(RECV_PIN);

decode_results results;

const int redPin = 10;

const int greenPin = 11;

void setup(){

    irrecv.enableIRIn();

    irrecv.blink13(true);

    pinMode(redPin, OUTPUT);

    pinMode(greenPin, OUTPUT);

}

void loop(){

    if (irrecv.decode(&results)){

      switch(results.value){

      case 0xFF38C7: //Keypad button “5”

      digitalWrite(redPin, HIGH);

      delay(2000);

      digitalWrite(redPin, LOW);

  }

   switch(results.value){

     case 0xFF18E7: //Keypad button “2”

     digitalWrite(greenPin, HIGH);

    delay(2000);

     digitalWrite(greenPin, LOW);

    }

    irrecv.resume();

  }

}

Aprieta el botón subir para enviar el código al Arduino. Y ahora deberías poder controlar los leds mediante el control remoto!

Fuentes:  http://www.circuitbasics.com/arduino-ir-remote-receiver-tutorial/