Menggabungkan LDR dan LED untuk Sistem Lampu Otomatis

Lampu otomatis merupakan salah satu contoh sederhana penerapan sensor pada sistem elektronik. Dengan memanfaatkan LDR (Light Dependent Resistor) dan LED, kita dapat membuat rangkaian yang mampu menyalakan lampu ketika kondisi lingkungan mulai gelap dan mematikannya ketika kondisi kembali terang. Proyek ini cocok untuk pemula yang sedang belajar Raspberry Pi Pico, sensor cahaya, serta pemrograman menggunakan MicroPython. Pada artikel ini, kita akan membahas cara kerja LDR sebagai sensor cahaya, cara menghubungkannya dengan Raspberry Pi Pico, hingga membuat program lampu otomatis menggunakan LDR dan LED.

Apa Itu LDR?

LDR (Light Dependent Resistor) adalah komponen elektronik yang nilai resistansinya berubah berdasarkan intensitas cahaya yang diterimanya. LDR termasuk jenis resistor yang sensitif terhadap cahaya. Ketika mendapatkan banyak cahaya, nilai resistansinya akan berubah. Sebaliknya, ketika berada di tempat gelap, nilai resistansinya juga akan berubah. Sifat tersebut membuat LDR banyak digunakan sebagai sensor cahaya.

Cara Kerja LDR

Secara sederhana, karakteristik LDR dapat dijelaskan sebagai berikut:

- Cahaya terang → resistansi LDR rendah

- Cahaya redup → resistansi LDR meningkat

Perubahan resistansi tersebut dapat dimanfaatkan untuk menghasilkan perubahan tegangan. Raspberry Pi Pico kemudian membaca perubahan tegangan tersebut melalui pin ADC (Analog-to-Digital Converter). Dengan begitu, Raspberry Pi Pico dapat mengetahui apakah lingkungan sedang terang atau gelap.

Apa Itu LED?

LED (Light Emitting Diode) adalah komponen semikonduktor yang menghasilkan cahaya ketika dialiri arus listrik. Dalam proyek ini, LED digunakan sebagai indikator atau simulasi lampu otomatis. Ketika nilai sensor menunjukkan kondisi gelap, Raspberry Pi Pico akan memberikan sinyal HIGH pada pin LED sehingga LED menyala. Sebaliknya, ketika kondisi terang, Raspberry Pi Pico memberikan sinyal LOW sehingga LED mati.

Prinsip Sistem Lampu Otomatis Menggunakan LDR

Sistem ini menggunakan tiga bagian utama:

1. LDR sebagai sensor cahaya.

2. Raspberry Pi Pico sebagai pengendali.

3. LED sebagai output atau lampu.

Alur kerjanya cukup sederhana.

LDR → Raspberry Pi Pico → LED

LDR membaca intensitas cahaya di lingkungan. Nilai tersebut dibaca Raspberry Pi Pico melalui ADC. Setelah itu, program menentukan apakah LED harus dinyalakan atau dimatikan.

Logika Sistem

Contohnya:

 

Jika kondisi gelap

    LED menyala


Jika kondisi terang

    LED mati


Namun, Raspberry Pi Pico tidak secara langsung membaca "terang" atau "gelap". Pico membaca nilai ADC dari tegangan yang dihasilkan rangkaian LDR. Oleh karena itu, kita membutuhkan nilai ambang (threshold).

Misalnya:

 

Nilai ADC < 50000 → terang

Nilai ADC > 50000 → gelap


Nilai threshold tersebut dapat disesuaikan berdasarkan kondisi rangkaian dan lingkungan.

Komponen yang Dibutuhkan

Untuk membuat sistem lampu otomatis dengan LDR dan LED menggunakan Raspberry Pi Pico, siapkan komponen berikut:

- Raspberry Pi Pico atau Raspberry Pi Pico W

- LDR

- Resistor 10 kΩ

- LED

- Resistor 330 Ω

- Breadboard

- Kabel jumper

- Kabel USB

Resistor 10 kΩ digunakan bersama LDR untuk membentuk voltage divider atau pembagi tegangan.

Rangkaian LDR dengan Raspberry Pi Pico

