Controle cualquier dispositivo electrónico con un control remoto de TV | Tutorial de infrarrojos de Arduino
En este Tutorial de Arduino IR aprenderemos a controlar dispositivos electrónicos usando un control remoto de TV y un Arduino. Haremos algunos ejemplos comenzando desde el control de un LED simple, luego controlando la velocidad de un ventilador de CC, hasta el control de electrodomésticos de alto voltaje. Puede ver el siguiente video o leer el tutorial escrito a continuación.
Podemos notar que el LED frente al control remoto del televisor 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 para el ojo humano.
Entonces, 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 de infrarrojos.
En este tutorial usaremos el receptor IR V 34838 que tiene el siguiente diagrama de bloques desde donde podemos ver que amplificará, filtrará y demodulará la señal recibida y proporcionará una salida lógica limpia que sea aceptable para la entrada digital de la placa Arduino.
Luego, usando la biblioteca Arduino-IRremote de Ken Shirriff y su ejemplo de demostración, podemos ver desde el monitor en serie un código hexadecimal único para cada botón presionado que podemos usar al hacer nuestro programa.
Enlace a la biblioteca Arduino-IRremote de Ken Shirriff:https://github.com/z3t0/Arduino-IRremote
Puede obtener los componentes en cualquiera de los siguientes sitios:
Entonces controlaremos el color del LED usando los 4 botones de colores del control remoto de TV. Eso significa que primero necesitamos ver los códigos hexadecimales para cada uno de estos botones cargando el ejemplo IRrecvDemo y ejecutando Serial Monitor. Pulsaremos cada uno de estos botones y anotaremos sus códigos.
Ahora modificaremos el código de demostración de esta manera y agregaremos declaraciones if que se ejecutarán si se presiona un botón en particular. Entonces, para cada botón, estableceremos los valores RGB apropiados y el setColor() La función encenderá el LED en el color particular. Para obtener más detalles sobre cómo funciona un LED RGB con Arduino, puede consultar mi tutorial Arduino RGB.
Aquí están los esquemas del circuito del LED RGB controlado por infrarrojos de Arduino:
Componentes necesarios para este ejemplo:
En este ejemplo, controlará la velocidad de un ventilador de CC con los botones de avance y retroceso del control remoto del televisor. Usaremos este esquema de circuito para controlar la velocidad del ventilador, o en realidad controlaremos la señal PWM usando los botones. Para obtener más detalles sobre cómo funciona este esquema de circuito, puede consultar mi tutorial de Arduino Motors.
Aquí está el código fuente para este ejemplo. Entonces usando analogWrite() función enviaremos señal PWM a la base del transistor. El botón PLAY arrancará el motor a la velocidad máxima, o el ciclo de trabajo de la señal PWM será del 100 % y el botón STOP lo detendrá. El botón de avance aumentará la velocidad del ventilador con cada pulsació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 último ejemplo será el control de electrodomésticos de alto voltaje con el control remoto de TV. Para eso necesitaremos un módulo de relé. Usaré el módulo de relé HL-52S que tiene una clasificación de 10 A a 250 y 125 V CA. Aquí está el esquema del circuito del ejemplo de electrodomésticos de alto voltaje controlados por infrarrojos de Arduino. 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 alta tensión.
Como usaremos ALTA TENSIÓN, debemos ser muy cautelosos y le advierto aquí que el uso inadecuado o incorrecto podría provocar lesiones graves o la muerte y no asumo ninguna responsabilidad por sus acciones. Para obtener más detalles sobre cómo usar el relé y cómo hacer un enchufe para enchufar cualquier dispositivo electrónico, puede consultar mi Tutorial de Arduino Relay.
Aquí está el código fuente de este ejemplo:Cómo funciona
Controlar un LED RGB con un control remoto de TV
/*
* Controlling a RGB LED with a TV Remote
*
* Modified IRrecvDemo example from Ken Shirriff IRremote Library
* Ken Shirriff
* https://arcfn.com
*
* Modified by Dejan Nedelkovski,
* www.HowToMechatronics.com
*
*/
#include <IRremote.h>
int RECV_PIN = 8; // IR Receiver - Arduino Pin Number 8
IRrecv irrecv(RECV_PIN);
decode_results results;
int redPin = 5;
int greenPin = 6;
int bluePin = 7;
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
}
void loop() {
if (irrecv.decode(&results)) {
if (results.value == 0xF21D7D46) { // Red Button
setColor(255, 0, 0); // Sets Red Color to the RGB LED
delay(100);
}
if (results.value == 0x87CF1B29) { // Green Button
setColor(0, 255, 0); // Green Color
delay(100);
}
if (results.value == 0x6623D37C) { // Yellow Button
setColor(255, 255, 0); // Yellow Color
delay(100);
}
if (results.value == 0x854115F2) { // Blue Button
setColor(0, 0, 255); // Blue Color
delay(100);
}
if (results.value == 0x1639AB6E) { // Stop Button
setColor(0, 0, 0); // OFF
delay(100);
}
irrecv.resume(); // Receive the next value
}
delay(100);
}
// Custom made function for activating the RGB LED
void setColor(int red, int green, int blue)
{
analogWrite(redPin, red); // Sends PWM signal to the Red pin
analogWrite(greenPin, green);
analogWrite(bluePin, blue);
}
Code language: Arduino (arduino)Controlar la velocidad de un ventilador de CC con un control remoto de TV
/*
* Controlling a DC Fan Speed with a TV Remote
*
* Modified IRrecvDemo example from Ken Shirriff IRremote Library
* Ken Shirriff
* https://arcfn.com
*
* Modified by Dejan Nedelkovski,
* www.HowToMechatronics.com
*
*/
#include <IRremote.h>
int RECV_PIN = 8; // IR Receiver - Arduino Pin Number 8
int pwmPin = 7; // Arduino Pin Number 7 to the Base of the Transistor
int pwmValue;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup() {
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
pinMode( pwmPin, OUTPUT);
pwmValue = 0; // Starts the program with turned off motor
}
void loop() {
if (irrecv.decode(&results)) {
analogWrite(pwmPin, pwmValue);
if (results.value == 0xAFAF8374) { // PLAY Button
pwmValue = 255; // 100% Duty Cycle | Max Speed
}
if (results.value == 0x98519C65) { // STOP Button
pwmValue = 0; // 0% Duty Cycke | Turned off
}
if (results.value == 0x93F1BA08) { // FORWARD Button
if(pwmValue <= 245){
pwmValue = pwmValue + 10; // Increases the Duty Cycle of the PWM Signal
delay(20);
}
}
if (results.value == 0x71D086FF) { // BACKWARD Button
if(pwmValue >= 20){
pwmValue = pwmValue - 10; // Decreases the Duty Cycle of the PWM Signal
delay(20);
}
}
Serial.print(pwmValue);
Serial.print(" ");
Serial.println(results.value, HEX);
irrecv.resume(); // Receive the next value
}
delay(100);
}
Code language: Arduino (arduino)Control de electrodomésticos de alto voltaje con un control remoto de TV
/*
* Controlling High Voltage Home Appliances with a TV Remote
*
* Modified IRrecvDemo example from Ken Shirriff IRremote Library
* Ken Shirriff
* https://arcfn.com
*
* Modified by 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(); // Start the receiver
pinMode( relayOut, OUTPUT);
buttonState = HIGH; // Starts the program with turned off Relay. The relay input works inversly so HIGH state means deactivated relay
}
void loop() {
buttonState = digitalRead(relayOut);
if (irrecv.decode(&results)) {
if (results.value == 0xAFAF8374) { // PLAY Button
digitalWrite(relayOut, LOW); // Activates the relay
}
if (results.value == 0x98519C65) { // STOP Button
digitalWrite(relayOut, HIGH); // Deactivates the relay
}
irrecv.resume(); // Receive the next value
}
Serial.print(" ");
Serial.println(results.value, HEX);
delay(100);
}
Code language: Arduino (arduino)
Proceso de manufactura
- Control remoto universal usando Arduino, 1Sheeld y Android
- Controlar el aceptador de monedas con Arduino
- Control remoto de TV a batería con carcasa impresa en 3D
- ¡Arduino con Bluetooth para controlar un LED!
- Arduino Nano:Controla 2 motores paso a paso con joystick
- Animar una boca de Billy Bass con cualquier fuente de audio
- ThimbleKrox - Control del mouse con los dedos
- Controla una cucaracha con Arduino por menos de $ 30
- Control de coche con Arduino Uno y Bluetooth
- Controla el brazo del robot Arduino con la aplicación de Android
- Control de ventilador PWM de 4 pines y 25 kHz con Arduino Uno