ESP32 - Módulo LDR
El módulo de sensor de luz LDR puede detectar y medir la luz que lo rodea. Tiene dos salidas: una salida digital que puede ser baja o alta, y una salida analógica.
En este tutorial, aprenderemos a usar un ESP32 y un módulo de sensor de luz LDR juntos para detectar y medir la cantidad de luz. Esto es lo que cubriremos:
- Cómo conectar el módulo de sensor de luz LDR a un ESP32.
- Cómo programar el ESP32 para detectar la luz leyendo la señal digital del módulo de sensor de luz LDR.
- Cómo programar el ESP32 para medir el nivel de luz leyendo la señal analógica del módulo de sensor de luz LDR.

Después, puedes cambiar el código para hacer que un LED o una bombilla se encienda (usando un relé) cuando detecte luz.
Si estás interesado en un sensor de luz en su forma cruda, te sugiero explorar el tutorial para el ESP32 - Light Sensor.
Hardware Requerido
Or you can buy the following kits:
| 1 | × | DIYables ESP32 Starter Kit (ESP32 included) | |
| 1 | × | DIYables Sensor Kit (30 sensors/displays) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Acerca del Módulo de Sensor de Luz LDR
El módulo de sensor de luz LDR se puede usar para saber si hay luz o cuánta luz hay en el área circundante. Tiene un pin de salida digital y un pin de salida analógica para diferentes opciones.
Diagrama de pines
El módulo de sensor de luz LDR tiene cuatro pines:
- Pin VCC: Conecta este pin a la fuente de alimentación (entre 3.3 V y 5 V).
- Pin GND: Conecta este pin a la tierra (0 V).
- Pin DO: Este es un pin de salida digital. Envía una señal ALTA cuando está oscuro y BAJA cuando está claro. Puedes ajustar el umbral entre oscuro y claro usando un potenciómetro integrado.
- Pin AO: Este es un pin de salida analógica. El valor disminuye a medida que la luz se hace más brillante y aumenta a medida que la luz se oscurece.

Además, el módulo de sensor de luz LDR está equipado con dos indicadores LED:
- El indicador PWR-LED muestra el estado de la alimentación.
- El indicador DO-LED refleja el estado de la luz en el pin DO: se ilumina cuando hay luz y permanece apagado cuando está oscuro.
Cómo funciona
Con respecto al pin DO:
- El módulo de sensor de luz LDR cuenta con un potenciómetro que permite ajustar la sensibilidad o el umbral para detectar la luz.
- Cuando la intensidad de la luz en el entorno es superior al umbral establecido (considerado como luz), la salida del sensor en el pin DO pasa a nivel bajo, y el DO-LED se enciende.
- Cuando la intensidad de la luz en el entorno es inferior al umbral establecido (considerado como oscuridad), la salida del sensor en el pin DO pasa a nivel alto, y el DO-LED se apaga.
Con respecto al pin AO:
- El valor leído desde el pin AO es inversamente proporcional a la intensidad de la luz en el entorno circundante. En otras palabras, a medida que la intensidad de la luz aumenta (más brillante), el valor en el pin AO disminuye.
- De manera similar, a medida que la intensidad de la luz disminuye (más oscura), el valor en el pin AO aumenta.
Es importante señalar que ajustar el potenciómetro no afecta el valor del pin AO.
Diagrama de Cableado
El módulo de sensor de luz ofrece dos salidas, DO y AO, que pueden usarse de forma individual o juntas.
- Cómo conectar ESP32 y un módulo LDR usando breadboard

This image is created using Fritzing. Click to enlarge image
Si no sabe c\u00f3mo alimentar ESP32 y otros componentes, encuentre instrucciones en el siguiente tutorial: C\u00f3mo alimentar ESP32.
- Cómo conectar el ESP32 y el módulo LDR usando una placa breakout con bloque de terminales de tornillo

Código ESP32 - Leer valor del pin DO
Pasos R\u00e1pidos
- Si es la primera vez que usas ESP32, consulta cómo configurar el entorno para ESP32 en Arduino IDE.
- Haz el cableado como en la imagen de arriba.
- Conecta la placa ESP32 a tu PC mediante un cable micro USB.
- Abre Arduino IDE en tu PC.
- Selecciona la placa ESP32 correcta (p. ej. ESP32 Dev Module) y el puerto COM.
- Copia el código anterior y ábrelo con Arduino IDE.
- Haz clic en el botón Subir en Arduino IDE para cargar el código en el ESP32.
- Cubre y descubre el módulo de sensor de luz LDR con tu mano o con algo.
- Ver el resultado en el Monitor Serial.
Si observa que el estado del LED permanece constantemente encendido o apagado, independientemente de la presencia de luz, tiene la opción de ajustar el potenciómetro. Este ajuste le permite afinar con precisión la sensibilidad a la luz del sensor.
Además, el código puede modificarse de acuerdo con sus requisitos. Por ejemplo, puede programar el LED para que se active o la luz para que se encienda cuando se detecta luz. Asimismo, tiene la flexibilidad de hacer girar un servomotor. Instrucciones detalladas y tutoriales sobre estas opciones de personalización pueden encontrarse al final de esta guía.
Código ESP32 - Leer valor desde el pin AO
Pasos R\u00e1pidos
- Copie el código anterior y ábralo con Arduino IDE
- Haga clic en el botón Subir en Arduino IDE para cargar el código al ESP32
- Cubra y descubra el módulo de sensor de luz LDR con la mano o con algo
- Vea el resultado en el Monitor serie
※ Nota:
Este tutorial utiliza la función analogRead() para leer valores de un ADC (Convertidor Analógico-Digital) conectado a un módulo LDR. El ADC del ESP32 es bueno para proyectos que NO requieren alta precisión. Sin embargo, para proyectos que necesitan mediciones precisas, tenga en cuenta:
- El ADC del ESP32 no es perfectamente preciso y podría necesitar calibración para obtener resultados correctos. Cada placa ESP32 puede ser un poco diferente, por lo que debe calibrar el ADC para cada placa individual.
- La calibración puede ser difícil, especialmente para principiantes, y podría no dar siempre los resultados exactos que desea.
Para proyectos que requieren alta precisión, considere usar un ADC externo (p. ej. ADS1115) con el ESP32 o usar un Arduino, que tiene un ADC más fiable. Si aún desea calibrar el ADC del ESP32, consulte el Controlador de calibración del ADC ESP32
Video Tutorial
Estamos considerando crear tutoriales en video. Si considera que los tutoriales en video son importantes, suscríbase a nuestro canal de YouTube para motivarnos a crear los videos.