Ako ste se ikada zapitali kako da efikasno izmerite nivo svetlosti u okruženju sa Arduinom, na pravom ste mestu. U ovom članku ćemo objasniti korak po korak kako to učiniti pomoću LDR fotootpornika, također poznatog kao fotootpornik. Ova mala tehnološka čuda su elektronske komponente sposobne da mijenjaju svoju otpornost u zavisnosti od količine svjetlosti koju primaju, što otvara beskrajne mogućnosti za elektronske i automatizacijske projekte.
Primene svetlosnog senzora sa Arduinom su brojne: od automatskih sistema osvetljenja do robota koji se orijentišu na osnovu svetlosti. Najbolje od svega, to je pristupačna komponenta i jednostavna za korištenje. Ovdje ćemo vam dati sve potrebne informacije kako biste mogli izgraditi vlastiti sistem mjerenja svjetlosti sa Arduinom i iskoristiti njegov puni potencijal.
Šta je LDR i kako funkcioniše?
Una LDR (otpornik ovisan o svjetlosti) To je otpor čija veličina varira u zavisnosti od količine svjetlosti koja pada na njega. U mračnim uslovima otpor je veoma visok, dostižući vrednosti do 1 MOhm. Naprotiv, kada LDR prima obilje svjetla, otpor se značajno smanjuje, dostižući vrijednosti između 50 do 100 Ohma pod intenzivnom svjetlošću.
Njegov rad se zasniva na principu provodljivosti poluvodičkih materijala. Nakon primanja svjetlosti, fotoni pokreću elektrone u materijalu, olakšavajući protok struje i stoga smanjujući otpor. Ovaj tip senzora je vrlo koristan za aplikacije gdje je potrebno relativno mjerenje svjetlosti u okolini.
LDR karakteristike
Nije pronađen nijedan proizvod.
Ova komponenta je vrlo popularna zbog niske cijene i jednostavnosti korištenja. Tipične vrijednosti otpora kreću se od 1 MOhm u potpunom mraku do 50-100 Ohm na jakom svjetlu. Međutim, vrijedno je napomenuti da oni nisu najprecizniji senzori ako želite precizno izmjeriti osvjetljenje (svjetlo u luksima), jer na njih mogu utjecati faktori kao što je temperatura.
Varijacija otpora je prilično spora, što traje između 20 i 100 milisekundi u zavisnosti od modela. To znači da nije prikladan za otkrivanje brzih promjena svjetla, kao što su one proizvedene pod svjetlima napajanim izmjeničnom strujom, ali nudi odličnu stabilnost u konstantnijim uvjetima osvjetljenja.
Dok LDR-ovi su pogodniji za mjerenje svjetlosnih trendova da pružaju tačne podatke, njihova niska cijena i lakoća integracije s Arduino pločama čine ih idealnim senzorom za DIY projekte.
Dijagram kruga i povezivanja
Da bi Arduino izmjerio varijaciju otpora LDR-a, potrebno je montirati senzor na ono što je poznato kao razdjelnik napona. Ovo je vrlo jednostavno kolo sastavljeno od LDR-a i fiksnog otpornika spojenog u seriju. LDR je postavljen između ulaznog napona (npr. 5V na ploči Arduino Uno) i pin analognog ulaza, a fiksni otpornik je spojen između pina i mase (GND).
Vrijednost fiksnog otpora je obično 10 kOhma, iako može varirati ovisno o osjetljivosti koju želite postići u svom mjerenju.
Primjeri sklopa i koda
Da biste napravili osnovni sistem sa Arduinom i LDR-om, prvo što morate da uradite je da povežete sledeć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.
Sa ovim podešavanjem možete početi čitati vrijednosti koje LDR pruža preko 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 percipira LDR.
Ponašanje otpora kao funkcija svjetlosti
Kao što je već spomenuto, otpor LDR-a se smanjuje kako prima više svjetla. Za dobijanje a precizno merenje količine svetlosti, morate 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 prisustvu svjetlosti i od 500 kΩ do 10 MΩ u mračnim uvjetima. Ove vrijednosti mogu varirati od modela do modela, pa je uvijek preporučljivo pogledati tehnički list proizvođača senzora.
Zanimljiva posebnost LDR-a je to Njegova osjetljivost je najveća u dijelu spektra zelenog svjetla., približno na talasnim dužinama od 540 nm. To znači da LDR bolje reaguju na zeleno svjetlo od ostalih dijelova vidljivog spektra.
Praktične primjene
Moguće primjene LDR-ova povezanih na Arduino su gotovo beskrajne. Među najpraktičnijim su sistemi automatske rasvjete, gdje sklop može aktivirati ili deaktivirati svjetla ovisno o detektovanim razinama svjetla. Koriste se i za svjetlosni roboti koji prate i sistemi kućne automatizacije.
Možete, na primjer, kreirati sistem u kojem, kako se nivo svjetla smanjuje, LED svijetli kako bi 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 čita LDR vrijednost i ako je nivo svjetla niži od postavljenog praga, uključuje LED. U suprotnom se isključuje. Jednostavan, ali vrlo funkcionalan primjer u projektima automatizacije rasvjete.
Ograničenja i mjere opreza
Iako je upotreba LDR-a vrlo zgodna u mnogim projektima, važno je uzeti u obzir neka od njegovih ograničenja:
- Oni nisu baš precizni ako želite da izmerite tačan intenzitet svetlosti u luksima.
- Njegovo ponašanje može varirati ovisno o temperaturi.
- Oni najbolje rade za otkrivanje većih promjena u svjetlu, a ne brzih varijacija.