LDR (Light Dependent Resistor) adalah sensor cahaya sederhana yang mengubah nilai resistansi berdasarkan intensitas cahaya yang diterimanya. Semakin terang cahaya yang mengenai LDR, semakin kecil resistansinya, dan sebaliknya. Pada proyek ini, kita akan membuat rangkaian untuk mengukur intensitas cahaya menggunakan LDR dan Arduino, serta menampilkan hasilnya di Serial Monitor.
Alat dan Bahan yang Dibutuhkan
- 1 x Arduino Uno (atau model Arduino lainnya)
- 1 x LDR (Light Dependent Resistor)
- 1 x Resistor 10kΩ
- Breadboard
- Kabel jumper
Cara Kerja LDR
LDR adalah komponen elektronik yang resistansinya bergantung pada cahaya yang diterimanya. Jika cahaya yang mengenai LDR lebih terang, resistansinya turun, sedangkan jika cahaya redup, resistansinya naik. Dalam rangkaian ini, LDR akan membentuk pembagi tegangan dengan resistor 10kΩ, dan kita akan membaca tegangan di titik tengah pembagi tegangan ini menggunakan pin analog Arduino.
Diagram Rangkaian
- Hubungkan salah satu kaki LDR ke 5V pada Arduino.
- Hubungkan kaki lainnya dari LDR ke pin analog A0.
- Hubungkan resistor 10kΩ antara pin A0 dan GND.
Diagram Koneksi:
- 5V (Arduino) → Salah satu kaki LDR
- Pin A0 (Arduino) → Kaki lainnya dari LDR dan Salah satu kaki Resistor 10kΩ
- GND (Arduino) → Kaki lainnya dari Resistor 10kΩ
Kode Program untuk Membaca Nilai Cahaya dari LDR
Setelah merangkai semua komponen, kita akan menggunakan Arduino untuk membaca tegangan dari titik tengah pembagi tegangan dan mengonversinya menjadi nilai cahaya relatif yang bisa ditampilkan pada Serial Monitor.
// Deklarasi pin analog untuk LDR
int ldrPin = A0; // Pin analog A0 untuk membaca nilai dari LDR
void setup() {
// Inisialisasi komunikasi serial
Serial.begin(9600);
}
void loop() {
// Membaca nilai analog dari LDR
int ldrValue = analogRead(ldrPin);
// Menampilkan nilai LDR di Serial Monitor
Serial.print("Nilai Cahaya: ");
Serial.println(ldrValue);
// Menunggu 500 milidetik sebelum pembacaan berikutnya
delay(500);
}
Penjelasan Kode:
- int ldrPin = A0;
Mendeklarasikan pin analog A0 sebagai input dari pembagi tegangan yang dibentuk oleh LDR dan resistor. - Serial.begin(9600);
Menginisialisasi komunikasi serial dengan baud rate 9600 untuk menampilkan data di Serial Monitor. - analogRead(ldrPin);
Membaca nilai analog dari pin A0. Nilai yang terbaca adalah antara 0 hingga 1023, di mana 0 berarti tidak ada tegangan dan 1023 berarti tegangan maksimum (5V). - Serial.print() dan Serial.println()
Digunakan untuk menampilkan nilai hasil pembacaan dari LDR di Serial Monitor. - delay(500);
Memberikan jeda 500 milidetik sebelum membaca nilai berikutnya, agar tampilan di Serial Monitor tidak terlalu cepat berubah.
Mengunggah Program ke Arduino
- Sambungkan Arduino ke komputer menggunakan kabel USB.
- Buka Arduino IDE dan salin kode di atas.
- Pilih port dan board yang sesuai (Tools → Board → Arduino Uno, Tools → Port → pilih port yang sesuai).
- Klik Upload untuk mengunggah program ke Arduino.
- Setelah program berhasil diunggah, buka Serial Monitor (Tools → Serial Monitor) untuk melihat pembacaan nilai cahaya secara real-time.
Pengujian Rangkaian
- Saat intensitas cahaya yang mengenai LDR meningkat, nilai pembacaan di Serial Monitor akan semakin besar. Sebaliknya, saat intensitas cahaya berkurang (misalnya dengan menutupi LDR), nilai yang terbaca akan lebih kecil.
- Nilai yang terbaca di Serial Monitor berkisar antara 0 hingga 1023, yang mewakili tegangan antara 0V hingga 5V.
Memodifikasi Program
Setelah berhasil menjalankan program dasar, kamu bisa melakukan beberapa modifikasi atau eksperimen seperti:
- Mengonversi Nilai Analog ke Tegangan:
Kamu dapat menambahkan konversi nilai analog ke tegangan untuk mendapatkan hasil yang lebih akurat dalam bentuk volt.
float tegangan = (ldrValue * 5.0) / 1023.0;
Serial.print("Tegangan: ");
Serial.print(tegangan);
Serial.println(" V");
- Menampilkan Nilai Cahaya dalam Persentase:
Jika kamu ingin menampilkan nilai cahaya dalam bentuk persentase (0% hingga 100%), berikut adalah modifikasinya:
float persentaseCahaya = (ldrValue / 1023.0) * 100;
Serial.print("Cahaya: ");
Serial.print(persentaseCahaya);
Serial.println(" %");
- Mengontrol Aktuator Berdasarkan Intensitas Cahaya:
Kamu bisa menambahkan logika untuk mengontrol perangkat lain (misalnya lampu atau motor) berdasarkan intensitas cahaya. Contohnya, jika cahaya di bawah nilai tertentu, menyalakan lampu.
int threshold = 500; // Batas untuk menyalakan lampu
if (ldrValue < threshold) {
// Nyalakan lampu
digitalWrite(lampPin, HIGH);
} else {
// Matikan lampu
digitalWrite(lampPin, LOW);
}
Kesimpulan
Mengukur intensitas cahaya menggunakan LDR dan Arduino adalah proyek sederhana yang sangat bermanfaat untuk mempelajari dasar-dasar penggunaan sensor dan pembacaan input analog. Dengan rangkaian sederhana ini, kamu dapat memantau tingkat cahaya di lingkungan sekitarmu dan menggunakan data ini untuk mengontrol perangkat lain atau melakukan pengukuran otomatis. Selamat bereksperimen dengan sensor cahaya dan Arduino!