LDR menghasilkan perubahan resistansi, sedangkan Raspberry Pi Pico membutuhkan tegangan yang dapat dibaca oleh ADC. Oleh karena itu, LDR biasanya dipasang bersama sebuah resistor tetap untuk membentuk rangkaian pembagi tegangan.

Rangkaian Voltage Divider

Pada rangkaian ini, LDR dan resistor 10kΩ disusun sebagai voltage divider atau pembagi tegangan. LDR dihubungkan ke sumber tegangan 3,3V, sedangkan resistor 10kΩ dihubungkan ke GND. Titik pertemuan antara LDR dan resistor kemudian dihubungkan ke GP26/ADC0 pada Raspberry Pi Pico.

 

Pin GP26 dapat digunakan sebagai ADC0 untuk membaca tegangan analog. Ketika intensitas cahaya yang mengenai LDR berubah, nilai resistansi LDR juga berubah sehingga tegangan pada titik tengah rangkaian ikut berubah. Tegangan tersebut kemudian dibaca oleh ADC Raspberry Pi Pico untuk mengetahui perubahan intensitas cahaya.

Rangkaian LED

LED pada proyek ini digunakan sebagai indikator untuk menunjukkan kondisi pencahayaan yang terdeteksi oleh LDR. LED dapat dihubungkan ke salah satu pin GPIO Raspberry Pi Pico, misalnya GP15.

 

Hubungkan GP15 ke salah satu kaki resistor 330Ω, kemudian sambungkan ujung resistor lainnya ke kaki anoda LED. Sementara itu, kaki katoda LED dihubungkan ke GND. Resistor 330Ω berfungsi untuk membatasi arus yang mengalir melalui LED, sehingga LED dan pin GPIO Raspberry Pi Pico tetap terlindungi.

 

Saat memasang LED, perhatikan polaritasnya. Kaki anoda umumnya merupakan kaki yang lebih panjang dan dihubungkan ke arah GPIO melalui resistor, sedangkan kaki katoda biasanya lebih pendek dan dihubungkan ke GND.

Diagram Sederhana Rangkaian

Pada bagian sensor, LDR dan resistor 10kΩ membentuk voltage divider. LDR dihubungkan ke 3,3V, sedangkan resistor 10kΩ dihubungkan ke GND. Titik pertemuan keduanya dihubungkan ke GP26/ADC0 Raspberry Pi Pico. Pin tersebut digunakan untuk membaca perubahan tegangan yang terjadi akibat perubahan resistansi LDR ketika intensitas cahaya berubah. Sedangkan LED dikendalikan melalui GP15. Raspberry Pi Pico akan menentukan apakah LED perlu dinyalakan atau dimatikan berdasarkan nilai cahaya yang dibaca melalui GP26.

 

Dengan konfigurasi tersebut, GP26 berfungsi sebagai input analog untuk membaca LDR, sedangkan GP15 berfungsi sebagai output digital untuk mengontrol LED. Kombinasi keduanya memungkinkan Raspberry Pi Pico digunakan untuk membuat sistem lampu otomatis berbasis sensor cahaya.

 


Membaca Nilai LDR dengan Raspberry Pi Pico

Sebelum membuat lampu otomatis, kita perlu mengetahui nilai yang dibaca oleh sensor LDR. Raspberry Pi Pico memiliki ADC dengan resolusi 12-bit secara internal. Pada MicroPython, pembacaan ADC biasanya dikonversi menjadi nilai antara 0 hingga 65535 menggunakan fungsi read_u16(). Contoh program untuk membaca nilai LDR:

 

from machine import ADC

from time import sleep


ldr = ADC(26)


while True:

    nilai_ldr = ldr.read_u16()


    print("Nilai LDR:", nilai_ldr)


    sleep(1)


Program tersebut akan membaca nilai ADC dari GP26 setiap satu detik. Hasilnya dapat dilihat melalui Shell/Serial Monitor pada Thonny IDE. Contoh hasil:

 

Nilai LDR: 14532

Nilai LDR: 16245

Nilai LDR: 18421

Nilai LDR: 32567

Nilai LDR: 48123


Nilai tersebut dapat berubah ketika LDR mendapatkan intensitas cahaya yang berbeda.

Menentukan Nilai Threshold LDR

