Sensor de resistencia dependiente de la luz - LDR con Esptop 10 usando Arduino IDE

Sensor de resistencia dependiente de la luz - LDR con Esptop 10 usando Arduino IDE

El ESP32 es un potente microcontrolador equipado con características para IoT. ESP32 con LDR puede medir la intensidad de la luz y activar la respuesta de acuerdo con él. Utilizando ESP32 y un LDR, podemos crear un proyecto remoto basado en detección de luz y diseñar una variedad de soluciones de IoT innovadoras para diversas industrias y aplicaciones.

En esta guía, se cubrirán los conceptos básicos de LDR y sus aplicaciones con ESP32.

1: Introducción al sensor LDR

2: Aplicaciones de LDR con ESP32

3: Interfaciendo LDR con ESP32 usando Arduino IDE

    • 1: esquema
    • 2: código
    • 3: Salida bajo luz tenue
    • 4: Salida bajo luz brillante

Conclusión

1: Introducción al sensor LDR

A Lenriquecedor Dependedora RiñonalEsistor (LDR) es un tipo de resistencia que cambia su resistencia en función de la intensidad de la luz a la que está expuesto. En la oscuridad, su resistencia es muy alta, mientras que en luz brillante su resistencia es muy baja. Este cambio en la resistencia hace que sea mejor para los proyectos de detección de luz.


Los pines analógicos ESP32 convierten los voltajes entrantes en un entero entre 0 y 4095. Este valor entero se asigna contra el voltaje de entrada analógica de 0V a 3.3V, que es por defecto el voltaje de referencia ADC en ESP32. Este valor se lee usando el Arduino Analogread () función de LDR.

Para obtener más información detallada y adc pinout de ESP32, lea el artículo ESP32 ADC - Lea los valores analógicos con Arduino IDE.


El ESP32 tiene un convertidor analógico a digital (ADC) incorporado que puede medir el voltaje a través del LDR y convertirlo en una señal digital que el microcontrolador pueda procesar. El uso de esta señal ESP32 determina la resistencia del LDR, que es proporcional a la intensidad de la luz.

Aquí usaremos los pines del canal 1 ADC ESP32.


Los fotones o las partículas de luz juegan un papel crucial en la operación de LDRS. Cuando la luz cae sobre la superficie de un LDR, los fotones son absorbidos por el material, que luego libera electrones en el material. El número de electrones libres es directamente proporcional a la intensidad de la luz, y cuanto más liberados se liberan, menor será la resistencia del LDR.

2: Aplicaciones de LDR con ESP32

La siguiente es la lista de algunas aplicaciones basadas en IoT de LDR con ESP32:

    • Interruptor activado con luz
    • Indicador de nivel de luz
    • Modo nocturno en dispositivos
    • Sistemas de seguridad basados ​​en la luz
    • Sistemas de iluminación inteligente
    • Sistemas de seguridad sensibles a la luz
    • Monitoreo de plantas
    • Iluminación de eficiencia energética
    • Persianas automatizadas

3: Interfaciendo LDR con ESP32 usando Arduino IDE

Para usar un LDR con el ESP32 necesitamos conectar el LDR con un PIN del canal ADC ESP32. Después de eso, se necesita código Arduino que leerá valores analógicos del pin de salida LDR. Para diseñar este circuito, necesitamos LDR, una resistencia y la placa ESP32.

El LDR y la resistencia están conectados en serie, con el LDR conectado al Canal analógico 1 Pin de entrada de ESP32. Se agregará un LED al circuito que puede probar LDR funcionando.

1: esquema

El diagrama de circuito para interfactar LDR con ESP32 es bastante simple. Necesitamos conectar el LDR y una resistencia en una configuración de divisor de voltaje y conectar la salida del divisor de voltaje al pin ADC (convertidor analógico a digital) de ESP32. ADC Channel 1 Pin D34 se usa como entrada analógica para ESP32.

La siguiente imagen es el esquema de ESP32 con el sensor LDR.

2: código

Una vez que se ha configurado el circuito, el siguiente paso es escribir el código para el ESP32. El código leerá la entrada analógica del LDR y la usará para controlar un LED u otro dispositivo basado en diferentes niveles de luz.

int ldr_val = 0; /*Variable para almacenar el valor del fotorresistor*/
sensor int = 34; /*Entrada analógica para fotorresistor*/
int led = 25; /*Pin de salida LED*/
setup () void
De serie.comenzar (9600); /*Tasa de baudios para la comunicación en serie*/
PinMode (LED, salida); / *Pin de LED establecido como salida */

bucle void ()
Ldr_val = anicoGread (sensor); /*Analógico Leer LDR Valor*/
De serie.imprimir ("Valor de salida LDR:");
De serie.println (ldr_val); /*Muestra lDR de salida Val en el monitor serial*/
if (ldr_val> 100) /*Si la intensidad de la luz es alta* /
De serie.println ("alta intensidad");
DigitalWrite (LED, bajo); /*LED permanece apagado*/

demás
/*De lo contrario si la intensidad de la luz es baja LED permanecerá encendida*/
De serie.println ("baja intensidad");
DigitalWrite (LED, alto); /* LED ENCENDER El valor LDR es inferior a 100*/

retraso (1000); /*Lee valor después de cada 1 seg*/


En el código anterior, usamos un LDR con ESP32 que controlará LED utilizando la entrada analógica que proviene de LDR.

Las primeras tres líneas de código declaran variables para almacenar el Valor de fotorresistores, el pasador analógico para el fotorresistor y el CONDUJO pasador de salida.

En el configuración() función, la comunicación en serie se inicia con una velocidad de baudios de 9600 y el pin D25 LED se establece como salida.

En el bucle() función, el valor del fotorresistor se lee utilizando la función analogread (), que se almacena en el Ldr_val variable. El valor del fotorresistor se muestra en el monitor de serie utilizando la serie.función println ().

Un if-else La declaración se utiliza para controlar el LED en función de la intensidad de la luz detectada por el fotorresistor. Si el valor del fotorresistor es mayor que 100, significa que la intensidad de la luz es alta y el LED permanece apagado. Sin embargo, si el valor del fotorresistor es menor o igual a 100, significa que la intensidad de la luz es baja y el LED se enciende.

Finalmente, el programa espera 1 segundo usando la función de retraso () antes de leer el valor del fotorresistor nuevamente. Este ciclo se repite indefinidamente, haciendo que el LED se encienda y apague en función de la intensidad de la luz detectada por el fotorresistor.

3: Salida bajo luz tenue

La intensidad de la luz es inferior a 100, por lo que LED permanecerá encendido.

4: Salida bajo luz brillante

A medida que aumente la intensidad de la luz, el valor LDR aumentará y la resistencia LDR disminuirá para que LED se apagará.

Conclusión

El LDR se puede interactuar con ESP32 usando el PIN del canal 1 ADC. La salida LDR puede controlar la detección de la luz en varias aplicaciones. Con su bajo costo y tamaño compacto, el ESP32 y el LDR hacen una decisión atractiva para proyectos de IoT que requieren capacidades de detección de luz. Usando el Arduino Analogread () función podemos leer valores de LDR.