Lâmpada RGB controlada remotamente IR usando Arduino

Lámpara RGB con control remoto por infrarrojos con Arduino

Arduino se puede utilizar para variar diferentes colores en la lámpara RGB (LED). Sabemos que Arduino puede variar la intensidad del LED utilizando sus salidas analógicas, generando PWM. La lámpara RGB tiene 3 LED internos: rojo, verde y azul. Arduino varía la intensidad de los tres LED rojo, verde y azul y, por lo tanto, proporciona diferentes mezclas de estos tres colores y genera diferentes colores como CYAN, PINK, AMARILLO, MAGENTA, BLANCO, etc. Como máximo, podemos tener muchas combinaciones de colores, es decir, diferentes colores. Por lo tanto, Arduino puede generar muchos colores diferentes utilizando una lámpara RGB.

¿Qué pasaría si pudiéramos encender o apagar la lámpara RGB o variar sus diferentes colores usando el control remoto IR? Especialmente el mando a distancia IR portátil, normal y fácilmente disponible, que podemos encontrar en casi todos los hogares para TV, aire acondicionado, sistemas de música, DVD o incluso STB (decodificador). Significa que podemos encender o apagar la lámpara o configurar cualquier color de lámpara usando este control remoto por infrarrojos, cualquier control remoto por infrarrojos. ¿Suena interesante?

El proyecto presentado demuestra cómo encender/apagar o variar los colores de la lámpara RGB usando cualquier control remoto IR (como TV, DVD, AC, STB, etc.) con la ayuda de Arduino. El proyecto utiliza un control remoto IR decodificador normal (STB), un sensor IR TSOP y una placa Arduino UNO. Cualquiera puede utilizar cualquier tipo de control remoto por infrarrojos. Solo necesita cambiar los códigos del control remoto en el boceto (programa) Arduino para el control remoto. Este procedimiento también se describe aquí al explicar el funcionamiento. Así que veamos cómo se hace esto. Primero, vea el diagrama del circuito seguido de su descripción y funcionamiento.

DESCRIPCIÓN DEL CIRCUITO

Como se muestra en la figura, el circuito se construye utilizando 3 componentes, solo una placa Arduino, un sensor de infrarrojos y un LED RGB.

• El sensor TSOP1738 tiene 3 terminales (1) Vcc (2) Gnd y (3) salida. Su terminal Vcc recibe 5 V de la placa y el terminal Gnd está conectado a tierra de la placa. La salida del sensor está conectada al pin 12 de entrada digital en la placa Arduino.

• El LED RGB es del tipo ánodo común. Su ánodo común recibe alimentación de 5 V de la placa a través de la resistencia limitadora de corriente y los terminales LED rojo, verde y azul están conectados a los pines de salida analógica 9, 10 y 11 respectivamente.

Aquí está el complemento de la disposición del circuito.

Protótipo de controlador de lâmpada RGB baseado em Arduino e IR Remte

Figura 1: Prototipo de controlador de lámpara RGB basado en Arduino e IR Remte

OPERACIÓN DEL CIRCUITO

En primer lugar tenemos que decidir cuáles son los diferentes botones del mando a distancia IR que utilizaremos para variar los colores de la bola RGB. Queremos realizar las siguientes acciones -:

1. Encendido/apagado de la lámpara RGB

2. Aumentar/disminuir la intensidad del color rojo

3. Aumentar/disminuir la intensidad del color verde

4. Aumenta/disminuye la intensidad del color azul.

Entonces necesitamos 7 botones. Utilicé el control remoto del decodificador (STB) que tiene muchos botones, como botones de 0 a 9 dígitos, botones de control de volumen, botones para subir/bajar canales, botones de flecha, etc. De todos estos botones, he seleccionado los siguientes 7 botones para diferentes operaciones:

Tabela listando botões do controle remoto IR e respectivas funções no controle de lâmpada RGB

Fig. 2: Tabla que enumera los botones del control remoto IR y sus respectivas funciones en el control de lámpara RGB

