Arduino con Control Remoto IR: Interfaz y Código

¡Conéctate conmigo en las redes sociales para actualizaciones y contenido!

En este tutorial, usaremos Arduino con control remoto IR. El mando a distancia IR se utiliza para controlar los aparatos a corta distancia. La pulsación del botón en el control remoto demuestra la pantalla LCD I2C.

Introducción remota IR

Un control remoto IR generalmente consiste en un par de dispositivos (transmisor y receptor) capaces de intercambiar un conjunto definido de señales desde una distancia corta. El control remoto, generalmente un dispositivo portátil con botones o teclas, transmite señales para administrar un dispositivo conectado al receptor. La señal intercambiada funciona por infrarrojos o por radiofrecuencia. Después de recibir la señal, el dispositivo ejecuta la acción apropiada, como cambiar la estación de TV, alterar el volumen o encender o apagar el dispositivo.

El control remoto IR permite el control inalámbrico de muchos electrodomésticos, incluidos televisores, reproductores de DVD, acondicionadores de aire y otros electrodomésticos.

Principio de funcionamiento del control remoto IR

A través de un módulo transmisor IR (o RF), el control remoto transmite una señal con una modulación diferente según la tecla presionada.

El dispositivo receptor, que tiene un módulo receptor IR (o RF) y está controlado por un microcontrolador Arduino, recibe la señal después de que se haya emitido y convierte la información de radio modulada en un valor, según una tabla preconfigurada que coincida con la señal. modulación y la salida.

Este tutorial le mostrará cómo usar Arduino con control remoto IR, mostrando los comandos remotos en una pantalla LCD I2C.

Lo que necesitamos

Como de costumbre, sugiero agregar desde ahora a su carrito de compras de comercio electrónico favorito todo el hardware necesario, para que al final pueda evaluar los costos generales y decidir si continúa con el proyecto o los elimina del carrito de compras. Entonces, el hardware será solo:

Procedimiento paso a paso

Diagrama de cableado de Arduino con control remoto IR y LCD

La figura representa el diagrama de cableado del control remoto IR con Arduino Uno y LCD I2C. Este módulo LCD I2C debe conectarse a los pines I2C del Arduino.

Diagrama de cableado del control remoto con Arduino Uno

El receptor IR y la pantalla LCD con el Arduino se conectan en este patrón.

Receptor IRArduino
Pin 1 (lado derecho) Alfiler 2
Alfiler 2 TIERRA
Alfiler 3 5V

Arduino con receptor remoto IR

I2C LCDArduino
Clavija SCL A5
PIN SDA A4
Alfiler 3 CCV
Alfiler 4 TIERRA

Diagrama de cableado de LCD I2C con Arduino Uno

Obtenga el código y las bibliotecas de control remoto

Conecte su PC a Arduino y abra Arduino IDE. Para los primeros pasos, puede consultar el tutorial Conexión de PC con Windows con Arduino. Puedes obtener el código .ino desde mi área de descargas con el siguiente enlace:

ir-remote.ino

También necesita instalar las siguientes bibliotecas, de acuerdo con mi tutorial Instalar bibliotecas de Arduino: métodos para agregar bibliotecas con el IDE de Arduino.

Biblioteca IRremote desde el administrador de la biblioteca Biblioteca de cristal líquido desde el administrador de la biblioteca

Código Explicación

Sección 1: Antes de la configuración y la biblioteca

Esta es la sección antes de la configuración que usaremos para la adición de bibliotecas.

#include “IRremote.h” es la biblioteca para realizar la comunicación con el control remoto.

#include “LiquidCrystal_I2C.h” es la biblioteca para realizar la comunicación con la pantalla LCD I2C.

La etiqueta secundaria del control remoto IR y la biblioteca LCD se crea con el nombre del receptor y la pantalla LCD respectivamente.

La dirección I2C de la pantalla LCD da como 0x27.

#include <IRremote.h> #include <LiquidCrystal_I2C.h> #define PIN_RECEIVER 2   // Signal Pin of IR receiver IRrecv receiver(PIN_RECEIVER); #define I2C_ADDR    0x27 #define LCD_COLUMNS 16 #define LCD_LINES   2 LiquidCrystal_I2C lcd(I2C_ADDR, LCD_COLUMNS, LCD_LINES);

Sección 2: Sección de configuración

En la sección de configuración, la primera línea inicializa la comunicación serial entre la placa Arduino y la computadora, con una tasa de baudios de 9600.

