Resistore dipendente dalla luce - sensore LDR con esptop 10 usando Arduino IDE

Resistore dipendente dalla luce - sensore LDR con esptop 10 usando Arduino IDE

ESP32 è un potente microcontrollore dotato di funzionalità per IoT. ESP32 con LDR può misurare l'intensità della luce e innescare la risposta secondo essa. Usando ESP32 e un LDR possiamo creare un progetto basato sul rilevamento della luce remoto e progettare una varietà di soluzioni IoT innovative per vari settori e applicazioni.

In questa guida, le basi di LDR e le sue applicazioni con ESP32 saranno coperte.

1: Introduzione al sensore LDR

2: Applicazioni di LDR con ESP32

3: interfacciando LDR con ESP32 usando Arduino IDE

    • 1: schema
    • 2: codice
    • 3: output sotto luce fioca
    • 4: output sotto luce intensa

Conclusione

1: Introduzione al sensore LDR

UN Light Dependente REsistor (LDR) è un tipo di resistenza che cambia la sua resistenza in base all'intensità della luce a cui è esposto. Nell'oscurità, la sua resistenza è molto alta, mentre in luce intensa la sua resistenza è molto bassa. Questo cambiamento di resistenza rende il migliore per i progetti di rilevamento della luce.


I pin analogici ESP32 convertono le tensioni in arrivo in un numero intero tra 0 e 4095. Questo valore intero è mappato contro la tensione di ingresso analogica da 0 V a 3.3v che è per impostazione predefinita la tensione di riferimento ADC in ESP32. Questo valore viene letto usando l'Arduino analogread () funzione da LDR.

Per ulteriori guida dettagliate e pinout ADC di ESP32 Leggi l'articolo ESP32 ADC - Leggi i valori analogici con Arduino IDE.


ESP32 ha un convertitore da analogico a digitale incorporato (ADC) che può misurare la tensione attraverso l'LDR e convertirla in un segnale digitale che può essere elaborato dal microcontrollore. L'uso di questo segnale ESP32 determina la resistenza dell'LDR, che è proporzionale all'intensità della luce.

Qui useremo i pin ESP32 ADC Channel 1.


I fotoni o le particelle di luce svolgono un ruolo cruciale nel funzionamento di LDRS. Quando la luce cade sulla superficie di un LDR, i fotoni vengono assorbiti dal materiale, che libera gli elettroni nel materiale. Il numero di elettroni liberi è direttamente proporzionale all'intensità della luce e più elettroni che vengono liberati, più bassa è la resistenza della LDR.

2: Applicazioni di LDR con ESP32

Di seguito è riportato l'elenco di alcune applicazioni basate sull'IoT di LDR con ESP32:

    • Interruttore attivato dalla luce
    • Indicatore a livello di luce
    • Modalità notturna nei dispositivi
    • Sistemi di sicurezza basati sulla luce
    • Sistemi di illuminazione intelligenti
    • Sistemi di sicurezza sensibili alla luce
    • Monitoraggio degli impianti
    • Illuminazione ad alta efficienza energetica
    • Blinds di finestre automatizzate

3: interfacciando LDR con ESP32 usando Arduino IDE

Per utilizzare un LDR con ESP32, è necessario collegare l'LDR con un pin canale ADC ESP32. Dopodiché è necessario il codice Arduino che leggerà i valori analogici dal pin di uscita LDR. Per progettare questo circuito, abbiamo bisogno di LDR, una resistenza e la scheda ESP32.

La LDR e il resistore sono collegati in serie, con l'LDR collegato a Canale analogico 1 Pin di ingresso di ESP32. Un LED verrà aggiunto al circuito in grado di testare LDR funzionante.

1: schema

Il diagramma del circuito per l'interfaccia LDR con ESP32 è abbastanza semplice. Dobbiamo collegare l'LDR e un resistore in una configurazione del divisore di tensione e collegare l'uscita del divisore di tensione al pin ADC (convertitore da analogico a digitale) di ESP32. Il pin D34 del canale ADC viene utilizzato come ingresso analogico per ESP32.

La seguente immagine è lo schema di ESP32 con sensore LDR.

2: codice

Una volta impostato il circuito, il passo successivo è scrivere il codice per ESP32. Il codice leggerà l'ingresso analogico dall'LDR e lo utilizzerà per controllare un LED o un altro dispositivo in base a diversi livelli di luce.

int ldr_val = 0; /*Variabile per archiviare il valore del fotoresistor*/
sensore int = 34; /*Ingresso analogico per fotoresistor*/
INT LED = 25; /*Pin di uscita a LED*/
void setup ()
Seriale.Inizia (9600); /*Tasso di baud per comunicazione seriale*/
pinMode (LED, output); / *Pin LED impostata come output */

void loop ()
Ldr_val = analogread (sensore); /*Analogico leggi il valore LDR*/
Seriale.print ("Valore di output LDR:");
Seriale.println (ldr_val); /*Visualizza LDR Output Val sul monitor seriale*/
if (ldr_val> 100) /*se l'intensità della luce è alta* /
Seriale.println ("alta intensità");
DigitalWrite (LED, basso); /*LED rimane fuori*/

altro
/*Altrimenti se l'intensità della luce è un LED basso rimarrà su*/
Seriale.println ("bassa intensità");
DigitalWrite (LED, High); /* LED Accensione Il valore LDR è inferiore a 100*/

ritardo (1000); /*Legge il valore dopo ogni 1 sec*/


Nel codice sopra ushiamo un LDR con ESP32 che controllerà il LED usando l'ingresso analogico proveniente da LDR.

Le prime tre righe di codice dichiarano variabili per archiviare il Valore del fotoresistor, IL Pin analogico per il fotoresistor e il GUIDATO Pin di uscita.

Nel impostare() Funzione, la comunicazione seriale è iniziata con una velocità di trasmissione di 9600 e il pin LED D25 è impostato come output.

Nel ciclo continuo() funzione, il valore del fotoresistor viene letto utilizzando la funzione Analogread (), che è memorizzata in Ldr_val variabile. Il valore del fotoresistor viene quindi visualizzato sul monitor seriale utilizzando il seriale.funzione println ().

UN se altro L'istruzione viene utilizzata per controllare il LED in base all'intensità della luce rilevata dal fotoresistor. Se il valore del fotoresistor è maggiore di 100, significa che l'intensità della luce è alta e il LED rimane spento. Tuttavia, se il valore del fotoresistor è inferiore o uguale a 100, significa che l'intensità della luce è bassa e il LED si accende.

Infine, il programma attende 1 secondo utilizzando la funzione Delay () prima di leggere di nuovo il valore del fotoresistor. Questo ciclo si ripete a tempo indeterminato, rendendo il LED accendere e spegnere in base all'intensità della luce rilevata dal fotoresistor.

3: output sotto luce fioca

L'intensità della luce è inferiore a 100, quindi il LED rimarrà acceso.

4: output sotto luce intensa

All'aumentare dell'intensità della luce, il valore LDR aumenterà e la resistenza LDR diminuirà, quindi il LED si spegne.

Conclusione

La LDR può essere interfacciata con ESP32 utilizzando il pin del canale ADC. L'uscita LDR può controllare il rilevamento della luce in varie applicazioni. Con le sue dimensioni a basso costo e compatte, ESP32 e LDR fanno una scelta attraente per i progetti IoT che richiedono capacità di rilevamento della luce. Usando l'Arduino analogread () funzione possiamo leggere i valori da LDR.