.. note:: 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 [|link_sf_facebook|] y únete hoy mismo. .. _ar_receive: 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 ---------------------- .. image:: img/Part_two_20.png * :ref:`cpn_mega2560` * :ref:`cpn_wires` * :ref:`cpn_receive` Diagrama esquemático ---------------------- .. image:: img/image182.png :align: center 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. .. image:: img/image183.png :align: center Código --------- .. note:: * Puedes abrir el archivo ``2.20_irReceiver.ino`` en la ruta ``sunfounder_vincent_kit_for_arduino\code\2.20_irReceiver`` directamente. * Aquí se usa la biblioteca ``IRremote``; puedes instalarla desde el **Gestor de Bibliotecas**. .. image:: img/lib_irremote.png :align: center .. raw:: html 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. .. code-block:: arduino #include #. 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. .. code-block:: arduino 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). .. code-block:: arduino 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. .. code-block:: arduino 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 ``decodedValue`` usando la función personalizada ``decodeKeyValue()``. * 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 ``lastDecodedValue`` con el nuevo valor decodificado. * Reanuda la recepción de señales IR para la siguiente señal. Imagen del fenómeno ---------------------- .. image:: img/image184.jpeg :align: center