domingo, 8 de octubre de 2017

Arduino: Grabación y lectura de Infrarrojos (IR) y control de 4 relés

Buenas a todos los Arduineros y Arduineras!!!

Esta semana he estado trasteando con la comunicación infrarroja o IR (Infra Red). Este tipo de comunicación es unidireccional, es decir, la comunicación se efectúa en un solo sentido.

Casi todos los controles remoto de TV, reproductores de DVD, incluso el mando del aire acondicionado funcionan con este sistema.


¿Que es la luz infrarroja?

La luz infrarroja o radiación infrarroja es un tipo de radiación electromagnética y térmica de mayor longitud de onda que la luz visible pero menor que las microondas.

Tabla del espectro infrarrojo
Tabla del espectro infrarrojo

Esta "luz" no se puede ver a simple vista ya que el ojo humano no es capaz de captar esa longitud de onda, aun así siempre podemos comprobar si el infrarrojo de nuestro control remoto funciona mediante cualquier cámara de teléfono móvil.

Solo tenemos que apuntar el emisor del control remoto al objetivo de la cámara y pulsar cualquier botón, el led IR debe encenderse en un color violáceo como en la imagen:

Vista de un Led infrarrojo con la cámara de un móvil


Para este proyecto solo nos hacen falta dos librerías: IRremote.h y EEPROM.h.

IRremote.h sera la encargada de recibir y decodificar la señal que llega desde el control remoto.

Funciones para la recepción de datos con IRremote.h:

  • IRrecv irrecv(pin): Crea el objeto "irrecv", puedes cambiar este nombre a tu elección.
  • irrecv.enableRIn(): Inicia el proceso de recepción de datos.
  • irrecv.decode(&results): Recibe el código y lo almacena en "results".
  • irrecv.resume(): Después de recibir, hay que llamar a este comando para resetear y preparar para recibir el siguiente código.
  • irrecv.blink13(true): Activa el led del pin 13 durante la recepción de los códigos.

Existen otros comandos para enviar datos desde el Arduino a un receptor, podéis encontrar más información sobre estos comandos en la página pjrc.com.


Conexiones:

En este caso he optado por poner el pin 2 como pin receptor de la señal infrarroja y los pines 3, 4, 5, 6 para el manejo de los relés.

Este modulo de relés en particular funciona de forma inversa, es decir, cuando recibe un 1 lógico (+5v), la bobina del rele esta desactivada y cuando recibe un 0 lógico (0V), la bobina se activa. Podríamos decir que es como el funcionamiento de un LED a la inversa.

El programa consta de 3 opciones de menú y un funcionamiento normal. Si no estamos en ninguna de las opciones del menú el receptor seguirá funcionando de una manera normal, es decir, on / off con una pulsación de tecla del control remoto.


El menú:

Este tipo de menú es el mismo que vengo usando en las entradas anteriores como Arduino: Menú de comandos AT para configurar HC-06 o Comandos AT para módulo ESP8266

Es un menú en formato texto plano, fácil manejar y que podemos importar a cualquier proyecto. En esta ocasión sus opciones son:

  • Comprobar mando: Nos muestra en el terminal los datos recibidos del control remoto.
  • Guardar teclas: Pulsaremos las 4 teclas de control de los relés.
  • Ayuda: Información sobre el programa.

Mientras estemos en cualquiera de las 2 primeras opciones el sistema de reles estará desactivado para que no haya problemas durante su configuración.

Opciones Principales

Comprobando el control remoto

Configurando los botones del control remoto

Menú IR
Encendido y apagado de relés 1= Off / 0= On

Conclusión:

En síntesis, la EEPROM interna de Arduino es un recurso importante para proyectos de automatización mediante infrarrojos (IR) y relés, como el sistema de control remoto presentado en este tutorial.

El uso adecuado de esta memoria nos permite:
  • Almacenamiento persistente de códigos IR:
    • Grabar señales de mandos remotos comerciales (TV, AC) para replicarlas luego.
    • Evitar reprogramación tras cada reinicio.
  • Gestión del estado de los relés:
    • Recordar la última configuración de luces/electrodomésticos controlados por relés.
    • Implementar lógicas avanzadas (ej: "toggle" con un solo botón).
  • Ventajas en domótica:
    • Funcionamiento autónomo sin necesidad de configuración constante.
    • Integración sencilla con bibliotecas como IRremote y módulos relé.

Ahora ya toca usar la imaginación y buscar aplicaciones donde queraís usar este tipo de comunicación, sencilla pero muy utilizada por todo tipo de aparatos, espero que os guste!!!

Saludos a todos!!!

No hay comentarios :

Publicar un comentario