Arduino: mando a distancia por infrarrojos y receptor. Control remoto universal en Arduino

Hay muchos artículos en Internet sobre cómo hacer tu propio control remoto de TV usando Arduino, pero yo necesitaba un control remoto universal para controlar mi TV y mi reproductor multimedia. La principal ventaja de mi control remoto universal es que los botones de la aplicación del teléfono Android tienen una doble función, pero mira el video.



El control remoto es muy conveniente porque se utilizan casi los mismos botones en la pantalla para controlar el televisor y el reproductor. Una diferencia es que el " AV"en el modo de control de TV cambia a un botón" " (detener) al cambiar al modo de control del reproductor. Las imágenes muestran dos modos, a la izquierda está el modo de control del televisor, a la derecha está el modo de control del reproductor.

Bueno, ahora te contaré un poco sobre cómo crear un control remoto de este tipo. Para el dispositivo utilicé el mando a distancia ERGO TV y el mando a distancia del reproductor multimedia DUNE HD TV101W.

Para recibir datos de los controles remotos, utilicé un sensor de infrarrojos TSOP1138 (análogo a TSOP4838) a una frecuencia de funcionamiento de 38 kHz y lo conecté a la placa Arduino de acuerdo con el esquema:

Este boceto no será necesario para determinar la codificación de la transmisión de datos y leer el código de los botones del control remoto.

En el boceto de la línea int RECV_PIN = 11; indicar nuestro pin numero 4

Después de cargar el boceto, abra el "monitor de puerto" y, presionando los botones del control remoto, observe los datos recibidos.

La imagen muestra un ejemplo de cómo escanear el botón de encendido desde el control remoto del televisor y el control remoto del reproductor. Ahora creamos una tabla para códigos de botones.

Lo tengo como en la foto de arriba. Debajo de la inscripción TELEVISOR Códigos de botones del control remoto de TV; bajo la inscripción Jugador- códigos del mando a distancia del reproductor multimedia.

Ahora desconectamos nuestro receptor de señal de infrarrojos de la placa Arduino y le conectamos el módulo Bluetooth HC-05 y un LED de infrarrojos según el diagrama de la foto.

Después de eso, pasamos directamente al boceto.

Bosquejo

#incluir IRsend irsend; int y = 1; configuración vacía() ( Serial.begin(9600); ) bucle vacío() ( if (Serial.available() > 0) ( int x = Serial.read(); if (x == 49) ( y = 1; ) if (x == 50) ( y = 2; ) if (y == 1) ( // códigos de botones para el control remoto del televisor if (x == 97) ( irsend.sendNEC(0x807F08F7, 32); delay(40 ); (x == 100) ( irsend.sendNEC(0x807FF00F, 32); demora(40); ) if (x == 101) ( irsend.sendNEC(0x807F30CF, 32); demora(40); ) if (x == 102) ( irsend.sendNEC(0x807FB04F, 32); demora(40); ) if (x == 103) ( irsend.sendNEC(0x807F9867, 32); demora(40); ) if (x == 104) ( irsend .sendNEC(0x807F58A7, 32); retraso(40); si (x == 105) ( irsend.sendNEC(0x807F38C7); retraso(40); , 32); ( irsend.sendNEC(0x807F48B7, 32); demora(40); ) if (x == 108) ( irsend.sendNEC(0x807FB847, 32); demora(40); if (x == 109) ( irsend.sendNEC( 0x807F6897, 32);


