Belajar Arduino: Sensor Cahaya LDR!

Light Dependent Resistor (LDR) adalah jenis resistor yang nilai hambatannya di pengaruhi oleh cahaya di sekitar. Maka kita bisa membuat LDR ini menjadi sensor cahaya. Karena memang sudah banyak aplikasinya. Misalnya pada lampu jalan, tidak ada saklar untuk mematikan dan menghidupkan lampu jalan.

Dengan menggunakan sensor cahaya LDR, lampu jalan akan mati ketika siang dan akan hidup ketika malam secara otomatis.

Sekarang kita akan buat program Arduino yang akan melakukan, “Lampu LED menyala ketika keadaan gelap dan mati ketika keadaan terang”  (Automatic Lighting System).

Yang harus kamu siapkan:

  1. 1x Arduino BELI
  2. 1x Breadboard BELI
  3. 1x Sensor cahaya LDR BELI
  4. 1x Resistor 10k BELI
  5. 7x Kabel jumper BELI

Kemudian buat rangkaian seperti gambar dibawah ini.

NOTES:

  • Hubungkan 5V dan GND dari Arduino ke Breadboard.
  • Hubungkan kaki kiri LDR ke 5V.
  • Hubungkan kaki kanan LDR ke pin A2 Arduino.
  • Hubungkan kaki kiri resistor ke celah antara kaki kanan LDR dan GND arduino.
  • Hubungkan kaki kanan resistor ke GND.
  • Untuk pemasangan LED kamu bisa lihat pada Menyalakan LED dan BLINK.

Untuk pemrograman LDR, kamu bisa gunakan sketch program dibawah ini:

byte ldr = A2;
byte led = 13;
int nilai;

void setup() {
  pinMode(led, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  nilai = analogRead(ldr);
  Serial.print("Nilai LDR: ");
  Serial.println(nilai);

  if (nilai < 500) {
    digitalWrite(led, HIGH);
  }
  else {
    digitalWrite(led, LOW);
  }

}

 

REVIEW NOTES:
  • int nilaiLDR= 0; membuat variabel nilaiLDR, dan akan membaca nilai mulai dari 0.
  • pinMode(LED, OUTPUT); memilih mode OUTPUT untuk pin yang disimpan di variabel LED.
  • Serial.begin(9600); digunakan agar Arduino bisa berkomunikasi dengan Komputer.
  • nilaiLDR= analogRead(LDR); menyimpan nilai yang dibaca oleh sensor LDR kedalam variabel nilaiLDR.
  • Serial.print("NilaiLDR= "); digunakan untuk mencetak secara digital atau menampilkan teks nilaiLDR=, untuk ini kita tampilkan pada Serial Monitor.
  • Serial.println(nilaiLDR); untuk menampilkan nilai yang dibaca oleh sensor LDR
  • if(nilaiLDR < 500) jika sensor membaca nilai 500 atau kurang dari 500
  • digitalWrite(LED, HIGH); lampu LED menyala
  • else jika tidak
  • digitalWrite(LED, LOW); lampu LED mati
MARI LEBIH KRETIF LAGI!!!
  1. Coba kamu buat program BLINK, dimana kecepatan BLINKnya diatur melalui nilai yang diterima oleh Sensor LDR.
  2. Pindahkan kaki positif LED dari pin 13 Arduino ke Pin 9 (PWM). Kemudian dengan perintah analogWrite, buatlah lampu LED menyala terang dan redup berdasarkan nilai dari sensorLDR.

22 Comments

    heru masadi

    Kapan kode Serial.begin(9600); untuk komunikasi Arduino ke Komputer dibutuhkan.
    Dan darimana nilai 500 LDR itu didapat, apakah karna mungkin LDR memiliki nilai max 500 ? (saya belum pernah mengenal LDR)

    Reply
    delon kairun

    asyik ya kalau jadioarng teknikan,,belajarnya raktek truuuusss..

    Reply
    Ajang Rahmat

    Serial.begin(9600); dibutuhkan ketika kita ingin berkomunikasi secara Serial dari Arduino dengan Komputer kita. Dalam hal ini, digunakan untuk menampilkan nilai LDR ke Serial Monitor.

    500 itu dapat dari pas membaca di Serial monitor, setiap lingkungan itensitas cahayanya berbeda, jadi nilainya bisa disesuaikan.

    Reply
    Ajang Rahmat

    heheheh iya brooo…. seru!

    Reply
    dafirly skate

    ketika ldr mendapatkan cahaya lalu akan menampilkan kalimat di lcd gimana ya rumus nya

    Reply
    Ajang Rahmat

    Silahkan buka postingan ini https://www.kelasrobot.com/2016/09/cara-simple-program-lcd-i2c-16×2-menggunakan-arduino.html

    nantinya tinggal kombinasikan program saja…

    Reply
    Ajang Rahmat

    if(nilaiLDR < 500) {
    lcd.setCursor(0, 0);
    lcd.print("isi kalimatnya");
    }

    Reply
    Fahri Husaini

    bang, klo kita mau masukin nilai ke serial monitor gimana ya? misalnya threshold lampu nyala itu klo LDR 400, terus kita ketik 400 di serial nanti LDR otomatis jadi 400

    Reply
    muhammad wafi

    Sangat membantu gan webnya 👍

    Reply
    moch suliswanto

    Komentar ini telah dihapus oleh pengarang.

    Reply
    Ryan Ga

    Program untuk pompa otomatis menggunkan arduino dan sensor ultrasonik gmna gan

    Reply
    Toni junihartono

    Misalkan 3 LDR dan 1 motor dc, contoh kasus pada pergerakan panel Surya.
    Kalau sensor LDR "selalu" disinari cahaya, bagaimana membuat agar motor 'HANYA SEKALI' bergerak sekian detik lalu mati. Motor akan menyala lagi jika nilai LDR2 mencapai nilai yang diinginkan dan motor 'HANYA SEKALI' menyala sekian detik lalu mati dan seterusnya. Itu gimana iya gan?
    Mohon pencerahannya gan.
    Makasih

    Reply
    Ajang Rahmat

    masukan nilai keSerial Monitor? Harus menggunkan progran Serial berarti bro, programanya sama dengan program bluetooth

    Reply
    Ajang Rahmat

    Rencana saya akan buatkan program ini, tapi sebenarnya bukan menggunakan ultrasonic karena ultrasonic itu baca kedalaman air jadi tidak bagus utk cek ketinggian, nah utk cek ketinggian airnya saya akan menggunakan sensor deteksi ketinggian/sensor banjir. Ditunggu dispotingan berikutnya ya… thanks

    Reply
    Ajang Rahmat

    menggunakan counter gan, pada program IFnya menggunakan counter jadi pembacaan sensor nya di counter dulu, contoh programnya bisa lihat disini https://www.kelasrobot.com/2017/07/menghidupkan-dan-mematikan-led-dengan-satu-tombol.html

    Reply
    agus tri prastio

    Gan nextnya dkasih tunjukin sample proram.y gan.

    Reply
    agus tri prastio

    Gan nextnya dkasih tunjukin sample proram.y gan.

    Reply
    Muhammad Naufan

    bang, ada skema rangkaian 6 buah sensor photodia untuk buat PCB layout di eagle?

    Reply
    Ajang Rahmat

    Belum ada bro, saya biasa pake fritzing

    Reply
    Ajang Rahmat

    siappp gann

    Reply
    Abdul Azis Sholeh

    Tipe arduinonya apa mas

    Reply



Leave a Reply to Ryan Ga Cancel reply

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