Korištenje LDR-a s Arduinom i kontrolnim prekidačem za osvjetljavanje Arduina
U ovom tutorijalu istražićemo kako koristiti otpornik zavistan od svetlosti (LDR) sa Arduinom za kontrolu svetla na osnovu nivoa ambijentalne svetlosti. LDR menja svoju otpornost u zavisnosti od intenziteta svetlosti; tako da se može koristiti za detekciju da li je u okruženju svetlo ili mrak. Kada je svetlost ispod određenog praga, uključićemo izlaznu pin da aktiviramo svetlo.

Primarni sastojci koje ćete trebati uključuju Arduino ploču, otpornik od 10k ohma, LDR i nekoliko skakača. LDR će biti povezan u konfiguraciji razdjelnika napona s otpornikom kako bi se očitala analogna napona, koja će se mijenjati na osnovu intenziteta svjetlosti. Ovu naponsku vrijednost ćemo koristiti za kontrolu LED-a ili drugih izlaznih uređaja.
Za vizuelnu demonstraciju postavke i koda, obavezno pogledajte prateći video (u videu na 0:10).
Objašnjena oprema
Svjetlosno zavistan otpornik (LDR) je vrsta otpornika čija otpornost opada s povećanjem intenziteta incidentne svjetlosti. Obično se koristi u aplikacijama gdje je potrebno pratiti nivoe svjetlosti. U našoj postavci, LDR će se koristiti za detekciju ambijentalnih nivoa svjetlosti i slati odgovarajući analogni napon Arduino.
Arduino će očitati ovaj napon putem jedne od svojih analognh pinova i odlučiti hoće li uključiti ili isključiti povezanu svjetlost na osnovu definiranog praga. 10k ohmski otpornik se koristi u konfiguraciji razdjelnika napona s LDR-om kako bi se stvorio stabilan izlazni napon koji Arduino može očitati.
Tehnički podaci
| Proizvođač | Generički |
|---|---|
| Broj dijela | LDR |
| Otpornost (svjetlost) | 100 - 500 Ω |
| Otpornost (tamna) | 10 kΩ - 1 MΩ |
| Radna napetost | 3.3 V - 5 V |
| Vrijeme odgovora | 20 ms (tip.) |
| Pakovanje | Probušni otvor |
- Osigurajte odgovarajuće nivoe napona; ne prelazite 5V.
- Koristite otpornik s povlačenjem za stabilizaciju očitavanja.
- Odaberite odgovarajuću vrijednost otpornika (10kΩ) za razdjelnik napona.
- Razmotrite korištenje kondenzatora za filtriranje šuma ako je potrebno.
- Držite LDR dalje od direktnih izvora svjetlosti prilikom testiranja.
Uputstva za povezivanje

Da biste postavili krug, počnite povezivanjem jedne terminale LDR-a na 3.3V napajanje na Arduinu. Drugi terminal LDR-a će se povezati na jedan kraj otpornika od 10k ohma. Drugi kraj otpornika treba biti povezan na masu.
Zatim, uspostavite vezu između spoja LDR-a i otpornika na analogni ulazni pin, kao što jeA0Ova veza će omogućiti Arduinu da očita napon. Pobrinite se da povežete masu Arduina sa zajedničkom masom vašeg kola kako biste osigurali pravilno funkcionisanje.
Primjeri koda i vodič
Sljedeći kod inicijalizira serijsku komunikaciju i čita analognu vrijednost sa LDR-a. Vrijednost se zatim pretvara u napon i ispisuje na serijskom monitoru.
int LDRvalue = analogRead(A0); // Read the analog value from LDR
float voltage = LDRvalue * (5.0 / 1023.0); // Convert to voltage
Serial.print("Voltage ="); // Print label
Serial.print(voltage); // Print actual voltage
U ovom kodu, varijablaLDRvaluepohranjuje sirovo analogno očitanje sa LDR-a. Napon se izračunava na osnovu maksimalne analogne vrijednosti (1023) i referentnog napona (5V).
Zatim provjeravamo je li ovaj napon ispod praga (3V u ovom slučaju) kako bismo kontrolisali izlaznu pin.
if(voltage < 3 ){
digitalWrite(10, HIGH); // Turn on the light
}else{
digitalWrite(10, LOW); // Turn off the light
}Ovde, ako je mereni napon ispod 3 volta, postavljamo izlaznu pin (10) na HIGH, uključujući svetlo; u suprotnom, postavlja se na LOW, isključujući ga. Kontinuirano proveravanje stanja svetla omogućava kontrolu u realnom vremenu na osnovu nivoa ambijentalne svetlosti.
Demonstracija / Šta očekivati
Nakon završetka povezivanja i učitavanja vašeg koda, trebali biste vidjeti kako se očitavanja napona na serijskom monitoru mijenjaju dok varirate intenzitet svjetlosti na LDR-u. Ako pokrijete LDR, napon bi trebao porasti, a kada je izložen svjetlosti, trebao bi opasti. Ovo ponašanje će direktno utjecati na izlaznu pin, koja kontrolira svjetlo.
Budite oprezni s uobičajenim zamkama, kao što su lebdeći ulazi ili pogrešni nivoi napona, koji mogu dovesti do pogrešnih očitavanja (u videu u 12:30).
Video vremenski oznaci
- 00:00Uvod u LDR
- 01:30Postavka hardvera
- 03:45Objašnjenje koda
- 06:00Pokretanje koda
- 09:15Savjeti za rješavanje problema
/*
* Originalni izvor: https://www.arduino.cc/en/Tutorial/ReadAnalogVoltage
*
* Ovaj kod se koristi sa video tutorijalom za RoboJax.com
* Objavljeno 31. augusta 2017. iz Ajaxa, ON, Kanada.
* Napisao/uredio A.B.S
*/
/void setup()
{
Serial.begin(9600); // Serijski namještanje
pinMode(10, OUTPUT);
}
void loop(){
int LDRvalue = analogRead(A0);
// Pretvorite analogno očitanje (koje ide od 0 - 1023) u napon (0 - 5V):
float voltage = LDRvalue * (5.0 / 1023.0);
// Odštampajte vrijednost koju ste pročitali:
Serial.print("Voltage ="); // ispisuje tekst "Voltage ="
Serial.print(voltage); // ispisuje stvarni napon
// provjerite da li je napon manji od 3, a zatim postavite pin 10 na high ili ON
if(voltage < 3 ){
digitalWrite(10, HIGH);
}else{
digitalWrite(10, LOW); // ili ga držite isključenim kada je napon veći od 3
}
Serial.println();
delay(300);
}
Resources & references
No resources yet.
Files📁
Other files
-
LDR circuit diagrm 1
LDR_circuit1.PDF0.04 MB -
LDR circuit diagrm 2
LDR_circuit2.PDF0.04 MB