retraso(40);

) ) if (y == 2) ( //códigos de los botones del control remoto del reproductor multimedia if (x == 97) ( irsend.sendNEC(0xFDC23D, 32); delay(40); ) if (x == 98) ( irsend. sendNEC(0xFDE01F, 32); demora(40); if (x == 99) ( irsend.sendNEC(0xFD18E7, 32); demora(40); ) if (x == 100) ( irsend.sendNEC( 0xFDE817, 32); retraso(40); ) if (x == 101) ( irsend.sendNEC(0xFDA857, 32); retraso(40); ) if (x == 102) ( irsend.sendNEC(0xFD6897, 32) ; retraso (40); ); (x == 107) ( irsend.sendNEC(0xFD9867, 32); demora(40); ) if (x == 108) ( irsend.sendNEC(0xFD28D7, 32); demora(40); ) if (x == 109) ( irsend.sendNEC(0xFD20DF, 32); retraso(40); ) ) ) )
En el boceto deberá editar los códigos de los botones, concretamente en las líneas:

If (x == 97) ( irsend.sendNEC(0x807F08F7, 32); retraso(40);
Cambie el valor 807F08F7 a:

If (y == 1) ( //códigos de botones del control remoto del televisor if (x == 97) ( irsend.sendNEC(0x12345678, 32); delay(40); )

Donde 12345678 es el código de su botón. Pult por teléfono.

Al iniciar tendremos una pantalla con un icono rojo de bluetooth en la esquina inferior derecha, que nos indica que no estamos conectados a nuestro dispositivo.

Después de eso, haga clic en este icono. Deberíamos ver una ventana con una lista de todos los dispositivos bluetooth disponibles, donde seleccionamos nuestro dispositivo para conectar.

Ahora estamos de vuelta en la pantalla principal y ya podemos controlar el televisor:

Para cambiar al modo de control debemos presionar el botón etiquetado "Jugador". Como dije antes, nuestro botón etiquetado como "AV" cambiará a un botón " ":

Para desconectarnos de nuestro dispositivo basta con mantener pulsado el botón de “Encendido” durante unos segundos.

Bueno, algunas fotos de mi dispositivo terminado.

Al parecer, resultó bastante bien. Estoy esperando comentarios sobre el artículo.

Un control remoto por infrarrojos es una de las formas más sencillas de interactuar con dispositivos electrónicos. Entonces, en casi todos los hogares hay varios de estos dispositivos: un televisor, un sistema estéreo, un reproductor de video y un aire acondicionado. Pero el uso más interesante de un mando a distancia por infrarrojos es el control remoto de un robot. De hecho, en esta lección intentaremos implementar este método de control utilizando el popular controlador Arduino Uno.

1. control remoto por infrarrojos

¿Qué se necesita para enseñarle a un robot a obedecer un control remoto por infrarrojos (IR)? Primero, necesitamos el propio control remoto. Puede utilizar un control remoto de TV normal o puede comprar un control remoto en miniatura para la radio de su automóvil. Este tipo de mandos a distancia se suelen utilizar para controlar robots.

Este mando a distancia dispone de 10 botones digitales y 11 botones para manipular la música: volumen, rebobinar, reproducir, parar, etc. Más que suficiente para nuestros propósitos.

2. sensor de infrarrojos

En segundo lugar, para recibir una señal del mando a distancia necesitamos un sensor de infrarrojos especial. En general, podemos detectar la radiación infrarroja con un fotodiodo/fototransistor convencional, pero a diferencia de este, nuestro sensor IR percibe la señal infrarroja sólo a una frecuencia de 38 kHz (a veces 40 kHz). Es esta propiedad la que permite que el sensor ignore una gran cantidad de ruidos de luz extraños provenientes de las lámparas y del sol.

Para este tutorial usaremos el popular sensor IR. VS1838B, que tiene las siguientes características:

  • frecuencia portadora: 38 kHz;
  • tensión de alimentación: 2,7 - 5,5 V;
  • Consumo de corriente: 50 µA.

Se pueden utilizar otros sensores, por ejemplo: TSOP4838, TSOP1736, SFH506.

3. Conexión

El sensor tiene tres cables (tres patas). Si miras el sensor desde el lado del receptor de señal IR, como se muestra en la figura,

  • luego a la izquierda habrá una salida al controlador,
  • en el centro - contacto de potencia negativo (tierra),
  • ya la derecha, el contacto de alimentación positivo (2,7 - 5,5 V).

Diagrama esquemático de conexión.

Aspecto del diseño

4. Programa

Una vez conectado el sensor de infrarrojos, escribiremos un programa para Arduino Uno. Para hacer esto, usaremos la biblioteca estándar. IRremoto, que está diseñado específicamente para simplificar el trabajo de recepción y transmisión de señales IR. Usando esta biblioteca, recibiremos comandos del control remoto y, para empezar, simplemente los mostraremos en la ventana del monitor del puerto serie. Este programa nos será útil para entender qué código da cada botón.

#incluye "IRremote.h" IRrecv irrecv(2); // indica el pin al que está conectado el receptor decode_results results; void setup() ( Serial.begin(9600); // establece la velocidad del puerto COM irrecv.enableIRIn(); // comienza a recibir ) void loop() ( if (irrecv.decode(&results)) ( // if los datos llegaron Serial .println(results.value, HEX); // imprime los datos irrecv.resume() // acepta el siguiente comando ) )

Cargue el programa en Arduino. Después de eso, intentamos recibir comandos del control remoto. Abra el monitor del puerto serie (Ctrl+Shift+M), levante el control remoto y apúntelo al sensor. Al presionar diferentes botones, observamos los códigos correspondientes a estos botones en la ventana del monitor.

Problema al cargar el programa

En algunos casos, al intentar cargar un programa en el controlador, puede aparecer un error:

TDK2 no fue declarado en su alcance

Para solucionarlo, simplemente elimine dos archivos de la carpeta de la biblioteca. Vayamos al explorador. Vaya a la carpeta donde está instalada la aplicación Arduino IDE (muy probablemente “C:\Program Files (x86)\Arduino”). Luego a la carpeta de la biblioteca:

…\Arduino\bibliotecas\RobotIRremote

Y borra los archivos: IRremoteTools.cpp Y IRremoteTools.h. Luego, reiniciamos el IDE de Arduino e intentamos cargar el programa en el controlador nuevamente.

5. Controle el LED usando el control remoto IR

Ahora que sabemos qué códigos corresponden a los botones del control remoto, intentamos programar el controlador para que encienda y apague el LED cuando se presionan los botones de volumen. Para ello necesitamos códigos (pueden variar según el mando a distancia):

  • FFA857 - aumentar el volumen;
  • FFE01F - disminuir el volumen.

Como LED utilizamos el LED incorporado en el pin No. 13, por lo que el diagrama de conexión seguirá siendo el mismo. Entonces, el programa:

#incluye "IRremote.h" IRrecv irrecv(2); // indica el pin al que está conectado el receptor decode_results results; void setup() ( irrecv.enableIRIn(); // comenzar a recibir ) void loop() ( if (irrecv.decode(&results)) ( // si llegaron los datos switch (results.value) ( ​​caso 0xFFA857: digitalWrite( 13, ALTO); descanso; caso 0xFFE01F: digitalWrite(13, BAJO); irrecv.resume();

Lo subimos a Arduino y lo probamos. Hacer clic volumen+— el LED se enciende. Hacer clic vol-- sale. Ahora, sabiendo cómo funciona todo, ¡puedes controlar motores de robots u otros dispositivos microelectrónicos caseros en lugar de un LED!

Un receptor de infrarrojos y un control remoto por infrarrojos son la forma más común y sencilla de controlar equipos electrónicos. El espectro de radiación infrarroja no es visible para el ojo humano, pero los receptores de infrarrojos integrados en los dispositivos electrónicos lo captan perfectamente. Los módulos remotos Arduino ir se utilizan para controlar varios equipos en la línea de visión.

El uso generalizado de emisores de infrarrojos ha sido posible gracias a su bajo coste, simplicidad y facilidad de uso. La radiación IR se encuentra en el rango de 750 a 1000 micrones; esta es la parte del espectro más cercana a la luz visible. En la zona de la radiación infrarroja pueden cambiar las propiedades ópticas de diversos materiales. Algunos vasos, por ejemplo, se vuelven opacos a los rayos IR, mientras que la parafina, por el contrario, es transparente en el espectro IR.

La radiación se registra utilizando materiales fotográficos especiales, a partir de los cuales se fabrican los receptores. Además de los cuerpos calentados (el Sol, lámparas incandescentes o velas), la fuente de radiación infrarroja pueden ser dispositivos de estado sólido: LED IR, láseres. La radiación en el rango de infrarrojos tiene una serie de características que la hacen cómoda de usar en controles remotos:

  • Los emisores de estado sólido (LED IR) son económicos y compactos.
  • Los rayos infrarrojos no son percibidos ni detectados por el ojo humano.
  • Los receptores de infrarrojos también son económicos y de tamaño pequeño.
  • Bajas interferencias ya que el transmisor y el receptor están sintonizados en la misma frecuencia.
  • No hay ningún impacto negativo en la salud humana.
  • Alta reflectancia de la mayoría de los materiales.
  • Los emisores de infrarrojos no afectan el funcionamiento de otros dispositivos.

El control remoto funciona de la siguiente manera. Cuando presiona el botón, la señal se codifica en luz infrarroja, el receptor la recibe y realiza la acción requerida. La información se codifica como una secuencia lógica de paquetes de pulsos con una determinada frecuencia. El receptor recibe esta secuencia y demodula los datos. Para recibir una señal se utiliza un microcircuito que contiene un fotodetector (fotodiodo), amplificadores, un filtro de paso de banda, un demodulador (un detector que permite aislar la envolvente de la señal) y un transistor de salida. También tiene filtros – eléctricos y ópticos. Estos dispositivos funcionan a una distancia de hasta 40 metros. El método de transmisión de datos por infrarrojos existe en muchos dispositivos: en electrodomésticos, equipos industriales, computadoras y líneas de fibra óptica.

Receptor de infrarrojos Arduino

Para leer la señal IR necesitarás la propia placa Arduino, una placa de pruebas, un receptor de señal IR y puentes. Hay una gran cantidad de receptores diferentes, pero es mejor utilizar TSOP312 u otros adecuados para Arduino. Los datos del mando a distancia al receptor se pueden transmitir mediante el protocolo RC5 o NEC.

Para determinar qué pierna pertenece a qué, debe mirar el sensor desde el lado del receptor. Luego, en el receptor, el contacto central es tierra, a la izquierda está la salida al microcontrolador, a la derecha está la alimentación.

Para mayor comodidad, puede utilizar módulos receptores de infrarrojos ya preparados.

Conexión del receptor de infrarrojos a Arduino

Las salidas del receptor de IR están conectadas al Arduino a los puertos GND, 5V y de entrada digital. A continuación se muestra el diagrama para conectar el sensor al undécimo pin digital.

Así es como se ve el circuito con el módulo receptor de infrarrojos:


Bibliotecas para trabajar con IR

Para trabajar con dispositivos IR, puede utilizar la biblioteca IRremote, que simplifica la construcción de sistemas de control. Puedes descargar la biblioteca. Después de la descarga, copie los archivos a la carpeta \arduino\libraries. Para conectarse al boceto de su biblioteca, debe agregar el archivo de encabezado #include .

Para leer información, utilice el ejemplo IRrecvDumpV2 de la biblioteca. Si el control remoto ya existe en la lista de reconocidos, no es necesario escanear. Para leer los códigos, debe iniciar ARduino IDE y abrir el ejemplo IRrecvDemo desde IRremote.

Hay una segunda biblioteca para trabajar con señales IR: IRLib. Es similar en funcionalidad al anterior. En comparación con IRremote, IRLib tiene un ejemplo para determinar la frecuencia de un sensor de infrarrojos. Pero la primera biblioteca es más sencilla y cómoda de usar.

Después de cargar la biblioteca, puede comenzar a leer las señales recibidas. Para esto se utiliza el siguiente código.

El operador decode_results es necesario para asignar los resultados del nombre de la variable a la señal recibida.

En el código necesitas reescribir "HEX" a "DEC".

Luego, después de cargar el programa, debe abrir el monitor en serie y presionar los botones en el control remoto. Aparecerán varios códigos en la pantalla. Debes tomar nota indicando a qué botón corresponde el código recibido. Es más conveniente registrar los datos obtenidos en una tabla. Este código luego se puede escribir en el programa para que se pueda controlar el dispositivo. Los códigos se escriben en la memoria de la propia placa Arduino EEPROM, lo cual es muy conveniente, ya que no es necesario programar los botones cada vez que enciendes el control remoto.

Sucede que al cargar un programa se muestra el error “TDK2 no fue declarado en su alcance”. Para solucionarlo, debe ir al Explorador, ir a la carpeta en la que está instalada la aplicación Arduino IDE y eliminar los archivos IRremoteTools.cpp e IRremoteTools.h. Después de esto, necesitas recargar el programa en el microcontrolador.

Conclusión

El uso del control remoto Arduino ir hace la vida más fácil para el usuario. Un teléfono móvil, una tableta o una computadora pueden actuar como control remoto; solo necesita un software especial. Usando Arduino puedes centralizar todo el control. Con un botón del mando a distancia puedes realizar varias acciones a la vez, por ejemplo, encender el televisor y el Blu-Ray al mismo tiempo.

Al crear dispositivos para trabajar con controles remotos de infrarrojos, es muy necesaria una herramienta con la que poder registrar y analizar señales de infrarrojos. Idealmente, una herramienta de este tipo podría ser un osciloscopio digital o un analizador lógico, pero no todo el mundo tiene estos dispositivos y comprarlos específicamente es caro. ¿Cómo puede ser esto? Existe una solución muy sencilla: ¡una tarjeta de sonido para computadora! Grabaremos la señal usándolo.

Además de la tarjeta de sonido (que espero que esté en tu computadora), necesitaremos un receptor de señal IR. Sería más correcto ensamblar un circuito receptor completo con TSOP, pero lo haremos de la manera más simple posible: tomaremos el LED IR más común (el mismo que está en su control remoto) como receptor de IR. Por supuesto, puede llevar un fotodiodo IR, pero un LED IR es más fácil de conseguir. El LED IR debe conectarse directamente a la entrada de micrófono de la tarjeta de sonido. Para hacer esto, necesita un enchufe de 3,5 mm y un trozo de cable blindado (corté el cable con el conector de un micrófono viejo que no funciona).

El LED se conecta de la siguiente manera:

Como resultado, obtenemos el siguiente dispositivo:

Inserte el enchufe en la entrada del micrófono (es rosa). En la configuración de la tarjeta de sonido, seleccione el micrófono como dispositivo de entrada, gire el control de ganancia al máximo y marque la casilla de ganancia adicional. Para verificar, apunte el control remoto al receptor LED (debe acercarlo lo más posible al control remoto), presione la tecla; se deben escuchar clics en los parlantes.

Si por alguna razón no tiene una entrada de micrófono (por ejemplo, en una computadora portátil), conecte el receptor a la entrada lineal de la tarjeta de sonido; todo funcionará igual, solo que la amplitud de la señal grabada será mayor. menor.


Ahora necesitamos un programa para grabar sonido.
Cualquier programa que tengas será adecuado para estos fines. Si no tiene un programa favorito para trabajar con sonido, le sugiero un programa pequeño y gratuito: Wavosaur (http://www.wavosaur.com/. El programa funciona sin instalación y es de tamaño pequeño, tal como yo). Me gusta :).

Un programa para trabajar con sonido.

Después de iniciar el programa, encienda el indicador de nivel (la regla en el lado derecho de la ventana) y verifique la respuesta a las señales del control remoto. De forma predeterminada, todo debería funcionar: la regla se saldrá de la escala de las señales recibidas (si no hay reacción, vaya a la configuración Configuración de audio/Entrada de audio). A continuación, presione el ícono de grabación, acerque el control remoto lo más posible al LED de recepción, presione el botón del control remoto y manténgalo presionado durante un par de segundos. Apagar la grabación - ¡Listo! En la ventana veremos un escaneo de la señal IR recibida. Lo interesante es que la señal ya será detectada: no veremos la frecuencia portadora, sino sólo la señal útil. Esto sucede porque las capacidades de entrada del micrófono no tienen tiempo de recargarse.

La señal recibida se puede escalar por tiempo, amplitud y, lo que es muy conveniente, al resaltar un período determinado, se puede ver inmediatamente su duración. La señal recibida se puede guardar (preferiblemente en formato WAV, no habrá distorsión) o exportar a MP3, texto, archivo binario (¡algo útil!).

Por ejemplo, señal del control remoto de mi televisor (formato NEC):

Todos los intervalos de tiempo son visibles en la imagen, incluso puede calcular la dirección del control remoto y el código de comando del botón; todo es claro y comprensible.

PD
¡Gran petición! Si ensambla un receptor de este tipo, guarde los paquetes de sus controles remotos y envíemelos por correo electrónico (en la pestaña "acerca del proyecto"); esto será de gran ayuda para mejorar el algoritmo del receptor universal. En el nombre del archivo indique de qué es el mando a distancia y el fabricante (por ejemplo: tv-sony.wav).


¡Más información sobre cómo trabajar con controles remotos por infrarrojos!
Propuse la opción más sencilla para “sentir” la señal del mando a distancia por infrarrojos, ¡pero hay muchas soluciones que pueden hacer mucho más! Reciba una señal IR, analice, guarde, reproduzca, programe sus mandos a distancia, controle su ordenador... Esta sección contendrá enlaces a este tipo de soluciones.

1. DvzRcEditor
El programa irá primero. DvzRcEditor, que tiré móvil. El programa fue hecho por alguien. dvz 2010(Lamentablemente no hay coordenadas para él, ¿quizás alguien lo sepa?).


- Un programa para analizar y repetir señales IR.
El programa le permite grabar y reproducir mensajes IR utilizando una entrada de micrófono y una salida de audio. Existen herramientas para analizar mensajes IR y crear una base de datos de mensajes de control remoto (existe una pequeña base de datos para varios controles remotos). Una solución interesante es admitir su propio control remoto fabricado con ATtiny2313.


El control remoto tiene 7 teclas con las que puede configurar cualquier comando de los analizados, y el propio programa puede grabar las señales de estos botones en el microcontrolador (siempre que actualice el gestor de arranque allí por primera vez).

Todo es simple y claro: ¡me gustó!


2. Control astuto.
http://slydiman.narod.ru/scr/index.htm
Esto ni siquiera es un programa, es un recurso completo de Internet dedicado a los controles remotos por infrarrojos. Contiene mucha información útil, soluciones de hardware y software para todos los casos. Esto es lo que escriben los autores sobre SlyControl:
es un programa universal para gestionar cualquier cosa utilizando una computadora.

¿Para qué se puede utilizar esto?
— control de cualquier programa desde cualquier mando a distancia (control remoto), desde un teclado multimedia mediante teclas o un joystick
— emulación de teclado y mouse desde cualquier control remoto
— programador (no solo ejecuta el programa según el tiempo, sino que también realiza algunas acciones con él)
- apagar la computadora por temporizador o evento
— También puedes encender las luces del apartamento desde el control remoto, solo necesitas agregar el complemento apropiado 😉

También hay un programa en el recurso. RCExplorer 2.1— una base de datos de mandos a distancia por infrarrojos (la base de datos contiene más de 200 entradas).


El programa te permite:
— Reciba señales de controles remotos usando una tarjeta de sonido, puerto COM, IgorPlug-USB o IgorPlug2
- Analizar la señal en detalle - (modulación, características de temporización, funciones de codificación, códigos de repetición, etc., todos los protocolos que conozco actualmente son compatibles, el programa también puede funcionar con protocolos desconocidos.
— Visualizar gráficamente la señal en tiempo real y según datos de la base de datos
— Busque un mando a distancia similar en la base de datos
— Reproducir el comando de control remoto utilizando datos de la base de datos a través del puerto COM

En general, asegúrese de visitar el recurso; será interesante.

(Visitado 20.417 veces, 9 visitas hoy)

Cada hogar tiene un control remoto de TV u otro control remoto. Este dispositivo le permite controlar cualquier dispositivo a distancia, lo cual es muy conveniente. No es necesario desperdiciar valiosas calorías y realizar movimientos innecesarios. Si tiene algún dispositivo y desea controlarlo a distancia, puede controlarlo de forma remota. Si lo desea, puede hacer un control remoto con sus propias manos, pero esto no es necesario y esa es otra historia. ¿Por qué podrías necesitar control remoto? - es simple:

La pereza es una cualidad que nos obliga a hacer grandes esfuerzos para reducir los costos energéticos generales.

Por primera vez, el inventor Nikola Tesla mostró al mundo el control remoto en acción; en 1898, en una exposición en el Madison Square Garden, presentó un barco controlado por radio llamado "teleautomático". Hoy en día, esta tecnología se ha generalizado, solo se han agregado diferentes métodos de transmisión de comandos (canal de comunicación).

Los principales canales de comunicación incluyen:

  • canal de radio
  • Ultrasónico
  • Infrarrojo

En este artículo hablaremos sobre cómo controlar el dispositivo con un mando a distancia por infrarrojos. La radiación infrarroja es radiación electromagnética que ocupa la región espectral entre el extremo rojo de la luz visible y la radiación de microondas. La radiación infrarroja no es visible para el ojo humano, pero puede verse con una cámara fotográfica o de vídeo. Así es como comprueban a menudo el funcionamiento del mando a distancia del televisor en casa.

Érase una vez, en mi antiguo trabajo, cogí un mando a distancia y una “mirilla” (receptor de infrarrojos) de un sistema de seguridad que estaba siendo cancelado, estuvo inactivo durante mucho tiempo y finalmente pude comprobar su funcionamiento. .

Después de desmontar este receptor, vi un truco; en este "ojo" se soldaron 4 receptores de infrarrojos. Esto se hizo para recibir ondas IR desde cuatro lados. Y es conveniente, no es necesario limitarse a un determinado ángulo de recepción.

También esbocé un circuito similar con cuatro receptores, por si lo necesito. Utilicé receptores de infrarrojos TSOP1836, pero puedes usar otros. Para garantizar una recepción de 360 ​​grados, debe seleccionar receptores de infrarrojos adecuados (con un ángulo de recepción amplio) y colocarlos lo más cerca posible uno del otro. No noté ningún problema de recepción con mis receptores. También incluí la placa de circuito impreso y la ubicación de los elementos en el archivo adjunto.

Para procesar comandos, naturalmente usaré arduino uno; puedo usar un receptor de infrarrojos;
TSOP34836 (tiene un rango de recepción alto, pero es más caro) o TL1838. Puedes llevar cualquier mando a distancia por infrarrojos, incluso desde un televisor. Pues si necesitas tu propio mando a distancia, puedes comprar un kit para arduino.

Principio de funcionamiento:
Cuando presiona un botón en el control remoto, envía el código del botón en luz infrarroja, después de lo cual el receptor recibe este código del botón y lo envía al actuador, que, dependiendo del botón, realizará una determinada acción.

También puede transmitir información a corta distancia mediante ondas IR. Para transmitir sus comandos o información, puede utilizar un segundo arduino con un transmisor de infrarrojos. Pero la velocidad de dicha transmisión es muy lenta. Las ventajas del canal infrarrojo incluyen la insensibilidad a las interferencias electromagnéticas.

Para recibir señales IR de arduino conectaremos el receptor IR de la siguiente manera:

Tenga en cuenta que la ubicación de las patas del receptor puede variar.


El receptor tiene 3 patas, fuente de alimentación “+” y “-” (principalmente voltaje 3,3-5V) y la pata de datos es la que transmite información al dispositivo (en nuestro caso, arduino). El voltaje de alimentación para TSOP34836 es de 2,7 a 5,5 voltios. Usaré 5 voltios de la salida estándar de arduino.

Bueno, por supuesto que necesitas firmware para arduino. El algoritmo de funcionamiento será el siguiente: al pulsar el botón superior del mando a distancia, el arduino enciende el relé, y al pulsarlo de nuevo lo apaga. Con este relé, puede alimentar, por ejemplo, la luz de fondo, pero no es necesario programar presionar un botón en el relé, puede enviar un comando a la computadora o realizar una determinada operación en arduino, etc.
Para simplificar el trabajo, utilizaremos una biblioteca ya preparada. Código de firmware:

#incluir int RECEIVE_PIN = 11;//contacto del receptor int RELAY_PIN = 3;//contacto de relé IRrecv irrecv(RECEIVE_PIN);//asigna el pin del receptor decode_results results;//datos recibidos

configuración nula() (
Serie.begin(9600);
irrecv.enableIRIn(); // enciende el receptor
pinMode(RELAY_PIN, SALIDA); // configurar el relé para salida
escritura digital (RELAY_PIN, ALTO); //establecer el valor alto
}

bucle vacío() (
if (irrecv.decode(&results)) (//si se reciben datos
Serie.print("0x");
Serial.println(results.value, HEX);//envía el mensaje recibido al terminal
if ((results.value == 0x8FF40BF) ||(results.value == 0xD72040BF)) digitalWrite(RELAY_PIN, !digitalRead(RELAY_PIN));//si el código del botón es 0x8FF40BF o 0xD72040BF cambie el estado del relé al opuesto
retraso(200); // retraso por doble activación
irrecv.resume();// Obtener el siguiente valor
}
}

Me explico un poco con el boceto:



if ((resultados.valor == 0x8FF40BF) ||(resultados.valor == 0xD72040BF))

El valor resultante se compara con "0x8FF40BF" y "0xD72040BF"; estos son códigos de botón en notación hexadecimal. Sólo dos significados porque uso dos controles remotos con códigos únicos.



digitalWrite(RELAY_PIN, !digitalRead(RELAY_PIN));

Procedimiento estándar para la grabación de PIN digital excepto "!digitalRead(RELAY_PIN)". Firmar "!" denota inversión, en nuestro caso la inversión del estado de la salida digital "RELAY_PIN".



Serie.print("0x");
Serial.println(results.value, HEX);//envía el mensaje recibido al terminal

Estas líneas envían todos los códigos recibidos al terminal. En un programa en funcionamiento esto no es necesario, pero sí es necesario encontrar el código requerido para un botón en particular. Es decir, primero subimos el boceto al Arduino, vamos al terminal y pulsando en el botón obtendremos el código deseado.


También hay varios ejemplos diferentes en la biblioteca IRremote que pueden resultar útiles.


En el anexo del artículo:


  • boceto para arduino

  • PCB para 4 sensores




Arriba