Lysavhengig motstand - LDR -sensor med esptop 10 ved bruk av Arduino IDE

Lysavhengig motstand - LDR -sensor med esptop 10 ved bruk av Arduino IDE

ESP32 er en kraftig mikrokontroller utstyrt med funksjoner for IoT. ESP32 med LDR kan måle lysintensitet og utløser respons i henhold til den. Ved hjelp av ESP32 og en LDR kan vi lage et eksternt lysfølelsesbasert prosjekt og designe en rekke innovative IoT-løsninger for forskjellige bransjer og applikasjoner.

I denne guiden vil det grunnleggende om LDR og dens applikasjoner med ESP32 bli dekket.

1: Introduksjon til LDR -sensor

2: Applikasjoner av LDR med ESP32

3: grensesnitt LDR med ESP32 ved bruk av Arduino IDE

    • 1: Skjematisk
    • 2: Kode
    • 3: Utgang under svakt lys
    • 4: Utgang under sterkt lys

Konklusjon

1: Introduksjon til LDR -sensor

EN Light DEpendent REsistor (LDR) er en type motstand som endrer dens motstand basert på lysintensiteten den blir utsatt for. I mørket er motstanden veldig høy, mens den i sterkt lys er motstanden veldig lav. Denne endringen i motstand gjør det best for lysfølende prosjekter.


ESP32 analoge pinner konverterer de innkommende spenningene til et heltall mellom 0 og 4095. Denne heltallverdien er kartlagt mot den analoge inngangsspenningen fra 0V til 3.3V som er som standard ADC -referansespenningen i ESP32. Denne verdien leses ved hjelp av Arduino Analogread () Funksjon fra LDR.

For ytterligere detaljert guide og ADC -pinout av ESP32, les artikkelen ESP32 ADC - Les analoge verdier med Arduino IDE.


ESP32 har en innebygd analog-til-digital omformer (ADC) som kan måle spenningen over LDR og konvertere den til et digitalt signal som kan behandles av mikrokontrolleren. Ved å bruke dette signalet bestemmer ESP32 motstanden til LDR, som er proporsjonal med lysintensiteten.

Her bruker vi ESP32 ADC Channel 1 -pins.


Fotoner eller lette partikler spiller en avgjørende rolle i driften av LDR -er. Når lys faller på overflaten av en LDR, blir fotoner absorbert av materialet, som deretter frigjør elektroner i materialet. Antall gratis elektroner er direkte proporsjonalt med lysintensiteten, og jo mer elektroner som er frigjort, jo lavere blir LDR -motstanden.

2: Applikasjoner av LDR med ESP32

Følgende er listen over noen IoT -baserte applikasjoner av LDR med ESP32:

    • Lysaktivert bryter
    • Lysnivåindikator
    • Nattmodus i enheter
    • Lysbaserte sikkerhetssystemer
    • Smarte belysningssystemer
    • Lysfølsomme sikkerhetssystemer
    • Planteovervåking
    • Energieffektiv belysning
    • Automatiserte vindus persienner

3: grensesnitt LDR med ESP32 ved bruk av Arduino IDE

For å bruke en LDR med ESP32, må vi koble LDR med en ESP32 ADC -kanal -pinne. Etter det er det nødvendig med Arduino -kode som vil lese analoge verdier fra LDR -utgangspinnen. For å designe denne kretsen, trenger vi LDR, en motstand og ESP32 -styret.

LDR og motstanden er koblet i serie, med LDR koblet til Analog kanal 1 Inngangspinne av ESP32. En LED vil bli lagt til kretsen som kan teste LDR -fungerer.

1: Skjematisk

Kretsdiagrammet for grensesnitt LDR med ESP32 er ganske enkelt. Vi må koble LDR og en motstand i en spenningsdelerkonfigurasjon og koble utgangen til spenningsdeleren til ADC (Analog til Digital Converter) PIN -kode på ESP32. ADC Channel 1 Pin D34 brukes som en analog inngang for ESP32.

Følgende bilde er skjemaet til ESP32 med LDR -sensor.

2: Kode

Når kretsen er satt opp, er neste trinn å skrive koden for ESP32. Koden vil lese den analoge inngangen fra LDR og bruke den til å kontrollere en LED eller annen enhet basert på forskjellige lysnivåer.

int ldr_val = 0; /*Variabel for å lagre fotoresistorverdi*/
int sensor = 34; /*Analog inngang for fotoresistor*/
int LED = 25; /*LED -utgangspinne*/
void setup ()
Serie.Begynn (9600); /*Baudfrekvens for seriell kommunikasjon*/
pinmode (LED, output); / *LED -pinne satt som utgang */

void loop ()
LDR_VAL = Analogread (sensor); /*Analog Les LDR -verdi*/
Serie.Print ("LDR Output Value:");
Serie.Println (LDR_VAL); /*Vis LDR -utgang VAL på seriell skjerm*/
if (ldr_val> 100) /*Hvis lysintensiteten er høy* /
Serie.println ("høy intensitet");
DigitalWrite (LED, lav); /*LED forblir av*/

annet
/*Annet hvis lysintensiteten er lav LED vil forbli på*/
Serie.println ("lav intensitet");
digitalwrite (LED, høy); /* LED Slå på LDR -verdien er mindre enn 100*/

forsinkelse (1000); /*Leser verdi etter hver 1 sek*/


I ovennevnte kode bruker vi en LDR med ESP32 som vil kontrollere LED ved hjelp av den analoge inngangen fra LDR.

De tre første kodelinjene erklærer variabler for å lagre Fotoresistorverdi, de Analog pin for fotoresistoren, og Led Utgangsnål.

I oppsett () Funksjon, seriekommunikasjonen initieres med en baudfrekvens på 9600 og LED -pinne D25 er satt som utgang.

I Løkke() funksjon, fotoresistorverdien blir lest ved bruk av analograad () -funksjonen, som er lagret i LDR_VAL variabel. Fotoresistorverdien vises deretter på seriemonitoren ved bruk av serien.println () funksjon.

An If-Else Uttalelse brukes til å kontrollere LED -en basert på lysintensiteten oppdaget av fotoresistoren. Hvis fotoresistorverdien er større enn 100, betyr det at lysintensiteten er høy, og LED forblir av. Imidlertid, hvis fotoresistorverdien er mindre enn eller lik 100, betyr det at lysintensiteten er lav, og at lysdioden slås på.

Til slutt venter programmet på 1 sekund ved å bruke forsinkelsen () -funksjonen før du leser fotoresistorverdien igjen. Denne syklusen gjentar seg på ubestemt tid, slik at LED slår av og på basert på lysintensiteten oppdaget av fotoresistoren.

3: Utgang under svakt lys

Lysintensiteten er mindre enn 100 så LED vil forbli på.

4: Utgang under sterkt lys

Når lysintensiteten øker vil LDR -verdien øke og LDR -motstanden vil avta slik at LED vil slå seg av.

Konklusjon

LDR kan kobles sammen med ESP32 ved hjelp av ADC Channel 1 PIN -koden. LDR -utgangen kan kontrollere lysfølelse i forskjellige applikasjoner. Med sin lave kostnad og kompakte størrelse, tar ESP32 og LDR et attraktivt valg for IoT -prosjekter som krever lette sensingfunksjoner. Bruke Arduino Analogread () funksjon vi kan lese verdier fra LDR.