Ako ste se ikada pitali kako učinkovito izmjeriti razinu svjetla u okruženju s Arduinom, na pravom ste mjestu. U ovom članku objasnit ćemo korak po korak kako to učiniti pomoću LDR fotootpornika, također poznatog kao fotootpornik. Ova mala tehnološka čuda su elektroničke komponente sposobne mijenjati svoj otpor ovisno o količini svjetlosti koju primaju, što otvara beskrajne mogućnosti za elektroničke i automatizirane projekte.
Primjene svjetlosnog senzora s Arduinom su mnoge: od automatskih sustava rasvjete do robota koji se orijentiraju na temelju svjetla. Najbolje od svega, to je pristupačna komponenta koja se lako koristi. Ovdje ćemo vam dati sve potrebne informacije kako biste mogli izgraditi vlastiti sustav mjerenja svjetla s Arduinom i iskoristiti njegov puni potencijal.
Što je LDR i kako radi?
Una LDR (otpornik ovisan o svjetlu) To je otpor čija veličina varira ovisno o količini svjetlosti koja pada na njega. U mračnim uvjetima, otpor je vrlo visok, doseže vrijednosti do 1 MOhm. Naprotiv, kada LDR prima obilno svjetlo, otpor se znatno smanjuje, dosežući vrijednosti između 50 do 100 Ohma pod intenzivnim svjetlom.
Njegov rad temelji se na principu vodljivosti poluvodičkih materijala. Nakon primanja svjetlosti, fotoni pokreću elektrone u materijalu, olakšavajući protok struje i stoga smanjujući otpor. Ova vrsta senzora vrlo je korisna za primjene gdje je potrebno relativno mjerenje svjetla u okolini.
LDR značajke
Ova komponenta je vrlo popularna zbog svoje niske cijene i jednostavnosti korištenja. Tipične vrijednosti otpora kreću se od 1 MOhm u potpunom mraku do 50-100 Ohm pri jakom svjetlu. Međutim, vrijedi spomenuti da oni nisu najprecizniji senzori ako želite točno izmjeriti osvjetljenje (svjetlost u luksima), budući da na njih mogu utjecati čimbenici poput temperature.
Varijacija otpora je prilično spora, što traje između 20 i 100 milisekundi, ovisno o modelu. To znači da nije prikladan za otkrivanje brzih promjena svjetla, poput onih koje nastaju pod svjetlima napajanim izmjeničnom strujom, ali nudi izvrsnu stabilnost u uvjetima konstantnijeg osvjetljenja.
dok LDR-ovi su prikladniji za mjerenje svjetlosnih trendova Da bi pružili točne podatke, njihova niska cijena i jednostavnost integracije s Arduino pločama čine ih idealnim senzorom za DIY projekte.
Dijagram strujnog kruga i spajanja
Kako bi Arduino mjerio varijaciju otpora LDR-a, potrebno je montirati senzor na ono što je poznato kao razdjelnik napona. Ovo je vrlo jednostavan krug sastavljen od LDR-a i fiksnog otpornika spojenog u seriju. LDR se postavlja između ulaznog napona (npr. 5V na ploči Arduino Uno) i analognog ulaznog pina, a fiksni otpornik spojen je između pina i mase (GND).
Vrijednost fiksnog otpora obično je 10 kOhma, iako može varirati ovisno o osjetljivosti koju želite postići u svom mjerenju.
Primjeri sklopa i koda
Za izgradnju osnovnog sustava s Arduinom i LDR-om, prvo morate spojiti sljedeće elemente:
- Jedan kraj LDR-a na 5V napajanje.
- Drugi kraj LDR-a na analogni ulaz (A0, na primjer) i istovremeno na fiksni otpornik koji će biti spojen na masu.
S ovom postavkom možete početi čitati vrijednosti koje LDR daje putem analognog ulaza. Kod u nastavku je osnovni primjer za čitanje tih vrijednosti:
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);
}
Ovaj kod će ispisati vrijednosti između 0 (tj. kada nema svjetla) i 1023 (maksimalno primljeno svjetlo). Ove vrijednosti su proporcionalne svjetlu koje opaža LDR.
Ponašanje otpora kao funkcije svjetlosti
Kao što je već spomenuto, otpor LDR-a se smanjuje kako prima više svjetla. Za dobivanje a precizno mjerenje količine svjetlosti, trebate znati vrijednosti otpora vašeg LDR-a u različitim uvjetima osvjetljenja.
U seriji GL55, na primjer, vrijednosti se kreću od 5 kΩ do 200 kΩ u prisutnosti svjetla i od 500 kΩ do 10 MΩ u mračnim uvjetima. Ove vrijednosti mogu varirati od jednog modela do drugog, stoga je uvijek preporučljivo konzultirati podatkovni list proizvođača senzora.
Zanimljiva je osobitost LDR-a da Njegova je osjetljivost najveća u zelenom dijelu spektra., približno na valnim duljinama od 540 nm. To znači da LDR-ovi bolje reagiraju na zeleno svjetlo od ostalih dijelova vidljivog spektra.
Praktične aplikacije
Moguće primjene LDR-ova spojenih na Arduino gotovo su beskrajne. Među najpraktičnijim su automatski sustavi rasvjete, gdje sklop može aktivirati ili deaktivirati svjetla ovisno o detektiranoj razini svjetla. Također se koriste za lagani prateći roboti i sustavi kućne automatizacije.
Možete, na primjer, stvoriti sustav u kojem se LED dioda pali kako bi se nadoknadio nedostatak svjetla. Evo jednostavnog primjera koda:
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);}
Ovaj mali program očitava LDR vrijednost i ako je razina svjetla niža od postavljenog praga, uključuje LED. Inače ga isključuje. Jednostavan, ali vrlo funkcionalan primjer u projektima automatizacije rasvjete.
Ograničenja i mjere opreza
Iako je korištenje LDR-a vrlo zgodno u mnogim projektima, važno je uzeti u obzir neka od njegovih ograničenja:
- Nisu baš precizni ako želite izmjeriti točan intenzitet svjetlosti u luksima.
- Njegovo ponašanje može varirati ovisno o temperaturi.
- Oni najbolje funkcioniraju za otkrivanje većih promjena svjetla, a ne brzih varijacija.