Tutorial ESP32 29/55 - Lectura de pulsaciones de teclas de control remoto IR con ESP32 | Kit de aprendizaje IoT ESP32 de SunFounder
En este tutorial, aprenderemos cómo detectar señales infrarrojas (IR) utilizando el módulo ESP32 y un receptor IR compatible. Cuando presionamos un botón en el control remoto, el ESP32 reconocerá la señal y ejecutará acciones específicas, como hacer sonar un zumbador para presiones de teclas particulares. Este proyecto es ideal para aquellos que buscan integrar capacidades de control remoto en sus aplicaciones ESP32 (en el video a las 02:15).
El ESP32 es un microcontrolador potente que combina capacidades de Wi-Fi y Bluetooth, lo que lo hace adecuado para una amplia gama de aplicaciones de IoT. En este proyecto, utilizaremos un receptor IR para interpretar señales de un control remoto. Las pulsaciones de las teclas se procesarán en el código, lo que nos permitirá tomar acciones en función de los comandos recibidos.
Hardware explicado
Los componentes principales de este proyecto incluyen el microcontrolador ESP32, un módulo receptor de infrarrojos y un zumbador. El ESP32 actúa como el cerebro de la operación, procesando las señales recibidas del receptor IR. El receptor IR detecta las señales infrarrojas del control remoto y las convierte en señales eléctricas que el ESP32 puede entender.
El receptor IR típicamente tiene tres pines: VCC (alimentación), GND (tierra) y OUT (señal). El pin VCC se conecta a una fuente de alimentación (3.3V o 5V), mientras que el GND se conecta a la tierra. El pin OUT envía la señal decodificada al ESP32, que luego puede ser utilizada para desencadenar varias acciones, como activar un zumbador cuando se presiona una tecla específica.
Detalles de la hoja de datos
| Fabricante | Afilado |
|---|---|
| Número de parte | GP1UXC41 |
| Voltaje de lógica/IO | 3.3 - 5.0 V |
| Tensión de alimentación | 3.3 V (típ.) |
| Corriente de salida (por canal) | 20 mA (máx) |
| Corriente máxima (por canal) | 50 mA (máx) |
| Orientación sobre la frecuencia PWM | 38 kHz |
| Umbrales de lógica de entrada | 0.3 Vcc (alto), 0.2 Vcc (bajo) |
| Caída de tensión / RDS(on)/ saturación | 0.5 V (máx) |
| Límites térmicos | 85 °C (máx) |
| Paquete | TO-92 |
| Notas / variantes | Disponible en múltiples configuraciones |
- Asegúrese de proporcionar la alimentación correcta para evitar daños.
- Utiliza cables cortos para minimizar la interferencia de señal.
- Verifique la orientación del receptor IR antes de conectar.
- Confirma que la batería del control remoto está funcionando.
- Utiliza resistencias de pull-up si es necesario para la estabilidad.
Instrucciones de cableado

Para conectar el receptor IR al ESP32, comienza por identificar los tres pines en el receptor IR: VCC, GND y OUT. Conecta el pin VCC a una fuente de alimentación de 3.3V en el ESP32. A continuación, conecta el pin GND a uno de los pines de tierra (GND) en el ESP32. Finalmente, conecta el pin OUT al pin GPIO 14 en el ESP32, que está designado para el receptor IR en el código.
Una vez que se hagan las conexiones, asegúrate de que el cableado esté seguro. Si estás utilizando una placa de pruebas, inserta el receptor IR de manera que el lado plano esté frente a ti y el bulto esté en el lado opuesto. Esta orientación te ayudará a identificar correctamente los pines. Asegúrate de verificar las conexiones antes de encender el ESP32.
Ejemplos de código y guía paso a paso
instalar elIRremoteESP8266biblioteca de David Conran, Sebastien.
En el código, definimos el pin del receptor IR utilizando la constante.IR_RECEIVE_PIN, que está establecido en 14. También creamos una instancia deIRrecvpara manejar las señales IR.
const uint16_t IR_RECEIVE_PIN = 14;
IRrecv irrecv(IR_RECEIVE_PIN);
decode_results results;Esta configuración nos permite recibir señales del control remoto IR. En elsetup()función, inicializamos la comunicación serial y habilitamos el receptor IR.
void setup() {
Serial.begin(115200);
irrecv.enableIRIn();
}Dentro delloop()función, verificamos si se ha recibido una señal IR. Si es así, decodificamos el valor de la tecla y lo imprimimos en el monitor serial.
if (irrecv.decode(&results)) {
String key = decodeKeyValue(results.value);
Serial.println(key);
irrecv.resume();
}Este fragmento de código muestra cómo decodificamos la señal recibida y mostramos el valor de la clave correspondiente en el monitor serial.decodeKeyValue()La función asigna la señal recibida a valores de botón específicos, como "0", "1", "EQ" y otros. Puedes encontrar el código completo cargado debajo del artículo.
Demostración / Qué Esperar
Una vez que el cableado esté completo y el código esté subido, presionar un botón en el control remoto debería mostrar el valor de la tecla correspondiente en el monitor serial. Por ejemplo, presionar el botón "2" imprimirá "2" en el monitor. Si la tecla no es reconocida, volverá "ERROR". El zumbador sonará cuando se presione la tecla designada (por ejemplo, "EQ"), proporcionando una retroalimentación inmediata.
Ten cuidado con los errores comunes, como la polaridad inversa en tus conexiones o el uso de niveles de voltaje incorrectos. Asegúrate de que el control remoto funcione correctamente y tenga una batería en funcionamiento antes de probar tu configuración (en el video a las 15:30).
Marcas de tiempo del video
- 00:00 Iniciar
- 2:05 Introducción al receptor IR
- 4:24 Explicación del cableado
- 6:08 Código de Arduino para receptor IR explicado
- 10:06 Seleccionando la placa ESP32 y el puerto COM en Arduino IDE
- 11:48 Demostración del Proyecto
- 13:09 Zumbador activo conectado directamente al ESP32
- 14:40 tomando medidas cuando se presiona una tecla
- 15:30 Código de Arduino para tomar acción
- 16:54 Demostración de pulsación de tecla y zumbador
Common Course Links
Common Course Files
Cosas que podrías necesitar
-
Amazonas
-
eBay
Recursos y referencias
-
DocumentaciónTutorial ESP32 23/55 - Página doc de SunFounder para receptor IRdocs.sunfounder.com
Archivos📁
Hoja de datos (pdf)
-
XL6012: Condensador removido.
robojax-IR-remote_TL1838-Infrared-Receiver-datasheet.pdf0.46 MB