Hvis du noen gang har lurt på hvordan du effektivt kan måle lysnivået i et miljø med Arduino, er du på rett sted. I denne artikkelen vil vi forklare trinn for trinn hvordan du gjør det ved å bruke en LDR-fotoresistor, også kjent som en fotoresistor. Disse små teknologiske underverkene er elektroniske komponenter som er i stand til å endre motstanden sin avhengig av mengden lys de mottar, noe som åpner for uendelige muligheter for elektroniske og automasjonsprosjekter.
Bruksområdene til lyssensoren med Arduino er mange: fra automatiske lyssystemer til roboter som orienterer seg basert på lys. Det beste av alt er at det er en rimelig og brukervennlig komponent. Her vil vi gi deg all nødvendig informasjon slik at du kan bygge ditt eget lysmålesystem med Arduino og dra nytte av dets fulle potensial.
Hva er en LDR og hvordan fungerer den?
en LDR (Light Dependent Resistor) Det er en motstand hvis størrelse varierer avhengig av mengden lys som faller på den. Under mørke forhold er motstanden veldig høy, og når verdier på opptil 1 MOhm. Tvert imot, når LDR mottar rikelig med lys, synker motstanden betraktelig, og når verdier mellom 50 og 100 ohm under intenst lys.
Dens drift er basert på prinsippet om ledningsevne av halvledermaterialer. Ved mottak av lys gir fotoner energi til elektronene i materialet, noe som letter strømstrømmen og reduserer derfor motstanden. Denne typen sensor er svært nyttig for applikasjoner der en relativ måling av lys i miljøet er nødvendig.
LDR-funksjoner
Denne komponenten er veldig populær på grunn av dens lave pris og brukervennlighet. Typiske motstandsverdier varierer fra 1 MOhm i fullstendig mørke opptil 50-100 Ohm i sterkt lys. Det er imidlertid verdt å nevne at de ikke er de mest presise sensorene hvis du er ute etter å nøyaktig måle belysningsstyrken (lys i lux), da de kan påvirkes av faktorer som temperatur.
Motstandsvariasjonen er ganske sakte, tar mellom 20 og 100 millisekunder avhengig av modell. Dette betyr at den ikke er egnet for å oppdage raske lysendringer, slik som de som produseres under vekselstrømsdrevne lys, men tilbyr utmerket stabilitet under mer konstante lysforhold.
Si bien LDR-er er mer egnet for å måle lystrender at for å gi nøyaktige data, deres lave kostnader og enkle integrasjon med Arduino-kort gjør dem til en ideell sensor for DIY-prosjekter.
Krets- og koblingsdiagram
For at Arduino skal måle motstandsvariasjonen til LDR, er det nødvendig å montere sensoren på det som kalles en spenningsdeler. Dette er en veldig enkel krets som består av LDR og en fast motstand koblet i serie. LDR er plassert mellom inngangsspenningen (f.eks. 5V på kortet Arduino Uno) og den analoge inngangspinnen, og den faste motstanden er koblet mellom pinne og jord (GND).
Verdien av den faste motstanden er vanligvis 10 kOhm, selv om den kan variere avhengig av følsomheten du ønsker å oppnå i målingen.
Eksempler på montering og kode
For å bygge et grunnleggende system med Arduino og en LDR, er det første du må gjøre å koble til følgende elementer:
- Den ene enden av LDR til 5V-forsyningen.
- Den andre enden av LDR til den analoge inngangen (A0, for eksempel) og samtidig til en fast motstand som skal kobles til jord.
Med dette oppsettet kan du begynne å lese verdiene som LDR gir gjennom den analoge inngangen. Koden nedenfor er et grunnleggende eksempel for å lese disse verdiene:
const int pinLDR = A0;
void setup() {
Serial.begin(9600); // Iniciar monitor serie}
void loop() {
int valorLDR = analogRead(pinLDR); // Leer valor de LDR
Serial.println(valorLDR); // Imprimir valor en monitor
delay(500);
}
Denne koden vil skrive ut verdier mellom 0 (dvs. når det ikke er lys) og 1023 (maksimalt lys mottatt). Disse verdiene er proporsjonale med lyset som oppfattes av LDR.
Oppførselen til motstand som en funksjon av lys
Som allerede nevnt, avtar motstanden til LDR når den mottar mer lys. For å få en nøyaktig måling av lysmengden, må du kjenne motstandsverdiene til din LDR under forskjellige lysforhold.
I GL55-serien, for eksempel, varierer verdiene fra 5 kΩ til 200 kΩ i nærvær av lys og fra 500 kΩ til 10 MΩ under mørke forhold. Disse verdiene kan variere fra modell til modell, så det er alltid lurt å konsultere sensorprodusentens datablad.
En interessant særegenhet ved LDR er det Dens følsomhet er størst i den grønne lysdelen av spekteret., omtrent ved bølgelengder på 540 nm. Dette betyr at LDR-er reagerer bedre på grønt lys enn andre deler av det synlige spekteret.
Praktiske applikasjoner
De mulige bruksområdene for LDR-er koblet til en Arduino er nesten uendelige. Blant de mest praktiske er automatiske lyssystemer, hvor kretsen kan aktivere eller deaktivere lys avhengig av de detekterte lysnivåene. De brukes også til lettfølgende roboter og hjemmeautomatiseringssystemer.
Du kan for eksempel lage et system hvor når lysnivået synker, lyser en LED for å kompensere for mangelen på lys. Her er et enkelt kodeeksempel:
int LDRPin = A0; // Pin para la LDR
int LEDPin = 13; // Pin para el LED
int threshold = 500; // Umbral para encender el LED
void setup() {
pinMode(LEDPin, OUTPUT);
pinMode(LDRPin, INPUT);}
void loop() {
int valorLuz = analogRead(LDRPin);
if (valorLuz < threshold) {
digitalWrite(LEDPin, HIGH); // Enciende el LED
} else {
digitalWrite(LEDPin, LOW); // Apaga el LED
}
delay(100);}
Dette lille programmet leser LDR-verdien, og hvis lysnivået er lavere enn den innstilte terskelen, slår det på LED-en. Ellers slår den den av. Et enkelt, men svært funksjonelt eksempel i lysautomatiseringsprosjekter.
Begrensninger og forholdsregler
Selv om bruken av en LDR er veldig praktisk i mange prosjekter, er det viktig å ta hensyn til noen av begrensningene:
- De er ikke veldig nøyaktige hvis du er ute etter å måle den nøyaktige lysintensiteten i lux.
- Oppførselen kan variere avhengig av temperaturen.
- De fungerer best for å oppdage større endringer i lys og ikke raske variasjoner.