Arduino Mando a distancia infrarrojo

Vamos a ver cómo conectar mando a distancia IR y un receptor de infrarrojos al Arduino. Te diremos qué librería usar para el receptor IR, te demostraremos un programa para probar el funcionamiento del receptor IR desde el mando a distancia y desglosaremos los comandos de Arduino. Tenga en cuenta que el sensor infrarrojo no es adecuado para todos los mandos a distancia, ya que la frecuencia de la señal puede ser diferente.

Para esta actividad necesitaremos:

  • Arduino Uno / Arduino Nano / Arduino Mega
  • módulo receptor infrarrojo KY-022;
  • LEDs y resistencias de 220 Ohm;
  • servomotor;
  • protoboard y cables de conexion;
  • libraria IRremote.h

Receptor de infrarrojo Arduino pinout, datasheet

Receptor de infrarrojo Arduino datasheet, pinout
Receptor de infrarrojo Arduino datasheet, pinout

Los receptores de infrarrojos se utilizan en los electrodomésticos por su asequibilidad y facilidad de uso. Estos dispositivos permiten el control remoto de los aparatos y pueden encontrarse en todo tipo de dispositivos. El receptor de infrarrojos es capaz de recibir y procesar una señal, en forma de pulsos de una duración y frecuencia predefinidas. A pesar de ello, el módulo Bluetooth está ganando poco a poco en popularidad.

Características de módulo KY-022:

  • Voltaje de funcionamiento: 2.7 V a 5 V
  • Corriente de funcionamiento: 0.4 mA a 1.5 mA
  • Distancia de recepción: 18 m
  • Ángulo de recepción: ± 45º
  • Frecuencia portadora: 38 KHz
  • Filtro de luz ambiente hasta: > 500 LUX

El receptor de infrarrojos de Arduino tiene normalmente tres patas y consta de los siguientes componentes: Fotodiodo PIN, amplificador, filtro paso banda, detector de amplitud, filtro integrador y transistor de salida. La señal se envía al amplificador y luego al filtro de paso de banda, que se ajusta a una frecuencia y protege al receptor de las interferencias. Esta interferencia puede ser causada por cualquier aparato doméstico.

Conectar receptor de infrarrojo IR Arduino

Conexión módulo receptor de infrarrojo y LED
Conexión módulo receptor de infrarrojo Arduino y LED

Para conectar el receptor de infrarrojos al Arduino Uno, utiliza tres pines que se conectan a – GND, 5V y cualquier pin digital. Es aconsejable utilizar 3,3V para empezar, para no dañar el sensor de infrarrojos KY-022 al configurarlo. Conecte el receptor de infrarrojos según el diagrama anterior y conecte el LED al pin 12 de Arduino. Antes de descargar el programa, es necesario instalar la biblioteca IRremote.h, que no forma parte de las bibliotecas estándar.

Programa Arduino para módulo receptor infrarrojo

#include "IRremote.h"

IRrecv irrecv(A1);
decode_results results;

void setup() {
   Serial.begin(9600);
   irrecv.enableIRIn();
   pinMode(12, OUTPUT);
}

void loop() {
   if (irrecv.decode(&results)) {
      Serial.println(results.value);
    
      if (results.value == 16718055) { digitalWrite(12, HIGH); }
      if (results.value == 16724175) {  digitalWrite(12, LOW); }
 
      irrecv.resume();
   }
}

Explicación del código para módulo KY-022 receptor IR:

  1. la función irrecv.decode_results() de la biblioteca IRremote.h asigna el nombre de la variable results.value a las señales recibidas del mando a distancia;
  2. en las condiciones if (results.value == 16724175) tienes que poner tus valores, aparecerán en el puerto serie cuando se pulsen los botones del mando a distancia.

El sensor IR (módulo KY-022) se puede utilizar en muchos microcontroladores Arduino, incluyendo el control remoto de un servo Arduino desde un receptor IR (control remoto). Al configurarlo, hay que abrir el monitor serie del puerto IDE del Arduino y averiguar qué señal está enviando el botón de control remoto. Los códigos únicos resultantes deben utilizarse en el esquema después del doble signo de igualdad en la condición if().

Controlar servo con un mando a distancia
Controlar servomotor con un mando a distancia IR

Programa Arduino para mando a distancia y servo

#include "IRremote.h"
IRrecv irrecv(A1);
decode_results results;

#include "Servo.h"
Servo myservo;

void setup() {
   Serial.begin(9600);
   irrecv.enableIRIn();
   myservo.attach(9);
}

void loop() {
   if (irrecv.decode(&results)) {
      Serial.println(results.value);
    
      if (results.value == 16718055) { myservo.write(10); }
      if (results.value == 16724175) { myservo.write(90); }
 
      irrecv.resume();
  }
}

Explicación del código controlar servo con un mando a distancia:

  1. en las condiciones if (results.value == 16724175) tienes que poner tu código único, aparecerán en el monitor del puerto serie cuando se pulsen los botones del mando a distancia.

Conclusión. Para que la señal del mando a distancia sea recibida por el receptor IR del Arduino, el mando a distancia debe estar en la misma frecuencia que el filtro del receptor IR. Por lo tanto, no todos los mandos Arduino Nano funcionan. Debe seleccionar un receptor IR y un transmisor IR con la misma frecuencia. Después del filtro, la señal pasa por el detector de amplitud, el filtro integrador y el transistor de salida.


Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *