Pertemuan 5: Pembacaan Sensor LDR (Sensor Cahaya Analog)

Mata Kuliah: MKK.10.01.005 — Kecerdasan Buatan & Internet of Things (TW1). Durasi: 120 menit (Tatap Muka). Penyusun: Irfan Yusin Syahrullah.

Tujuan Pembelajaran

  • Memahami prinsip kerja LDR dan rangkaian pembagi tegangan
  • Menggunakan ADC (analog-to-digital converter) pada ESP32
  • Memetakan nilai analog ke tingkat kecerahan dengan fungsi map()
  • Mengontrol LED berdasarkan intensitas cahaya (otomatis)

Capaian Pembelajaran

Mahasiswa mampu membaca sensor analog dari LDR, memetakan nilainya, dan membuat sistem penyesuaian cahaya otomatis yang sederhana.

Konsep Materi

LDR adalah resistor yang nilai hambatannya mengecil saat terkena cahaya terang dan membesar dalam keadaan gelap. Sendirian, LDR tidak bisa dihubungkan langsung ke pin ADC, karena kita perlu mengubah hambatan menjadi tegangan melalui rangkaian pembagi tegangan.

Pembagi tegangan dibentuk dengan menyusun LDR seri dengan resistor tetap (misalnya 10k ohm). Titik sambungan keduanya menghasilkan tegangan yang berubah seiring hambatan LDR, dan tegangan inilah yang dibaca oleh pin analog ESP32.

ESP32 memiliki ADC dengan resolusi 12 bit, sehingga nilai baca berkisar 0 sampai 4095. Pada Arduino Uno nilainya 0 sampai 1023 untuk 10 bit. Perlu dicatat bahwa ADC ESP32 agak non-linear, tetapi cukup baik untuk pembelajaran.

Fungsi map(x, fromLow, fromHigh, toLow, toHigh) digunakan untuk memetakan rentang nilai ADC ke rentang lain, misalnya 0-4095 menjadi 0-255 untuk kebutuhan PWM. Pemetaan ini memudahkan logika pengambilan keputusan.

Aplikasi klasik LDR adalah lampu jalan otomatis dan sensor ambien untuk menyesuaikan kecerahan layar. Pada praktik ini kita membuat lampu yang otomatis menyala saat ruang gelap.

Langkah Praktik

  1. Rangkai LDR seri dengan resistor 10k ohm membentuk pembagi tegangan; sambungkan titik tengah ke GPIO 34 (pin analog).
  2. Hubungkan ujung LDR bebas ke 3V3 dan ujung resistor bebas ke GND.
  3. Tulis program untuk membaca nilai ADC dengan analogRead dan kirim ke Serial Monitor.
  4. Catat nilai pembacaan saat ruang terang dan saat LDR ditutup tangan.
  5. Gunakan map() dan ambang batas untuk menyalakan LED otomatis saat nilai menunjukkan kegelapan.

Kode Contoh

#define LDR_PIN 34
#define LED_PIN 4

void setup() {
  Serial.begin(115200);
  pinMode(LED_PIN, OUTPUT);
}

void loop() {
  int nilai = analogRead(LDR_PIN);
  Serial.print("ADC LDR: ");
  Serial.println(nilai);

  if (nilai  nilai kecil
    digitalWrite(LED_PIN, LOW);   // matikan lampu
  } else {
    digitalWrite(LED_PIN, HIGH);  // gelap -> hidupkan lampu
  }
  delay(200);
}

Latihan / Proyek

  • Ganti lampu otomatis menjadi lampu yang menyala saat terang dan mati saat gelap (logika terbalik).
  • Tampilkan nilai ADC LDR pada LCD 16×2 yang telah dipelajari di pertemuan sebelumnya.
  • Eksperimen dengan nilai ambang yang berbeda dan jelaskan cara memilihnya.

Rekap & Tindak Lanjut

Mahasiswa memahami pembacaan sensor analog, rangkaian pembagi tegangan, dan ADC. Kemampuan ini menjadi dasar penggunaan berbagai sensor analog lain seperti potensiometer dan sensor kelembaban tanah.

No Comment! Be the first one.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *