DC
Kelas Digital Creative
Robotika · IoT · Scratch · Canva · CapCut · AI
← kembali ke Home

Lampu Otomatis dengan Sensor Cahaya (LDR)

⏱ 35 Menit Arduino August 2026 🔧 Arduino Uno, Sensor LDR, LED, Resistor 220Ω, Resistor 10K

Project ini membuat lampu yang menyala otomatis saat kondisi sekitar gelap, dan mati sendiri saat terang — mirip lampu taman atau lampu jalan otomatis. Menggunakan sensor cahaya LDR untuk membaca kondisi lingkungan.

Yang akan kamu pelajari

  • Membaca sensor analog dengan analogRead()
  • Memahami rentang nilai sensor (0 sampai 1023)
  • Menentukan batas/threshold untuk pengambilan keputusan otomatis

Peta Pin / Wiring

Komponen Pin Arduino Fungsi
Sensor LDR (kaki 1) Pin A0 Membaca tingkat cahaya
Sensor LDR (kaki 2) 5V (lewat resistor pembagi tegangan 10K) Sumber tegangan sensor
Anoda LED (kaki panjang) Pin 8 Menyala saat kondisi gelap
Katoda LED (kaki pendek) GND (lewat resistor 220Ω) Jalur kembali arus

Langkah 1: Siapkan rangkaian

Sensor LDR perlu dirangkai sebagai pembagi tegangan: satu kaki LDR ke 5V, kaki lainnya ke pin A0 sekaligus ke GND lewat resistor 10K. Untuk LED, hubungkan kaki panjang (anoda) ke pin 8 melalui resistor 220Ω, lalu kaki pendek (katoda) ke GND.

Langkah 2: Buka Arduino IDE

Sambungkan Arduino ke laptop pakai kabel USB, pastikan board dan port sudah dipilih dengan benar di menu Tools.

Langkah 3: Upload kode

Salin kode di bawah ini ke Arduino IDE, klik tombol Upload, lalu buka Serial Monitor untuk melihat nilai cahaya yang terus diperbarui.

// Menentukan pin untuk sensor dan lampu
int pinSensor = A0;  // Sensor LDR dihubungkan ke Analog A0
int pinLampu = 8;    // LED dihubungkan ke Digital 8

// Menentukan batas nilai gelap/terang
// Semakin kecil angka, semakin gelap
int batasGelap = 500; 

void setup() {
  // Memulai komunikasi ke layar Serial Monitor
  Serial.begin(9600);
  
  // Mengatur pin lampu sebagai OUTPUT
  // Pin Analog (A0) otomatis menjadi INPUT, jadi tidak wajib ditulis
  pinMode(pinLampu, OUTPUT);
}

void loop() {
  // 1. Membaca nilai cahaya dari sensor (0 sampai 1023)
  int nilaiCahaya = analogRead(pinSensor);
  
  // 2. Menampilkan nilai tersebut di Serial Monitor
  Serial.print("Tingkat Cahaya: ");
  Serial.println(nilaiCahaya);

  // 3. Logika Lampu Otomatis
  if (nilaiCahaya < batasGelap) {
    // JIKA nilai cahaya di bawah 500 (Kondisi Gelap)
    digitalWrite(pinLampu, HIGH); // Nyalakan Lampu
  } else {
    // JIKA nilai cahaya di atas 500 (Kondisi Terang)
    digitalWrite(pinLampu, LOW);  // Matikan Lampu
  }
  
  // Jeda sebentar sebelum membaca ulang
  delay(200);
}

Cara Kerja Kode

Sensor LDR punya nilai resistansi yang berubah tergantung cahaya yang mengenainya — semakin gelap, semakin besar resistansinya. Lewat rangkaian pembagi tegangan, perubahan ini terbaca Arduino sebagai angka 0-1023 lewat analogRead(). Program membandingkan angka itu dengan batasGelap (500): di bawah itu dianggap gelap, di atas itu dianggap terang.

Angka 500 di variabel batasGelap bukan angka mutlak — nilai ini sangat tergantung kondisi pencahayaan ruangan dan jenis LDR yang dipakai. Coba lihat angka di Serial Monitor saat ruangan terang dan gelap, lalu sesuaikan batasGelap ke nilai tengah di antara keduanya.

Latihan

  1. Sesuaikan nilai batasGelap berdasarkan kondisi ruanganmu sendiri (lihat angka di Serial Monitor sebagai acuan)
  2. Tambahkan LED kedua yang menyala saat kondisi terang (kebalikan dari LED pertama)
  3. Buat 3 tingkat kecerahan: gelap (LED menyala penuh), redup (LED berkedip lambat), terang (LED mati)

Coba Simulasi di Wokwi

🔒 Simulasi ini dikunci. Minta passcode ke gurumu untuk membuka.