Sedikit
tentang LDR (Light Dependent Resistor), merupakan komponen resistor
yang nilai hambatannya bisa berubah karena faktor intensitas cahaya.
Jika intensitas cahaya yang mengenainya cukup terang, nilai hambatannya
sebesar 1 KΩ. Dan bila LDR diletakkan pada tempat yang gelap, nilai
hambatannya mencapai 10 MΩ. Karena nilai hambatan dipengaruhi intensitas
cahaya, karena itu LDR bisa disebut juga sensor cahaya.
Komponen yang diperlukan :
- Resistor 10 KΩ 1x
- Resistor 1 KΩ 1x
- Dioda led 5mm 1x
- LDR 1x
- Breadboard
- Kabel jumper
- Minimum sistem Board Arduino
Koneksi Rangkaian :
Led akan menyala jika LDR menerima cahaya yang cukup terang dan mati bila LDR ditutup dari cahaya (gelap).
Penulisan Program :
//Program.1
//Menggunakan sensor LDR pada Arduino
//Pin definition
const int analogInput = A0; //deklarasi pin input analog A0
const int analogOutput = A2; // deklarasi pin output analog A2
//Deklarasi Variabel
int analogValue = 0; //deklarasi variabel analogValue
int outputValue = 0; //deklarasi variabel outputValue
void setup ()
{
pinMode (analogInput, INPUT); //pin analogInput sebagai input
pinMode (analogOutput, OUTPUT); //pin analogOutput sebagai output
Serial.begin (9600); //inisialisasi komunikasi serial 9600 bps
}
void loop ()
{
analogValue = analogRead (analogInput); //membaca input analog (analogRead)
outputValue = analogValue;
Serial.print ("outputValue = "); //menulis nilai pada serial monitor
analogWrite (analogOutput, outputValue); //berikan sinyal analog ke pin output
delay (30);
}
//Program.2
//Menggunakan sensor LDR pada Arduino
//Analog Input dan Digital Output
//Pin definition
const int analogInput = A0;
int analogOutput = A2;
//Deklarasi Variabel
int analogValue = 0;
int outputValue = 0;
void setup ()
{
pinMode (analogInput, INPUT);
pinMode (analogOutput, OUTPUT);
Serial.begin (9600);
}
void loop ()
{
analogValue = analogRead (analogInput);
outputValue = map (analogValue, 0, 1023, 0, 255);
Serial.print ("outputValue = ");
Serial.println (outputValue, DEC);
if (outputValue < 160)
{
digitalWrite (analogOutput, LOW);
}
else
{
digitalWrite (analogOutput, HIGH);
}
delay (30);
}