void setup() { Serial.begin(9600);

La segunda línea inicializa la biblioteca LiquidCrystal, que permite que Arduino controle una pantalla LCD de 16 × 2 caracteres. La tercera línea enciende la luz de fondo de la pantalla LCD. La cuarta línea imprime el mensaje “” en la pantalla LCD.

  lcd.init();   lcd.backlight();   lcd.print("<press a button>");

La quinta línea inicializa el receptor IR, lo que permite que Arduino reciba señales de un control remoto infrarrojo.

  receiver.enableIRIn(); // Start the receiver }

Sección 3: Sección de bucle

Esta versión particular de la función loop() en la placa Arduino espera que el módulo receptor capte una señal IR. La sentencia if llama al método decode() del módulo receptor para determinar si se ha recibido una señal IR. Si el resultado de decode() es distinto de cero, se ha detectado una señal IR y el código llama a la función translateIR().

void loop() {   // Checks received an IR signal   if (receiver.decode()) {     translateIR();     receiver.resume();  // Receive the next value   } }

Sección 4: Sección de funciones

El propósito de la función lcdPrint() es formatear la impresión de una cadena de caracteres proporcionada en una pantalla LCD de 16×2. Antes de imprimir el mensaje «botón presionado:» en la primera línea de la pantalla, la función primero borra la pantalla y mueve el cursor a la esquina superior izquierda de la pantalla (0,0). Luego, la cadena de entrada se imprime junto con el texto «código:» y el valor de receiver.decodedIRData.command, que representa el código IR recibido por el módulo receptor. Finalmente, el cursor se mueve a la segunda línea y se muestra la salida.

Según el código IR que ha recibido el módulo receptor, la función translateIR() está diseñada para ejecutar la acción necesaria. La función compara el valor de receiver.decodedIRData.command con un conjunto de valores predefinidos, cada uno de los cuales está asociado con un botón particular en el control remoto IR, usando una declaración de cambio.

void lcdPrint(char* text) {   lcd.clear();   lcd.setCursor(0, 0);   lcd.print("button pressed:");   lcd.setCursor(0, 1);   lcd.print(text);   lcd.print(" code: ");   lcd.print(receiver.decodedIRData.command); }  void translateIR() {   // Takes command based on IR code received   switch (receiver.decodedIRData.command) {     Serial.println(receiver.decodedIRData.command);     case 162:       lcdPrint("POWER");       break;     case 226:       lcdPrint("MENU");       break;     case 34:       lcdPrint("TEST");       break;     case 2:       lcdPrint("PLUS");       break;     case 194:       lcdPrint("BACK");       break;     case 224:       lcdPrint("PREV.");       break;     case 168:       lcdPrint("PLAY");       break;     case 144:       lcdPrint("NEXT");       break;     case 104:       lcdPrint("num: 0");       break;     case 152:       lcdPrint("MINUS");       break;     case 176:       lcdPrint("key: C");       break;     case 48:       lcdPrint("num: 1");       break;     case 24:       lcdPrint("num: 2");       break;     case 122:       lcdPrint("num: 3");       break;     case 16:       lcdPrint("num: 4");       break;     case 56:       lcdPrint("num: 5");       break;     case 90:       lcdPrint("num: 6");       break;     case 66:       lcdPrint("num: 7");       break;     case 74:       lcdPrint("num: 8");       break;     case 82:       lcdPrint("num: 9");       break;     default:       lcd.clear();       lcd.print(receiver.decodedIRData.command);       lcd.print(" other button");   } }

Arduino con control remoto IR y resultados LCD

Las siguientes imágenes muestran cómo funciona el código en Arduino con IR Remote.

Los resultados muestran el botón presionado en el control remoto para mostrar en la pantalla LCD que se conecta a Arduino Uno. Esto le permite al usuario ver qué botón presiona en el control remoto, y el programa puede tomar las acciones apropiadas según el botón presionado.

Inicialmente, solicita presionar el botón en la pantalla LCD, según la presión del botón, muestra su nombre y el comando de código que recibe. En los resultados, el botón de encendido, el botón 1 y el número 5 demuestran.

Simulación de control remoto IR 1 con Arduino Uno Simulación de control remoto IR botón de encendido presionado con Arduino Uno Simulación de control remoto IR botón 1 presionado con Arduino Uno Simulación de control remoto IR botón 5 presionado con Arduino Uno