Bagian penting dalam membuat lampu otomatis menggunakan LDR adalah menentukan nilai threshold. Threshold merupakan nilai batas yang digunakan program untuk menentukan kondisi terang atau gelap. Misalnya setelah melakukan pengujian diperoleh:

 

Kondisi terang = sekitar 40.000–60.000

Kondisi gelap  = sekitar 10.000–20.000


Kita dapat memilih nilai tengah, misalnya:

 

Threshold = 50.000


Kemudian program dapat menggunakan logika:

 

Jika nilai LDR > 50000

    LED OFF


Jika nilai LDR <= 50000

    LED ON


Nilai threshold tidak harus selalu 50.000. Setiap rangkaian dapat menghasilkan nilai ADC yang berbeda sehingga sebaiknya lakukan pengujian terlebih dahulu.

Program Lampu Otomatis Menggunakan LDR dan LED

Setelah rangkaian selesai, kita dapat menggabungkan pembacaan LDR dengan kontrol LED. Berikut contoh program lengkap menggunakan MicroPython:

 

from machine import ADC, Pin

from time import sleep


# LDR terhubung ke GP26 / ADC0

ldr = ADC(26)


# LED terhubung ke GP15

led = Pin(15, Pin.OUT)


# Nilai threshold

threshold = 50000


while True:

    nilai_ldr = ldr.read_u16()


    print("Nilai LDR:", nilai_ldr)


    if nilai_ldr > threshold:

        led.value(0)

        print("Kondisi terang - LED OFF")

    else:

        led.value(1)

        print("Kondisi gelap - LED ON")


    sleep(1)


Penjelasan Program

Bagian berikut digunakan untuk mengimpor library yang diperlukan:

 

from machine import ADC, Pin

from time import sleep


ADC digunakan untuk membaca tegangan analog dari LDR, sedangkan Pin digunakan untuk mengontrol GPIO. Kemudian kita menentukan pin LDR:

 

ldr = ADC(26)


Artinya LDR terhubung ke GP26, yang merupakan salah satu pin ADC Raspberry Pi Pico. Untuk LED:

 

led = Pin(15, Pin.OUT)


GPIO GP15 dikonfigurasi sebagai output. Selanjutnya kita menentukan threshold:

 

threshold = 50000


Nilai ini menjadi batas antara kondisi terang dan gelap. Bagian utama program berada pada kondisi if:

 

if nilai_ldr > threshold:

    led.value(1)

else:

    led.value(0)


Jika nilai LDR lebih besar dari threshold, LED dimatikan. Jika nilainya lebih kecil atau sama dengan threshold, LED dinyalakan.

Cara Menguji Sistem Lampu Otomatis

Setelah program berhasil dijalankan, kita dapat melakukan pengujian sederhana.

1. Pengujian Pertama: Kondisi Terang

Arahkan lampu atau sumber cahaya ke LDR. Amati nilai yang muncul pada Shell Thonny. Jika nilai berada di atas threshold, LED seharusnya dalam kondisi mati.

 


2. Pengujian Kedua: Kondisi Gelap

Tutup LDR menggunakan tangan atau letakkan rangkaian di tempat yang lebih gelap. Nilai ADC akan berubah. Jika nilai dibawah threshold yang telah ditentukan, Raspberry Pi Pico akan menyalakan LED.

 


Jika hasilnya terbalik, jangan langsung menganggap rangkaian rusak. Hal tersebut dapat terjadi karena posisi LDR dan resistor pada voltage divider menentukan arah perubahan tegangan. Solusinya adalah menyesuaikan kondisi pada program. Contohnya:

 

if nilai_ldr < threshold:

    led.value(1)

else:

    led.value(0)




Mengatasi LED yang Sering Berkedip

Salah satu masalah yang mungkin muncul adalah LED berkedip ketika intensitas cahaya berada di sekitar nilai threshold. Misalnya threshold ditentukan pada 30.000. Ketika nilai sensor berada di sekitar angka tersebut, pembacaan bisa berubah seperti:

 

29980

30015

29990

30020

29975


Akibatnya LED terus berganti antara ON dan OFF.

Menggunakan Dua Threshold

Salah satu solusi yang dapat digunakan adalah hysteresis. Contohnya:

 

