Kako se koristi Arduino Fotootpornik (LDR) senzor
Napokon smo došli do našeg prvog ozbiljnijeg projekta!
U ovoj lekciji ćemo objasniti:
- Šta je to fotootpornik,
- Praktična primjena fotootpornika,
- Šema povezivanja sa Arduinom,
- Kod za očitaje vrijednosti fotootpornika,
- Specifikacija materijala,
Šta je to fotootpornik:
Fotootpornik ili LDR (engl. Light Dependent resistor) je otpornik čiji se otpor mijenja pod uticajem svjetlosti koja pada na njega. Zbog te osobine, nalazi primjenu kao elektronski senzor (osjetilo). Fotootpornik je načinjen od poluprovodnog materijala. Ako su fotoni svjetlosti koji padaju dovoljno visoke frekvencije (dovoljne energije), daće vezanim elektronima dovoljno energije da postanu slobodni elektroni u poluprovodniku. Sa time se smanjuje otpor fotootpornika pod uticajem svjetlosti.
Praktična primjena fotootpornika:
Fotootpornici postoje kao razni tipovi. Koriste se kao detektori svjetlosti u foto-aparatima, uličnoj rasvjeti, sigurnosnim noćnim alarmima itd.. U našem projektu primjena fotootpornika je ta da ćemo pomoću Arduino Uno kontrolera uz samo nekoliko linija koda programirati da pali ili gasi diodu u ovisnosti od intenziteta svjetlosti.
Kroz ovaj primjer u sljedećoj lekciji prvi put ćemo se susresti sa naredbom “IF“.
Šema povezivanja fotootpornika:
Crvena = 5v (+) -> 10kΩ otpornik
10kΩ otpornik -> jedan pin fotootpornika
Zelena = A0 -> u istipin Fotootpornika
Crna = GND (-) -> u drugi pin fotootpornika
Kod za očitanje vrijednosti fotootpornika:
Nakon što smo povezali sve komponente kao na šemi, povezat ćemo Arduino Uno sa računarom pomoću USB kabla. Kako bi dobili očitanje senzora, potrebno je da otvorimo Arduino IDE, upišemo kod ispod i kliknemo Upload:
Kod za ocitanje:
int senzorPin = A0; // varijabla za očitanje vrijednosti senzora
int vrijednostSenzora = 0; // varijabla za spremanje očitane vrijednosti
void setup() {
pinMode(senzorPin, INPUT); // A0 senzor pin na kontroleru
Serial.begin(9600); //serijski port za komunikaciju (serijal monitor)
}
void loop() {
vrijednostSenzora = analogRead(senzorPin); // analogno očitanje sa senzora(senzorPin) i premještanje vrijednosti u varijablu (vrijednostSenzora) za ispis na serijal monitor
Serial.println(vrijednostSenzora ); //ispis vrijednosti senzora na serial monitor
delay(2000); // vrijeme čekanja prije ponovnog očitanja
}
Nakon poruke da je kod uspješno Upload-ovan kliknite na Serijal Monitor (9600 baud) na kojem ćemo dobiti rezultate očitanje senzora.
Zbog toga što smo koristili delay(2000), očitanje ćemo dobivati za svakih 2 sekunde. Kao što smo u uvodnoj lekciji rekli, a obzirom da se radi o analognom očitanju raspon očitanja će biti od 0 do 1023.
Kako bi dobili što različitije rezultate očitanja, fotootpornik smo primakli izvoru svjetlosti, nakon čega je udaljavan. Kao što možemo vidjeti na slici, postepenim udaljavanjem senzora od izvora svjetloisti, očitanje je raslo.
Specifikacija materijala:
1x Breadboard
4x komunikacijski kablovi
1x Arduino Uno
1x Fotootpornik
1x Otpornik 10kΩ
U ovoj lekciji napravili smo naš prvi projekat! Uspješno smo dobili očitanje intenziteta svjetlosti.
Kako ova lekcija ne bi bila preduga i dosadna, kao što smo u uvodnom dijelu obećali, u sljedećoj lekciji “Lekcija “ naučiti ćemo kako se koristi nareda IF i šta je to mapiranje.