Los controles remotos infrarrojos están a nuestro alrededor. La mayoría de los electrodomésticos se controlan mediante controles remotos infrarrojos. En este artículo/video, aprenderá cómo construir un dispositivo que pueda decodificar (casi) cualquier control remoto IR y cambiar relés (cargas) de acuerdo con sus instrucciones. Puede usar esta función en una amplia variedad de aplicaciones sin tener que comprar nuevos controles remotos IR o hardware costoso (encender/apagar luces, abrir/cerrar cortinas, etc.). Usé el microcontrolador ATTiny85 como núcleo. del circuito Este dispositivo puede grabar hasta 3 códigos IR en la memoria EEPROM y cambiar entre 3 dispositivos separados. Cada relé puede manejar hasta 10 A de corriente. El mecanismo de conmutación de carga (encendido/apagado momentáneo, alternar, etc.) es programable por el usuario.
El esquema y la placa de circuito impreso se diseñaron con Altium Designer 21.4.1 y la biblioteca de componentes SamacSys (SamacSys Altium Plugin). La señal IR también se analizó utilizando un Siglent SDS2102X Plus/SDS1104X-E.
El dispositivo funciona de manera estable y responde bien a las señales IR transmitidas. ¡Así que comencemos a construir este cachorro!
Tabla de contenido
análisis de circuito
La figura 1 muestra un esquema del dispositivo. Obviamente, tanto las tareas de decodificación como las de conmutación las realiza un solo microcontrolador ATTiny85 de 8 pines.
Figura 1: Esquema de la placa del conmutador/decodificador remoto por infrarrojos
REG1 es el famoso regulador de orificio pasante 7805. [1] Un chip que proporciona un +5V fijo para el relé. C4 y C5 se utilizan para reducir el ruido. FB1 y C11 bloquean los picos de ruido de entrada. IC2 es el regulador TS2937CW-5.0. [2] Prepare una fuente de alimentación fija de +5 V para U1 e IC1. D8 indica una buena fuente de alimentación y C8 y C9 se utilizan para reducir el ruido de salida del regulador.
U1 es un módulo receptor de infrarrojos VS1838. [3]Dado que este módulo es sensible al ruido de potencia, R7 y C6 construyen un filtro RC de paso bajo para reducir aún más el ruido de potencia en U1. La salida de U1 está conectada al pin PB3 de IC1 y al pin de puerta del MOSFET Q4.
Q1 es un MOSFET de nivel lógico de canal P FDN360P. [4] Se utiliza para suministrar D7. D7 es un LED SMD que indica buena recepción (parpadeo) de la señal infrarroja. R8 limita la corriente D7. SW1 es el botón pulsador táctil SMD y C10 rebota el contacto mecánico del botón pulsador.
IC1 es el microcontrolador ATTiny85. [5]¡ATTiny85 es un lindo chip! Ofrece memoria flash de 8K y puede funcionar hasta 20 MHz con un oscilador de cristal externo. Para este proyecto, configuré el reloj a 8 MHz interno. C7 es un condensador de derivación y se utiliza para reducir el ruido de la fuente de alimentación.
Q1, Q2, Q3 son MOSFET de canal N SI2303. [6] Se utiliza para conmutar los relés K1, K2 y K3. R4, R5 y R6 son resistencias desplegables y D1, D2 y D3 son diodos de protección. D4, D5 y D6 son indicadores LED de activación del relé, y C1, C2 y C3 se utilizan para reducir el ruido en el inductor del relé.
ISP es un conector macho de 5 pines que se usa para programar IC1 usando el programador AVR-ISP. P1, P2 y P3 son conectores Phoenix de ángulo recto de 2 pines.
diseño del tablero
La Figura 2 muestra el diseño de la placa de circuito impreso del dispositivo conmutador de control remoto por infrarrojos. Esta es una placa PCB de 2 capas y la mayoría del empaque de los componentes es SMD.

