Nota
Hola, ¡bienvenido a la Comunidad de Entusiastas de SunFounder Raspberry Pi, Arduino y ESP32 en Facebook! Sumérgete en el mundo de Raspberry Pi, Arduino y ESP32 junto a otros entusiastas.
¿Por qué unirte?
Soporte experto: Resuelve problemas postventa y desafíos técnicos con la ayuda de nuestra comunidad y equipo.
Aprende y comparte: Intercambia consejos y tutoriales para mejorar tus habilidades.
Avances exclusivos: Obtén acceso anticipado a nuevos anuncios de productos y adelantos.
Descuentos especiales: Disfruta de descuentos exclusivos en nuestros productos más recientes.
Promociones festivas y sorteos: Participa en sorteos y promociones especiales de temporada.
👉 ¿Listo para explorar y crear con nosotros? Haz clic en [Aquí] y únete hoy mismo.
2.20 Módulo Receptor de Infrarrojos (IR)
Resumen
En esta lección, aprenderás a utilizar el Módulo Receptor de IR. Un receptor de IR es un componente con fotocélula diseñado para recibir luz infrarroja. Se usa casi siempre para detección de control remoto; cada televisor y reproductor de DVD tiene uno de estos en su parte frontal para recibir las señales infrarrojas del control remoto. En el control remoto, hay un LED de IR que emite pulsos de IR para indicar al televisor que encienda, apague o cambie de canal.
Componentes necesarios
Diagrama esquemático
Circuito Fritzing
En este ejemplo, conectamos el pin izquierdo (-) del Módulo Receptor IR a GND, el pin central a 5V y el pin derecho (S) al pin 11.
Código
Nota
Puedes abrir el archivo
2.20_irReceiver.inoen la rutasunfounder_vincent_kit_for_arduino\code\2.20_irReceiverdirectamente.Aquí se usa la biblioteca
IRremote; puedes instalarla desde el Gestor de Bibliotecas.
Después de cargar el código en la placa Mega2560, podrás ver en el monitor serie el valor de la tecla actualmente presionada en el control remoto de IR.
Análisis del código
Este código está diseñado para trabajar con un control remoto de infrarrojos (IR) usando la biblioteca IRremote. Aquí se muestra su desglose:
Inclusión de bibliotecas: Incluye la biblioteca IRremote, que proporciona funciones para trabajar con controles remotos IR.
#include <IRremote.h>
Define el pin de Arduino al cual está conectado el pin de señal del sensor IR y declara una variable para almacenar el último valor IR decodificado.
const int IR_RECEIVE_PIN = 11; // Define el número de pin para el Sensor IR String lastDecodedValue = ""; // Variable para almacenar el último valor decodificado
Inicializa la comunicación serial a una velocidad de 9600 baudios. Inicializa el receptor IR en el pin especificado (
IR_RECEIVE_PIN) y activa la retroiluminación LED (si corresponde).void setup() { Serial.begin(9600); // Inicia la comunicación serial a 9600 baudios IrReceiver.begin(IR_RECEIVE_PIN, ENABLE_LED_FEEDBACK); // Inicia el receptor IR }
El bucle se ejecuta continuamente para procesar las señales IR entrantes.
void loop() { if (IrReceiver.decode()) { String decodedValue = decodeKeyValue(IrReceiver.decodedIRData.command); if (decodedValue != "ERROR" && decodedValue != lastDecodedValue) { Serial.println(decodedValue); lastDecodedValue = decodedValue; // Actualiza el último valor decodificado } IrReceiver.resume(); // Activa la recepción del siguiente valor } }
Verifica si se recibe una señal IR y si se ha decodificado con éxito.
Decodifica el comando IR y lo almacena en
decodedValueusando la función personalizadadecodeKeyValue().Verifica si el valor decodificado no es un error y es diferente del último valor decodificado.
Imprime el valor decodificado en el monitor serie.
Actualiza
lastDecodedValuecon el nuevo valor decodificado.Reanuda la recepción de señales IR para la siguiente señal.
Imagen del fenómeno