Después de decidir qué botones, el siguiente paso es decodificar los códigos de esos botones. Como sabemos, cuando se presiona cualquier botón de forma remota, se enviará un código y, en función de ese código, se realizará la acción. Entonces, para decodificar estos códigos utilicé las funciones IRremote y la biblioteca IRremote para Arduino, disponible en Internet.

Luego descargue la biblioteca y use un ejemplo para decodificar los códigos de los botones del control remoto. Cargue el programa en el microcontrolador Arduino y conecte el sensor de infrarrojos como se muestra en la figura. Ahora apunte el control remoto al sensor de infrarrojos y presione el botón. Abra el monitor de serie y podrá ver el código del botón presionado en forma de números. Anote los códigos de los botones necesarios, como anoté los códigos de acuerdo con la siguiente tabla:

Tabela listando botões do controle remoto IR e respectivos códigos IR

Fig. 3: Tabla que enumera los botones del control remoto por infrarrojos y sus respectivos códigos de infrarrojos

En el boceto de Arduino anterior, los códigos correspondientes al botón presionado para realizar una acción se utilizan según la tabla anterior. Ahora veamos el funcionamiento real.

• Cuando se presiona el botón de encendido con el control remoto, la lámpara RGB se encenderá. Al presionar el mismo botón una vez más se apagará la lámpara RGB. Entonces, el botón de encendido del control remoto se usa para encender/apagar la lámpara RGB. El mensaje también se muestra en el monitor de serie como "bombilla RGB ENCENDIDA" y "bombilla RGB APAGADA".

• El botón para subir el volumen se usa para aumentar la intensidad del color rojo (LED ROJO) y el botón para bajar el volumen disminuye la intensidad del LED ROJO. La intensidad del LED ROJO aumenta del 1% al 100%. A medida que se presionan los botones, el ancho del pulso en el pin 11 de la salida analógica aumenta o disminuye de 1 a 100% para cambiar la intensidad del LED rojo. El mensaje se muestra en un monitor en serie como "la intensidad del rojo ha aumentado el XX%" o "la intensidad del rojo ha disminuido el XX%".

• Del mismo modo, para cambiar la intensidad del color azul se utilizan otros dos botones CH+ y CH-. El botón CH+ aumentará la intensidad del color azul y CH- la disminuirá. Estos dos botones aumentarán o disminuirán el ancho de pulso en el pin 9 de la salida analógica y así variarán la intensidad del LED azul del 1 al 100%.

• Finalmente, para variar la intensidad del LED verde se utilizan los botones de flecha arriba y abajo. El botón de flecha hacia arriba aumentará la intensidad y la tecla de flecha hacia abajo disminuirá la intensidad. Estos dos botones aumentarán o disminuirán el ancho del pulso en el pin 10 de la salida analógica y variarán la intensidad del LED verde de 1 a 100%.

• Entonces, al cambiar/variar/establecer diferentes intensidades de color usando estos seis botones podemos obtener diferentes colores de la lámpara RGB.

Código fuente del proyecto

###

 #incluir


 intIRpin = 12; // pin para el sensor de infrarrojos


 int rojo = 9;

 int verde = 10;

 int azul = 11;

 
/////////////////// valores iniciales de intensidad de color//////////////////////

 int red_intensity=130,i; 

