Este artículo cubre:
1: Introducción al sensor IR
Un receptor IR es un dispositivo que puede detectar y recibir señales infrarrojas (IR). Por lo general, se usa en los sistemas de control remoto IR para recibir comandos de un controlador remoto IR u otro transmisor IR. El receptor IR consta de un fotodiodo u otro componente sensible de IR que detecta las señales IR y un circuito de demodulador que decodifica las señales.
La salida del receptor IR suele ser una señal digital que puede ser procesada por un microcontrolador u otro dispositivo electrónico. Los receptores IR se usan comúnmente en una amplia gama de productos electrónicos de consumo, incluidos televisores, reproductores de DVD, aires acondicionados y otros electrodomésticos, así como en aplicaciones industriales y automotrices.
Vale la pena señalar que los sensores receptores de IR pueden ser susceptibles a la interferencia de otras fuentes infrarrojas, como la luz solar u otros dispositivos IR. Para evitar esto, se recomienda apuntar el sensor del receptor IR directamente al control remoto IR, y mantener el sensor alejado de otras fuentes infrarrojas.
2: Sensor IR Pinout
El sensor del receptor IR es un módulo pequeño que generalmente tiene tres pines:
El VCC El pin está conectado a una fuente de alimentación, como el pin de 5V en el Arduino, para proporcionar energía al sensor. El AFUERA El pin está conectado a un pin de entrada digital en el arduino y Gnd El pin está conectado al pasador de tierra en el Arduino:
3: Sensor IR interfacio con Arduino
Para usar el sensor del receptor IR con un Arduino Uno, una biblioteca llamada Irremotar se requiere. Esta biblioteca se puede descargar desde el sitio web de Arduino y le permite al Arduino decodificar las señales IR recibidas por el sensor. Una vez que se instala la biblioteca, se puede incluir en el boceto (programa) que se carga al Arduino.
Una vez que el sensor del receptor IR está conectado y el boceto está cargado, el Arduino puede comenzar a recibir e interpretar señales desde un control remoto IR. Las señales IR se pueden decodificar utilizando una función proporcionada por la biblioteca de Irremote, y las señales decodificadas se pueden usar para controlar varios dispositivos.
Por ejemplo, se puede usar una señal IR específica para activar o desactivar un dispositivo, o para controlar el brillo o la temperatura.
1: esquema
Aquí hay un esquema básico para conectar un sensor IR a un Arduino:
Sensor IR | Arduino |
---|---|
VCC (potencia) | 5V |
GND (tierra) | Gnd |
Fuera (salida) | D8 |
Es importante tener en cuenta que los diferentes sensores IR pueden tener diferentes pinos y voltajes, por lo que es importante verificar la hoja de datos del sensor específico que está utilizando.
2: Instalación de la biblioteca requerida
Hay varias bibliotecas remotas de IR disponibles para Arduino. Puede usar cualquiera de estas bibliotecas según sus requisitos y el protocolo remoto IR que está utilizando.
Instalaremos el Irremotar biblioteca Arminjo.
4: decodificar un botón remoto IR
Hay múltiples remotos IR disponibles, como televisores, aires acondicionados y sistemas de automatización del hogar. Al decodificar un control remoto IR, podemos diseñar un control remoto universal para todos estos electrodomésticos.
Para decodificar un control remoto IR, cargue el siguiente código dado y presione los botones en el control remoto IR y luego observe el monitor en serie del IDE Arduino. El boceto de ejemplo imprimirá la señal IR en formato hexadecimal y el protocolo utilizado.
Extraiga los códigos clave de los botones remotos IR que desea usar en su proyecto. Usando estos códigos de tecla y las funciones de la biblioteca de irremote, podemos controlar las acciones deseadas cuando se presionan los botones correspondientes en el control remoto IR.
1: código
Cargue el código que se proporciona a continuación a través del IDE Arduino en Arduino Uno:
#Include /*incluyó la biblioteca remota IR* /
Irrecv ir (8); /*D8 Arduino Pin definido*/
setup () void
IR.habilitaririn (); /*IR Comunicación habilitada*/
De serie.comenzar (9600); /*Tasa de baudios en serie definida*/
bucle void ()
Si (ir.decode ()) / *IR La función de biblioteca remota para decodificar remoto * /
De serie.println (ir.airdata decodedada.decodedrawdata, hex); /*Imprimir valor hexadecimal*/
retraso (1000);
IR.reanudar (); /*Espere la siguiente entrada* /
Código iniciado por incluir una biblioteca remota de IR. Después de eso definimos el Pin digital Arduino en el que se lee la señal IR. Siguiente en el configuración() Parte inicializamos la comunicación IR y la tasa de baudios está definida.
En bucle() Parte del código decodificamos la señal IR recibida en formato hexadecimal que luego se imprime en el monitor de serie.
2: salida
Después de subir el código, presionamos tres botones rojos, verdes y azules en el control remoto IR.
Siguiente MALEFICIO El código se obtiene para el botón rojo, verde y azul en el monitor de serie IDE.
Botón Remoto IR | Código hexadecimal |
---|---|
Botón rojo | 0xfb04ef00 |
Botón verde | 0xfa05Ef00 |
Botón azul | 0xf906ef00 |
5: Control de LED usando Remoto IR
Para controlar un dispositivo con el control remoto IR, deberá usar el decodificado MALEFICIO Señales en tu boceto. Por ejemplo, puede usar un if-else Declaración para verificar la señal decodificada y encender o desactivar un dispositivo específico. También puede usar las señales decodificadas para controlar el brillo o la temperatura de un dispositivo.
1: esquema
La imagen dada explica la conexión de tres LED de diferentes colores con Arduino e IR Receptor.
Sensor LED e IR | Alfiler de arduino |
---|---|
ROJO | D5 |
VERDE | D6 |
AZUL | D7 |
Sensor IR fuera | D8 |
2: código
El siguiente es el código Arduino para LED de control remoto IR. El código se puede cargar en el tablero Arduino Uno abriendo el Arduino IDE.
#Include /*Incluya la biblioteca remota IR* /
Irrecv ir (8); /*IR Pin definido*/
int azul = 7; /*LED azul en el pin D7*/
int verde = 6; /*LED verde en el pin D6*/
int rojo = 5; /*LED rojo en el pin D5*/
bool rojo_state = 1; /*Estado LED rojo*/
bool green_state = 1; /*Estado LED verde*/
bool blue_state = 1; /*Estado LED azul*/
setup () void
IR.habilitaririn (); /*La comunicación IR habilita*/
PinMode (azul, salida); /*Pin de LED azul establecido como salida*/
PinMode (verde, salida); /*Pin de LED verde configurado como salida*/
PinMode (rojo, salida); /*Pin de LED rojo establecido como salida*/
De serie.comenzar (9600);
bucle void ()
Si (ir.decode ()) /*decode IR señal en formato hex* /
De serie.println (ir.airdata decodedada.decodedrawdata, hex);
/*Verifique la entrada IR*/
/*Código LED rojo*/
Si (ir.airdata decodedada.decodedrawdata == 0xfb04ef00 && rojo_state == 1)
DigitalWrite (rojo, alto);
De serie.println ("LED rojo encendido");
Rojo_state = 0;
más si (ir.airdata decodedada.decodedrawdata == 0xfb04ef00 && rojo_state == 0)
DigitalWrite (rojo, bajo);
De serie.println ("LED rojo apagado");
Rojo_state = 1;
/*Verifique la salida IR*/
Si (ir.airdata decodedada.decodedrawdata == 0xfa05ef00 && green_state == 1)
/*Código LED verde*/
DigitalWrite (verde, alto);
De serie.println ("LED verde en");
Green_state = 0;
más si (ir.airdata decodedada.decodedrawdata == 0xfa05ef00 && green_state == 0)
DigitalWrite (verde, bajo);
De serie.println ("LED verde verde");
Green_state = 1;
/*Verifique el código IR*/
Si (ir.airdata decodedada.decodedrawdata == 0xf906ef00 && blue_state == 1)
/*Código LED azul*/
DigitalWrite (azul, alto);
De serie.println ("LED azul encendido");
Blue_state = 0;
más si (ir.airdata decodedada.decodedrawdata == 0xf906ef00 && blue_state == 0)
DigitalWrite (azul, bajo);
De serie.println ("LED azul azul");
Blue_state = 1;
IR.reanudar ();
Código iniciado por incluir una biblioteca remota de IR. Después de eso definimos el Pin digital Arduino en el que se lee la señal IR. Se definen los próximos tres alfileres para LED. Los tres LED tienen estados separados para que podamos usar la función de alternar dentro del código utilizando la condición y.
En el configuración() Parte inicializamos la comunicación IR y la tasa de baudios está definida. Junto con eso, los tres pines LED se establecen como salida usando PinMode () función.
En bucle() parte del código if-else La condición se usa por separado para los tres LED. Los tres LED se controlan por separado utilizando el código hexadecimal.
Botón Remoto IR | Código hexadecimal |
---|---|
Botón rojo | 0xfb04ef00 |
Botón verde | 0xfa05Ef00 |
Botón azul | 0xf906ef00 |
Nota: Recuerde que estos son el código hexadecimal para el remoto que estamos usando. Su control remoto puede tener un código hexadecimal diferente. Entonces, reemplace el código con el código hexadecimal que obtuvo en el monitor en serie.
3: salida
Después de cargar código al arduino tablero, presione, cualquiera de los LED respectivos de tres botones brillará. Si presionamos el botón rojo, el LED rojo brillará y viceversa:
Del mismo modo, también podemos brillar estos LED simultáneamente. Para apagar el LED, simplemente presione el botón nuevamente, ya que hemos usado la condición de alternar en el código Arduino.
Usando el mismo método, podemos controlar los aparatos de CA reemplazando los LED con un interruptor de relé.
Conclusión
En resumen, la decodificación de un control remoto IR con un microcontrolador Arduino es una forma simple y rentable de controlar varios dispositivos. Al conectar un receptor IR al Arduino, cargar un boceto y decodificar las señales IR, puede controlar fácilmente dispositivos como televisores, aires acondicionados y sistemas de automatización del hogar.