FIGURA 2: DISEÑO DE LA PCB DE LA TARJETA DEL CONMUTADOR DEL CONTROL REMOTO IR
Como se mencionó en el resumen, utilizamos el software Altium Designer. [7] Diseño de esquemas y PCBs. Esta es una gran pieza de software que ofrece un entorno de diseño fácil de usar y muchas características útiles. A este proyecto le faltaban símbolos esquemáticos, huellas de PCB y modelos 3D para algunos de los componentes. Entonces, en lugar de perder el tiempo diseñando una biblioteca desde cero y aumentando el riesgo de errores y desajustes de componentes, use la biblioteca de componentes SamacSys con calificación IPC gratuita y use el complemento SamacSys Altium para integrar su proyecto de PCB Altium con importado directamente. [8]SamacSys proporciona complementos para la mayoría del software CAD de diseño electrónico, no solo para Altium Designer. La Figura 3 muestra el software CAD de diseño electrónico compatible.

Figura 3: Software CAD de diseño electrónico compatible con el complemento SamacSys
Específicamente, usé la biblioteca SamacSys para IC1. [9]IC2 [10]REG1[11]Q1…Q3[12]y Q4 [13], puede consultar el enlace de referencias. Otra opción es descargar la biblioteca de componentes de componentsearchengine.com e importarla manualmente. tu decides. La figura 4 muestra los componentes seleccionados en el complemento SamacSys Altium.

Figura 4: Bibliotecas de componentes seleccionadas en el complemento SamacSys Altium
construir y probar
La figura 5 muestra la placa PCB ensamblada. El PCB es fabricado por PCBWay y puedo decir que la calidad es buena. No tuve problemas para soldar los componentes. Así que te recomiendo que busques calidad. No vaya barato sólo para ahorrar unos cuantos dólares.

Figura 5: Placa PCB ensamblada del conmutador de control remoto IR
código
Usé Arduino IDE para escribir el código, pero no es necesario usar una placa Arduino para este propósito. Puede instalar un administrador de placa ATTiny personalizado y exportar archivos binarios compilados (archivos HEX). Luego programe el chip usando el programador AVR-ISP o similar fuera del IDE de Arduino. Ni siquiera necesita programar el gestor de arranque.
#include <IRremote.h>
#include <EEPROM.h>
byte keyCounter = 0;
int data1 = -1, data2 = -1, data3 = -1;
byte out2Toggle = 0;
void setup() {
pinMode(0, OUTPUT);
pinMode(1, OUTPUT);
pinMode(2, OUTPUT);
pinMode(4, INPUT);
IrReceiver.begin(3, DISABLE_LED_FEEDBACK);
}
void loop() {
data1 = EEPROM.read(0);
data2 = EEPROM.read(1);
data3 = EEPROM.read(2);
while (digitalRead(4) == 0)
{
if (IrReceiver.decode())
{
delay(200);
if (keyCounter == 0)
{
data1 = IrReceiver.decodedIRData.decodedRawData;
digitalWrite(2, HIGH);
delay(2000);
digitalWrite(2, LOW);
EEPROM.write(0, data1);
keyCounter ++;
} else if (keyCounter == 1) {
data2 = IrReceiver.decodedIRData.decodedRawData;
digitalWrite(1, HIGH);
delay(2000);
digitalWrite(1, LOW);
EEPROM.write(1, data2);
keyCounter ++;
} else if (keyCounter == 2) {
data3 = IrReceiver.decodedIRData.decodedRawData;
digitalWrite(0, HIGH);
delay(2000);
digitalWrite(0, LOW);
EEPROM.write(2, data3);
keyCounter = 0;
}
IrReceiver.resume();
}
}
if (IrReceiver.decode())
{
delay(200);
if (data1 == IrReceiver.decodedIRData.decodedRawData)
{
digitalWrite(2, HIGH);
delay(250);
digitalWrite(2, LOW);
delay(250);
}
if (data2 == IrReceiver.decodedIRData.decodedRawData)
{
switch (out2Toggle)
{
case 0:
digitalWrite(1, HIGH);
out2Toggle = 1;
break;
case 1:
digitalWrite(1, LOW);
out2Toggle = 0;
break;
}
}
if (data3 == IrReceiver.decodedIRData.decodedRawData)
{
digitalWrite(0, HIGH);
delay(250);
digitalWrite(0, LOW);
delay(250);
}
IrReceiver.resume();
}
}
Para compilar bocetos de Arduino para el microcontrolador ATTiny85, debe instalar “ATTinyCore” de Spence Konde. [14]Un administrador de tablero similar para los chips Tiny no funciona como se esperaba. Instale también la biblioteca “IRRemote” V3.3 (Por Armin Joachimsmeyer). [15] Incluir encabezados. Vea mi video de YouTube para más detalles.
prueba
Se utilizó el osciloscopio Siglent SDS2102X Plus para probar la salida del módulo VS1838 [16] (Figura 6). Se pueden utilizar otros modelos como SDS1104X-E [17]La pantalla del osciloscopio muestra que la señal es clara y libre de ruido. Cada fabricante de control remoto puede usar un protocolo de infrarrojos existente o patentado, y cada tecla de control remoto puede generar un código diferente, lo que da como resultado una señal de salida de control remoto diferente. Usé un control remoto SONY HDTV que naturalmente usa el protocolo infrarrojo SONY.

