Controla Cualquier Dispositivo con tu Mando TV usando Arduino IR: Tutorial Paso a Paso
En este tutorial Arduino IR aprenderemos a controlar dispositivos electrónicos usando un mando a distancia de TV y un Arduino. Haremos algunos ejemplos empezando por controlar un simple LED, luego controlar la velocidad de un ventilador DC, hasta controlar electrodomésticos de alto voltaje. Puedes ver el siguiente video o leer el tutorial escrito a continuación. Podemos notar que el LED frente al mando de TV parpadea cuando presionamos un botón. En realidad solo podemos ver esto a través de una cámara porque es una luz infrarroja y no es visible al ojo humano. Así que el parpadeo significa que cuando presionamos un botón, el LED infrarrojo está enviando una ráfaga de luz o pulsos que necesitamos recibir con un receptor infrarrojo. En este tutorial usaremos el receptor IR V 34838 que tiene el siguiente diagrama de bloques desde donde podemos ver que amplificará, filtrará y desmodulará la señal recibida y proporcionará una salida lógica limpia que es aceptable para la entrada digital de la placa Arduino. Luego, usando la librería Arduino-IRremote de Ken Shirriff y su ejemplo de demostración, podemos ver desde el monitor serial un código hexadecimal único para cada presión de botón que podemos usar al hacer nuestro programa. Enlace a la librería Arduino-IRremote de Ken Shirriff: https://github.com/z3t0/Arduino-IRremote Puedes conseguir los componentes en cualquiera de los siguientes sitios: Así que controlaremos el color del LED usando los 4 botones de colores del mando de TV. Eso significa que primero necesitamos ver los códigos hexadecimales para cada uno de estos botones subiendo el ejemplo IRrecvDemo y ejecutando el Monitor Serial. Presionaremos cada uno de estos botones y anotaremos sus códigos. Ahora modificaremos el código demo como esto y añadiremos sentencias if que se ejecutarán si se presiona un botón particular. Así que para cada botón estableceremos valores RGB apropiados, y la función setColor() encenderá el LED en el color particular. Para más detalles sobre cómo funciona un LED RGB con Arduino, puedes consultar mi Tutorial Arduino RGB. Aquí está el esquema del circuito de Arduino IR controlando LED RGB: Componentes necesarios para este ejemplo: En este ejemplo controlaremos la velocidad de un ventilador DC usando los botones de avance y retroceso del mando de TV. Usaremos este esquema de circuito para controlar la velocidad del ventilador, o en realidad controlaremos la señal PWM usando los botones. Para más detalles sobre cómo funciona este esquema de circuito, puedes consultar mi Tutorial de Motores Arduino. Aquí está el código fuente para este ejemplo. Así que usando la función analogWrite() enviaremos señal PWM a la base del transistor. El botón PLAY iniciará el motor a velocidad máxima, o el ciclo de trabajo de la señal PWM será 100% y el botón STOP lo detendrá. El botón de avance aumentará la velocidad del ventilador con cada presión aumentando el ciclo de trabajo de la señal PWM, y el botón de retroceso la disminuirá. Componentes necesarios para este tutorial: El ejemplo final será controlar electrodomésticos de alto voltaje usando el mando de TV. Para eso necesitaremos un módulo relé. Usaré el módulo relé HL-52S que tiene una capacidad de 10 A a 250 y 125 V AC. Aquí está el esquema del circuito del ejemplo Arduino IR controlando electrodomésticos de alto voltaje. Con el pin número 7 de la placa Arduino controlaremos el relé en el que hay un zócalo para conectar cualquier dispositivo electrónico de alto voltaje. Como usaremos ALTO VOLTAJE, debemos ser muy cautelosos y te advierto aquí que el uso incorrecto o inadecuado podría resultar en lesiones graves o la muerte y no me hago responsable de tus acciones. Para más detalles sobre cómo usar el relé y cómo hacer un zócalo para enchufar cualquier dispositivo electrónico, puedes consultar mi Tutorial Arduino Relé. Aquí está el código fuente de este ejemplo:Cómo Funciona




Controlando un LED RGB con un Mando TV

/*
* Controlando un LED RGB con un Mando TV
*
* Ejemplo IRrecvDemo modificado de la librería IRremote de Ken Shirriff
* Ken Shirriff
* https://arcfn.com
*
* Modificado por Dejan Nedelkovski,
* www.HowToMechatronics.com
* */
#include <IRremote.h>
int RECV_PIN = 8; // Receptor IR - Pin Arduino Número 8
IRrecv irrecv(RECV_PIN);
decode_results results;
int redPin = 5;
int greenPin = 6;
int bluePin = 7;
void setup() {
Serial.begin(9600);
irrecv.enableIRIn(); // Iniciar el receptor
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
}
void loop() {
if (irrecv.decode(&results)) {
if (results.value == 0xF21D7D46) { // Botón Rojo
setColor(255, 0, 0); // Establece color rojo al LED RGB
delay(100);
}
if (results.value == 0x87CF1B29) { // Botón Verde
setColor(0, 255, 0); // Color verde
delay(100);
}
if (results.value == 0x6623D37C) { // Botón Amarillo
setColor(255, 255, 0); // Color amarillo
delay(100);
}
if (results.value == 0x854115F2) { // Botón Azul
setColor(0, 0, 255); // Color azul
delay(100);
}
if (results.value == 0x1639AB6E) { // Botón Stop
setColor(0, 0, 0); // APAGADO
delay(100);
}
irrecv.resume(); // Recibir el siguiente valor
}
delay(100);
}
// Función personalizada para activar el LED RGB
void setColor(int red, int green, int blue) {
analogWrite(redPin, red); // Envía señal PWM al pin rojo
analogWrite(greenPin, green);
analogWrite(bluePin, blue);
}Lenguaje: Arduino (arduino)
Controlando la Velocidad de un Ventilador DC con un Mando TV

