Hvis du nogensinde har undret dig over, hvordan du effektivt kan måle lysniveauet i et miljø med Arduino, er du på det rigtige sted. I denne artikel vil vi trin for trin forklare, hvordan man gør det ved hjælp af en LDR-fotomodstand, også kendt som en fotomodstand. Disse små teknologiske vidundere er elektroniske komponenter, der er i stand til at ændre deres modstand afhængigt af mængden af lys, de modtager, hvilket åbner op for uendelige muligheder for elektroniske og automationsprojekter.
Anvendelsesmulighederne for lyssensoren med Arduino er mange: fra automatiske lyssystemer til robotter, der orienterer sig ud fra lys. Det bedste af det hele er, at det er en prisbillig og nem at bruge komponent. Her vil vi give dig al den nødvendige information, så du kan bygge dit eget lysmålesystem med Arduino og udnytte dets fulde potentiale.
Hvad er en LDR, og hvordan fungerer den?
en LDR (Light Dependent Resistor) Det er en modstand, hvis størrelse varierer afhængigt af mængden af lys, der falder på den. Under mørke forhold er modstanden meget høj og når værdier på op til 1 MOhm. Tværtimod, når LDR modtager rigeligt lys, falder modstanden betydeligt og når værdier mellem 50 og 100 ohm under intenst lys.
Dens drift er baseret på princippet om ledningsevne af halvledermaterialer. Ved modtagelse af lys aktiverer fotoner elektronerne i materialet, hvilket letter strømstrømmen og derfor mindsker modstanden. Denne type sensor er meget nyttig til applikationer, hvor en relativ måling af lys i omgivelserne er påkrævet.
LDR funktioner
Denne komponent er meget populær på grund af dens lave omkostninger og brugervenlighed. Typiske modstandsværdier spænder fra 1 MOhm i fuldstændig mørke op til 50-100 Ohm i stærkt lys. Det er dog værd at nævne, at det ikke er de mest præcise sensorer, hvis man søger præcist at måle belysningsstyrken (lys i lux), da de kan blive påvirket af faktorer som temperatur.
Modstandsvariationen er ret langsom, hvilket tager mellem 20 og 100 millisekunder afhængigt af modellen. Det betyder, at den ikke er egnet til at detektere hurtige lysændringer, såsom dem, der produceres under vekselstrømsdrevne lys, men tilbyder fremragende stabilitet under mere konstante lysforhold.
Si bien LDR'er er mere velegnede til at måle lystendenser at for at levere nøjagtige data gør deres lave omkostninger og lette integration med Arduino-kort dem til en ideel sensor til gør-det-selv-projekter.
Kreds- og tilslutningsdiagram
For at Arduino kan måle modstandsvariationen af LDR, er det nødvendigt at montere sensoren på det, der er kendt som en spændingsdeler. Dette er et meget simpelt kredsløb bestående af LDR og en fast modstand forbundet i serie. LDR er placeret mellem indgangsspændingen (f.eks. 5V på kortet Arduino Uno) og det analoge indgangsben, og den faste modstand er forbundet mellem ben og jord (GND).
Værdien af den faste modstand er normalt 10 kOhms, selvom den kan variere afhængigt af den følsomhed, du ønsker at opnå i din måling.
Eksempler på montering og kode
For at bygge et grundlæggende system med Arduino og en LDR, er den første ting, du skal gøre, at forbinde følgende elementer:
- Den ene ende af LDR til 5V-forsyningen.
- Den anden ende af LDR til den analoge indgang (f.eks. A0) og samtidig til en fast modstand, der skal forbindes til jord.
Med denne opsætning kan du begynde at læse de værdier, som LDR giver gennem den analoge indgang. Koden nedenfor er et grundlæggende eksempel til at læse disse værdier:
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 kode udskriver værdier mellem 0 (dvs. når der ikke er noget lys) og 1023 (maksimalt lys modtaget). Disse værdier er proportionale med lyset opfattet af LDR.
Modstandens opførsel som funktion af lys
Som allerede nævnt falder modstanden af LDR, efterhånden som den modtager mere lys. For at opnå en præcis måling af lysmængden, skal du kende modstandsværdierne for din LDR under forskellige lysforhold.
I GL55-serien, for eksempel, spænder værdierne fra 5 kΩ til 200 kΩ i nærvær af lys og fra 500 kΩ til 10 MΩ under mørke forhold. Disse værdier kan variere fra model til model, så det er altid tilrådeligt at konsultere sensorproducentens datablad.
En interessant ejendommelighed ved LDR er det Dens følsomhed er størst i den grønne del af spektret.ca. ved bølgelængder på 540 nm. Det betyder, at LDR'er reagerer bedre på grønt lys end andre dele af det synlige spektrum.
Praktiske anvendelser
De mulige anvendelser af LDR'er forbundet til en Arduino er næsten uendelige. Blandt de mest praktiske er automatiske lyssystemer, hvor kredsløbet kan aktivere eller deaktivere lys afhængigt af de detekterede lysniveauer. De bruges også til let følgende robotter og hjemmeautomatiseringssystemer.
Du kan f.eks. lave et system, hvor lysniveauet falder, lyser en LED for at kompensere for manglen på lys. Her er et simpelt 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 program aflæser LDR-værdien, og hvis lysniveauet er lavere end den indstillede tærskel, tænder det LED'en. Ellers slukker den. Et nemt, men yderst funktionelt eksempel i lysautomatiseringsprojekter.
Begrænsninger og forholdsregler
Selvom brugen af en LDR er meget praktisk i mange projekter, er det vigtigt at tage højde for nogle af dets begrænsninger:
- De er ikke særlig nøjagtige, hvis du ønsker at måle den nøjagtige intensitet af lys i lux.
- Dens opførsel kan variere afhængigt af temperaturen.
- De fungerer bedst til at registrere større ændringer i lyset og ikke hurtige variationer.