Tuesday, 1 July 2025
Arduino Belajar IOT

Membuat Sensor Cahaya dengan LDR (Light Dependent Resistor) dan Arduino

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

  1. Hubungkan salah satu kaki LDR ke 5V pada Arduino.
  2. Hubungkan kaki lainnya dari LDR ke pin analog A0.
  3. 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

  1. Sambungkan Arduino ke komputer menggunakan kabel USB.
  2. Buka Arduino IDE dan salin kode di atas.
  3. Pilih port dan board yang sesuai (Tools → Board → Arduino Uno, Tools → Port → pilih port yang sesuai).
  4. Klik Upload untuk mengunggah program ke Arduino.
  5. 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:

  1. 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");
  1. 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(" %");
  1. 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!

Fredy Siswanto

Fredy Siswanto

About Author

Leave a Reply

Your email address will not be published. Required fields are marked *