Figura 6: Señal de salida del módulo receptor de infrarrojos (U1)
Después de programar con éxito el microcontrolador, desconecte el programador y reinicie la placa (desconecte y vuelva a conectar la alimentación). Luego puede guardar la tecla de control remoto deseada (presionando y manteniendo presionado SW1). Siempre puede cambiar la clave guardada más tarde. Las claves se almacenan en la memoria EEPROM, por lo que un restablecimiento de energía no borra la memoria ni las claves almacenadas. Mire atentamente el video de YouTube para obtener más información.
lista de partes
La figura 7 muestra la lista de materiales.

Figura 7: Lista de materiales
Referencias
artículo: https://www.pcbway.com/blog/technology/Infrared_Remote_Control_Decoder___Switcher_Board.html
[1]: L7805 hoja de datos: https://www.st.com/resource/en/datasheet/l78.pdf
[2]: TS2937CW-5.0 Hoja de datos: http://www.taiwansemi.com/products/datasheet/TS2937_E15.pdf
[3]: Hoja de datos del módulo receptor de infrarrojos VS1838: https://www.elecrow.com/download/Infrared%20receiver%20vs1838b.pdf
[4]: FDN360P Hoja de datos: https://www.onsemi.com/pdf/datasheet/fdn360p-d.pdf
[5]: Hoja de datos ATTiny85-20SUR: http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-2586-AVR-8-bit-Microcontroller-ATtiny25-ATtiny45-ATtiny85_Datasheet.pdf
[6]: Hoja de datos Si2302: https://www.vishay.com/docs/63653/si2302dds.pdf
[7]: Software CAD de diseño electrónico Altium Designer: https://www.altium.com/altium-designer
[8]: Complemento SamacSys Altium: https://www.samacsys.com/altium-designer-library-instructions
[9]: símbolo esquemático ATTiny85, huella de PCB, modelo 3D: https://componentsearchengine.com/part-view/ATTINY85-20SUR/Microchip
[10]: Símbolo esquemático TS2937-5.0, huella de PCB, modelo 3D: https://componentsearchengine.com/part-view/TS2937CW-5.0%20RP/Taiwan%20Semiconductor
[11]: Símbolo esquemático L7805, huella de PCB, modelo 3D: https://componentsearchengine.com/part-view/L7805CV/STMicroelectronics
[12]: Símbolo esquemático SI2302, huella de PCB, modelo 3D: https://componentsearchengine.com/part-view/SI2302DDS-T1-GE3/Vishay
[13]: Símbolo esquemático FDN360P, huella de PCB, modelo 3D: https://componentsearchengine.com/part-view/FDN360P/ON%20 Semiconductores
[14]: ATTiny Core: https://github.com/SpenceKonde/ATTinyCore
[15]: Biblioteca IRRemote: https://github.com/Arduino-IRremote/Arduino-IRremote
[16]: Osciloscopio Siglent SDS2102X Plus: https://siglentna.com/products/digital-oscilloscope/sds2000xp-series-digital-phosphor-oscilloscope
[17]: Osciloscopio Siglent SDS1104X-E: https://siglentna.com/digital-oscilloscopes/sds1000x-e-series-super-phosphor-oscilloscopes