if nilai_ldr > 35000:

    led.value(1)


elif nilai_ldr < 25000:

    led.value(0)


Dengan cara ini, LED tidak langsung berubah hanya karena nilai sensor bergerak sedikit di sekitar satu threshold.

Contoh Program dengan Hysteresis

Berikut contoh program yang lebih stabil:

 

from machine import ADC, Pin

from time import sleep


ldr = ADC(26)

led = Pin(15, Pin.OUT)


BATAS_GELAP = 35000

BATAS_TERANG = 25000


while True:

    nilai_ldr = ldr.read_u16()


    print("Nilai LDR:", nilai_ldr)


    if nilai_ldr > BATAS_GELAP:

        led.value(1)

        print("Gelap - Lampu ON")


    elif nilai_ldr < BATAS_TERANG:

        led.value(0)

        print("Terang - Lampu OFF")


    sleep(0.5)


Program ini menggunakan dua batas:

- 35.000 untuk menentukan kondisi gelap.

- 25.000 untuk menentukan kondisi terang.

Area antara 25.000 dan 35.000 menjadi zona yang tidak langsung mengubah kondisi LED.

Pengembangan Sistem Lampu Otomatis

Setelah berhasil membuat LDR dan LED sebagai lampu otomatis, proyek ini masih dapat dikembangkan menjadi sistem yang lebih kompleks.

1. Menggunakan Relay

LED dapat diganti dengan relay module untuk mengontrol beban yang lebih besar. Dengan relay, konsep yang sama dapat digunakan untuk mengendalikan lampu DC atau perangkat elektronik lain yang sesuai dengan spesifikasi relay. Namun, untuk mengontrol listrik AC tegangan tinggi, diperlukan perhatian khusus terhadap keselamatan listrik. Untuk tahap belajar, sebaiknya gunakan LED atau beban DC bertegangan rendah terlebih dahulu.

2. Menggunakan PWM

LED juga dapat dikontrol menggunakan PWM (Pulse Width Modulation). Dengan PWM, lampu tidak hanya memiliki kondisi ON dan OFF. Kecerahannya dapat diatur berdasarkan nilai sensor LDR. Contohnya:

Sangat terang → LED redup

Agak terang  → LED sedang

Gelap        → LED terang

Pendekatan tersebut dapat menghasilkan sistem lampu otomatis dengan pengaturan kecerahan.

3. Menggunakan Raspberry Pi Pico W

Jika menggunakan Raspberry Pi Pico W, sistem ini juga dapat dikembangkan menjadi perangkat IoT. Nilai sensor LDR dapat dikirim melalui Wi-Fi ke server atau dashboard sehingga kondisi cahaya dapat dipantau secara jarak jauh.

Kelebihan Sistem LDR dan LED

Penggunaan LDR dan LED sebagai proyek lampu otomatis berbasis Raspberry Pi Pico memiliki beberapa kelebihan:

- Rangkaian sederhana.

- Komponen mudah ditemukan.

- Cocok untuk pemula.

- Tidak membutuhkan sensor cahaya yang kompleks.

- Mudah diprogram menggunakan MicroPython.

- Dapat dikembangkan menjadi proyek IoT.

- Dapat digunakan sebagai dasar pembelajaran ADC dan GPIO.

Kekurangan LDR

Meskipun sederhana, LDR juga memiliki beberapa keterbatasan, antara lain:

- Nilai pembacaan LDR dapat dipengaruhi oleh posisi sensor, jenis sumber cahaya, dan kondisi lingkungan.

- LDR tidak memberikan pengukuran intensitas cahaya yang sangat presisi seperti sensor cahaya digital tertentu.

Karena itu, untuk proyek sederhana seperti lampu otomatis, LDR sudah cukup. Namun untuk aplikasi yang membutuhkan pengukuran cahaya lebih akurat, sensor cahaya khusus dapat menjadi pilihan yang lebih baik.

 

Baca juga: Mengenal PWM Frequency dan Duty Cycle di Raspberry Pi Pico

 

 

 

Dalam praktik, hasil dan kendala yang ditemui bisa berbeda tergantung perangkat, konfigurasi, versi library, dan sistem yang digunakan.

Posting Komentar

0 Komentar