int blue_intensidad=130;

 int green_intensidad=130;

 IRrecv irrecv(IRpin);

 resultados decode_results;


 configuración vacía

 {

 Serie.begin(9600); // inicializa la comunicación serial

 Serial.println("Luz RGB con control remoto");

 irrecv.enableIRIn; //Inicia el receptor

 }


 bucle vacío

 {

 // bucle hasta que no se presione ningún botón y no se reciba ningún código

 while(!(irrecv.decode(&resultados))); 

si (irrecv.decode(&resultados)) // cuando se recibe el código

 { //comenzar a comparar resultados

 si(resultados.valor==6296) // para el botón de encendido

 {

 analogWrite(rojo,rojo_intensidad); // enciende la bombilla con
 
analogWrite(verde,intensidad_verde); //color predeterminado

 analogWrite(azul,blue_intensity);

 Serial.println("Bombilla RGB ENCENDIDA"); // mostrar mensaje

 }

 de lo contrario si (resultados.valor==2200) // para tiempos pares

 {

 escritura analógica(rojo,255); //apagar la bombilla

 escritura analógica(verde,255);

 escritura analógica(azul,255);

 Serial.println("Bombilla RGB apagada");

 }

 de lo contrario si (resultados.valor==6338) // para el botón de subir volumen

 {

 // disminuir el ancho del pulso significa aumentar la intensidad del color

 if(intensidad_roja>5) intensidad_roja-=25;

 Serial.print("la intensidad del rojo aumentó a ");

 i = 100-intensidad_roja*100/255; // convertirlo en 1 a 100%

 Serie.println(i); // mostrarlo en el monitor serie
 
analogWrite(rojo,rojo_intensidad);

 }

 de lo contrario si (resultados.valor==6292) // para el botón para bajar el volumen

 {

 // aumentar el ancho del pulso significa disminuir la intensidad del color

 if(intensidad_roja<255) intensidad_roja+=25;

 Serial.print("la intensidad del rojo disminuyó a ");

 i= 100-intensidad_roja*100/255; // convertirlo en 1 a 100%

 Serie.println(i); // mostrarlo en el monitor serie

 analogWrite(rojo,rojo_intensidad);

 }

 de lo contrario si (resultados.valor==2205) // igual que arriba para el LED de color verde

 {

 if(intensidad_verde>5) intensidad_verde-=25;

 Serial.print("la intensidad del verde aumentó a ");

 i=100 - intensidad_verde*100/255;

 Serie.println(i);

 analogWrite(verde,intensidad_verde);

 }

 de lo contrario si (resultados.valor==2199)

 {

 if(intensidad_verde<255) intensidad_verde+=25;
 
Serial.print("la intensidad del verde disminuyó a ");

 i=100 - intensidad_verde*100/255;

 Serie.println(i);

 analogWrite(verde,intensidad_verde);

 }

 de lo contrario si (resultados.valor==6377) //igual que arriba para el LED de color azul

 {

 if(intensidad_azul>5) intensidad_azul-=25;

 Serial.print("la intensidad del azul aumentó a ");

 i=100 - intensidad_azul*100/255;

 Serie.println(i);

 analogWrite(azul,blue_intensity);

 }

 de lo contrario si (resultados.valor==6378)

 {

 if(intensidad_azul<255) intensidad_azul+=25;

 Serial.print("la intensidad del azul disminuyó a ");

 i=100 - intensidad_azul*100/255;

 Serie.println(i);

 analogWrite(azul,blue_intensity);

 }

 retraso(200); // espera 200 ms

 irrecv.resume; // Recibe el siguiente valor

 }

 }

###

Diagramas de circuito

Diagrama de circuito: controlador de bombilla RGB basado en IR Remte

Vídeo del proyecto

Conteúdo Relacionado

En cada vehículo hay una red de sensores integrada...
El controlador del motor es uno de los componentes...
ESP32-CAM es un módulo de cámara compacto que combina...
La evolución de los estándares USB ha sido fundamental...
SCHURTER anuncia una mejora de su popular serie SWZ...
Visual Communications Company (VCC) ha anunciado sus nuevos tubos...
A Sealevel Systems anuncia o lançamento da Interface Serial...
A STMicroelectronics introduziu Diodos retificadores Schottky de trincheira de...
Determinar uma localização precisa é necessário em várias indústrias...
O novo VIPerGaN50 da STMicroelectronics simplifica a construção de...
A Samsung Electronics, fornecedora de tecnologia de memória avançada,...
O mercado embarcado tem uma necessidade de soluções de...
Probablemente se haya encontrado con el término " resistencia...
Probablemente tenga un aislante de soporte si ha notado...
Probablemente haya visto un aislante colocado en postes de...
Probablemente hayas visto aisladores de grillete entronizados en postes...
Probablemente hayas experimentado situaciones en las que controlar un...
Regresar al blog

Deja un comentario

Ten en cuenta que los comentarios deben aprobarse antes de que se publiquen.