Pada latihan sebelumnya kita mengatur nyala terang redup lampu menggunakan potensiometer, dimana nilai hambatannya dapat berubah-rubah ketika kita memutar knobnya. Di latihan sekarang ini kita akan membuat lampu otomatis yang menggunakan LDR/Photoresistor.
LDR/Photoresistor merupakan sebuah variable resistor yang sensitif terhadap cahaya dimana hambatanya dapat berubah-ubah tergantung seberapa cerah cahaya yang mengenai sensor tersebut.
Kebutuhan Komponen :
- Arduino = 1 Pcs
- Breadboard = 1 Pcs
- LDR/Photoresistor = 1 Pcs
- Resistor 330 Ω = 1 Pcs
- Resistor 10KΩ = 1 Pcs
- Lampu LED = 1 Pcs
- Kabel Jumper secukupnya
Skema :
Rangkaian :
Source Code :
/*
Menggunakan photoresistor untuk mengetahui intensitas cahaya
disebuah ruangan, kemudian menyalakan LED ketika kondisi gelap.
*/
int ledPin = 7; //pin yang terhubung dengan LED
int photoPin = A0; //pin yang terhubung dengan photoresistor
int photoresistor = 0; //variabel ini akan menyimpan nilai yang didasarkan dari dari hambatan photoresistor
int threshold = 750; //jika photoresistor membaca dibawah nilai ini maka LED akan menyala
void setup() {
Serial.begin(115200); //memulai komunikasi serial
pinMode(ledPin, OUTPUT); //set pin 7 sebagai sebuah output yang dapat diset ke HIGH atau LOW
}
void loop() {
//read nilai photoresistor
photoresistor = analogRead(photoPin); //membaca nilai photoresistor antara 0 sampai 1023 bergantung dari nilai hambatan photoresistor
Serial.println(photoresistor); //menampilkan nilai photoresistor pada serial monitor
//jika nilai photoresistor value dibawah nilai threshold maka led menyala, dan begitu sebaliknya akan mati
if (photoresistor < threshold){
digitalWrite(ledPin, HIGH); //menyalakan LED
} else{
digitalWrite(ledPin, LOW); //mematikan LED
}
delay(100); //jeda untuk membuat penampilan data mudah dibaca
}
Kesimpulan
Dalam program terdapat variable treshold untuk menyimpan sebuah nilai sebagai set point. Menggunakan fungsi if/else untuk membandingkan nilai variable pembacaan dari input sensor dengan nilai treshold, apabila nilai variable tersebut di atas nilai treshold (terang) maka LED mati, sebaliknya jika nilai variable tersebut di bawah nilai treshold (gelap) maka LED nyala. Buka serial monitor dan nilai variable dari photoresistor akan tampil.