Arduino Nano ESP32 - Módulo LDR

El módulo de sensor de luz LDR puede detectar y medir la luz a su alrededor. Tiene dos salidas: una salida digital que puede ser baja o alta, y una salida analógica.

En este tutorial, aprenderemos cómo usar un Arduino Nano 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 modificar el código para hacer que un LED o una bombilla se encienda (usando un relé) cuando detecte luz.

Si te interesa un sensor de luz en su forma bruta, te sugiero explorar el tutorial para el Sensor de Luz Arduino Nano ESP32.

Hardware Requerido

1×Arduino Nano ESP32
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 Arduino Nano
1×(Recomendado) Placa de Expansión Breakout para Arduino Nano
1×(Recomendado) Divisor de Alimentación para Arduino Nano ESP32

Or you can buy the following kits:

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 que lo rodea. Tiene un pin de salida digital y un pin de salida analógica para diferentes opciones.

Esquema de pines

El módulo de sensor de luz LDR tiene cuatro pines:

  • Pin VCC: Conecte este pin a la fuente de alimentación (entre 3.3V y 5V).
  • Pin GND: Conecte este pin a la tierra (0V).
  • Pin DO: Este es un pin de salida digital. Proporciona una señal alta cuando está oscuro y baja cuando está claro. Puede ajustar el umbral entre oscuro y claro mediante un potenciómetro incorporado.
  • Pin AO: Este es un pin de salida analógica. El valor disminuye a medida que la luz se vuelve más brillante y aumenta a medida que la luz se vuelve más oscura.
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

En cuanto al pin DO:

  • El módulo de sensor de luz LDR tiene un potenciómetro que permite ajustar la sensibilidad o el umbral para detectar la luz.
  • Cuando la intensidad de la luz en el entorno circundante está por encima del umbral establecido (considerado como luz), la salida del sensor en el pin DO pasa a bajo y el DO-LED se enciende.
  • Cuando la intensidad de la luz en el entorno circundante está por debajo del umbral establecido (considerado como oscuro), la salida del sensor en el pin DO pasa a 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.
  • Del mismo modo, 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 en el pin AO.

Diagrama de Cableado

Dado que el módulo de sensor de luz tiene dos salidas, puedes elegir usar una o ambas, dependiendo de lo que necesites.

  • El diagrama de cableado entre Arduino Nano ESP32 y el módulo sensor de luz LDR cuando se utiliza solo la salida digital.
Diagrama de cableado del módulo sensor de luz LDR para Arduino Nano ESP32

This image is created using Fritzing. Click to enlarge image

  • El diagrama de cableado entre Arduino Nano ESP32 y el módulo sensor de luz LDR cuando solo se utiliza la AO.
Diagrama de cableado del módulo LDR para Arduino Nano ESP32

This image is created using Fritzing. Click to enlarge image

  • El diagrama de cableado entre Arduino Nano ESP32 y el módulo de sensor de luz LDR cuando se utilizan tanto AO como DO.
Diagrama de cableado del módulo de sensor de luz Arduino Nano ESP32

This image is created using Fritzing. Click to enlarge image

Código de Arduino Nano ESP32 - Leer valor del pin DO

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

Pasos R\u00e1pidos

Para empezar con Arduino Nano ESP32, siga estos pasos:

  • Si eres nuevo en Arduino Nano ESP32, consulta el tutorial sobre cómo configurar el entorno para Arduino Nano ESP32 en el IDE de Arduino.
  • Conecta los componentes de acuerdo con el diagrama proporcionado.
  • Conecta la placa Arduino Nano ESP32 a tu computadora usando un cable USB.
  • Inicia el IDE de Arduino en tu computadora.
  • Selecciona la Arduino Nano ESP32 placa y su puerto COM correspondiente.
  • Copia el código anterior y ábrelo con el IDE de Arduino.
  • Haz clic en el botón Upload del IDE de Arduino para cargar el código en Arduino Nano ESP32.
  • Cubre y destapa el módulo sensor de luz LDR con tu mano o con algo.
  • Ver el resultado en el Monitor serie.
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 encendido o apagado de forma constante, 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 según tus requisitos. Por ejemplo, puedes programar el LED para que se active o la luz para encenderse cuando se detecta luz. Además, tienes la flexibilidad de hacer que un servomotor gire. Instrucciones detalladas y tutoriales sobre estas opciones de personalización se pueden encontrar al final de esta guía.

Código de Arduino Nano ESP32 - Leer valor del pin AO

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

Pasos R\u00e1pidos

  • Copia el código anterior y ábrelo con Arduino IDE
  • Haz clic en el botón Upload en Arduino IDE para subir el código al Arduino Nano ESP32
  • Cubre y descubre el módulo sensor de luz LDR con tu mano o con algo
  • Consulta el resultado en el Monitor Serial.
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 sensor o componente. El ADC del Arduino Nano ESP32 es adecuado para proyectos que no requieren alta precisión. Sin embargo, para proyectos que exigen mediciones precisas, tenga en cuenta lo siguiente:

  • El ADC del Arduino Nano ESP32 no es perfectamente exacto y podría requerir calibración para obtener resultados correctos. Cada placa Arduino Nano ESP32 puede variar ligeramente, por lo que la calibración es necesaria para cada placa individual.
  • La calibración puede ser desafiante, especialmente para principiantes, y puede que no siempre arroje los resultados exactos que deseas.

Para proyectos que requieren alta precisión, considera usar un ADC externo (p. ej. ADS1115) con el Arduino Nano ESP32 o usar otro Arduino, como el Arduino Uno R4 WiFi, que tiene un ADC más fiable. Si todavía quieres calibrar el ADC del Arduino Nano ESP32, consulta el ESP32 ADC Calibration Driver.

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

Tutoriales Relacionados

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