/*
* Controlando la Velocidad de un Ventilador DC con un Mando TV
*
* Ejemplo IRrecvDemo modificado de la librería IRremote de Ken Shirriff
* Ken Shirriff
* https://arcfn.com
*
* Modificado por Dejan Nedelkovski,
* www.HowToMechatronics.com
* */
#include <IRremote.h>
int RECV_PIN = 8; // Receptor IR - Pin Arduino Número 8
int pwmPin = 7; // Pin Arduino Número 7 a la Base del Transistor
int pwmValue;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup() {
Serial.begin(9600);
irrecv.enableIRIn(); // Iniciar el receptor
pinMode(pwmPin, OUTPUT);
pwmValue = 0; // Inicia el programa con el motor apagado
}
void loop() {
if (irrecv.decode(&results)) {
analogWrite(pwmPin, pwmValue);
if (results.value == 0xAFAF8374) { // Botón PLAY
pwmValue = 255; // 100% Ciclo de Trabajo | Velocidad Máxima
}
if (results.value == 0x98519C65) { // Botón STOP
pwmValue = 0; // 0% Ciclo de Trabajo | Apagado
}
if (results.value == 0x93F1BA08) { // Botón ADELANTE
if(pwmValue <= 245){
pwmValue = pwmValue + 10; // Aumenta el ciclo de trabajo de la señal PWM
delay(20);
}
}
if (results.value == 0x71D086FF) { // Botón ATRÁS
if(pwmValue >= 20){
pwmValue = pwmValue - 10; // Disminuye el ciclo de trabajo de la señal PWM
delay(20);
}
}
Serial.print(pwmValue);
Serial.print(" ");
Serial.println(results.value, HEX);
irrecv.resume(); // Recibir el siguiente valor
}
delay(100);
} Lenguaje: Arduino (arduino)Controlando Electrodomésticos de Alto Voltaje con un Mando TV


/*
* Controlando Electrodomésticos de Alto Voltaje con un Mando TV
*
* Ejemplo IRrecvDemo modificado de la librería IRremote de Ken Shirriff
* Ken Shirriff
* https://arcfn.com
*
* Modificado por Dejan,
* www.HowToMechatronics.com
* */
#include <IRremote.h>
int RECV_PIN = 8;
int relayOut = 7;
int buttonState ;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup() {
Serial.begin(9600);
irrecv.enableIRIn(); // Iniciar el receptor
pinMode(relayOut, OUTPUT);
buttonState = HIGH; // Inicia el programa con el relé apagado. La entrada del relé funciona inversamente, así que estado HIGH significa relé desactivado
}
void loop() {
buttonState = digitalRead(relayOut);
if (irrecv.decode(&results)) {
if (results.value == 0xAFAF8374) { // Botón PLAY
digitalWrite(relayOut, LOW); // Activa el relé
}
if (results.value == 0x98519C65) { // Botón STOP
digitalWrite(relayOut, HIGH); // Desactiva el relé
}
irrecv.resume(); // Recibir el siguiente valor
}
Serial.print(" ");
Serial.println(results.value, HEX);
delay(100);
}Lenguaje: Arduino (arduino)
Proceso de manufactura
- Mando universal Android con Arduino, 1Sheeld y control IR
- Alcancía Inteligente: Controla un Aceptador de Monedas con Arduino Nano
- Mando a Distancia TV Personalizado con Arduino UNO: Alimentado por Batería, Carcasa Impresa en 3D
- Controla un LED por Bluetooth con Arduino – Guía DIY paso a paso
- Controla Dos Motores Paso a Paso con Arduino Nano y Joystick - Tutorial Sencillo
- Anima tu Pez Billy Bass con Cualquier Fuente de Audio: Guía Paso a Paso
- ThimbleKrox: Control de ratón montado en el dedo con Arduino Micro y MPU-6050
- Sistema DIY de Control de Cucarachas con Arduino – Construcción por Menos de $30
- Control remoto de coche con Arduino Uno y Bluetooth: Guía paso a paso
- Controla tu brazo robótico Arduino con app Android dedicada
- Control de Ventilador PWM de 4 Pines a 25 kHz con Arduino Uno – Montaje, Código y Pruebas