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:

Módulo de sensor de luz LDR
image source: diyables.io

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

1×Módulo de Desarrollo ESP32 ESP-WROOM-32
1×Cable USB Tipo-A a Tipo-C (para PC USB-A)
1×Cable USB Tipo-C a Tipo-C (para PC USB-C)
1×Módulo Sensor de Luz LDR
1×Protoboard
1×Cables Puente
1×(Recomendado) Placa de Expansión de Terminales de Tornillo para ESP32
1×(Recomendado) Breakout Expansion Board for ESP32
1×(Recomendado) Divisor de Alimentación para ESP32

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)
Divulgación: Algunos de los enlaces proporcionados en esta sección son enlaces de afiliado de Amazon. Podemos recibir una comisión por las compras realizadas a través de estos enlaces sin costo adicional para usted. Apreciamos su apoyo.

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.
Pinout del módulo de sensor de luz LDR
image source: diyables.io

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
Diagrama de cableado del módulo de sensor de luz LDR para ESP32

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 un módulo LDR

Código ESP32 - Leer valor del pin DO

/* * Este código de ESP32 fue desarrollado por es.newbiely.com * Este código de ESP32 se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/esp32/esp32-ldr-module */ #define DO_PIN 13 // ESP32's pin GPIO13 connected to DO pin of the ldr module void setup() { // initialize serial communication Serial.begin(9600); // initialize the ESP32's pin as an input pinMode(DO_PIN, INPUT); } void loop() { int lightState = digitalRead(DO_PIN); if (lightState == HIGH) Serial.println("It is dark"); else Serial.println("It is light"); }

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.
COM6
Send
It is light It is light It is dark It is dark It is dark It is light It is light It is light
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

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

/* * Este código de ESP32 fue desarrollado por es.newbiely.com * Este código de ESP32 se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/esp32/esp32-ldr-module */ #define AO_PIN 36 // ESP32's pin GPIO36 connected to AO pin of the ldr module void setup() { // initialize serial communication Serial.begin(9600); // set the ADC attenuation to 11 dB (up to ~3.3V input) analogSetAttenuation(ADC_11db); } void loop() { int lightValue = analogRead(AO_PIN); Serial.print("The AO value: "); Serial.println(lightValue); }

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
COM6
Send
The AO value: 145 The AO value: 146 The AO value: 146 The AO value: 572 The AO value: 1678 The AO value: 1945 The AO value: 2956 The AO value: 3001 The AO value: 3098 The AO value: 4005 The AO value: 4005 The AO value: 1645 The AO value: 1546 The AO value: 346 The AO value: 172
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ 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.

Referencias de funciones

※ NUESTROS MENSAJES

  • No dude en compartir el enlace de este tutorial. Sin embargo, por favor no use nuestro contenido en otros sitios web. Hemos invertido mucho esfuerzo y tiempo en crear el contenido, ¡por favor respete nuestro trabajo!