Langsung ke konten utama

Program 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:

1x Arduino
1x Breadboard
1x Sensor cahaya LDR
1x Resistor 10k
7x Kabel jumper

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:

int LDR= A2;          // membuat variabel LDR untuk pin A2
int LED= 13;          // membuat variabel LED untuk pin 13
int nilaiLDR= 0;  // variabel nilai awal untuk nilaiLDR
void setup(){
  pinMode(LED, OUTPUT);         // menentukan LED menjadi OUTPUT
  Serial.begin(9600);         // komunikasi Arduino ke Komputer
}
void loop(){
  nilaiLDR= analogRead(LDR); // menyimpan nilai yang dibaca dari LDR ke variabel nilaiLDR
  Serial.print("NilaiLDR= ");         // menampilkan teks nilaiLDR=
  Serial.println(nilaiLDR);                 // menampilkan nilai dari nilaiLDR
  if(nilaiLDR < 500) {         // jika nilai dari LDR kurang dari 500
    digitalWrite(LED, HIGH);         // lampu LED menyala
  }
  else  {                         // jika tidak
    digitalWrite(LED, LOW);         // lampu LED mati
  }
}

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.

Komentar

  1. 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)

    BalasHapus
    Balasan
    1. 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.

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

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

    BalasHapus
    Balasan
    1. Silahkan buka postingan ini http://www.kelasrobot.com/2016/09/cara-simple-program-lcd-i2c-16x2-menggunakan-arduino.html

      nantinya tinggal kombinasikan program saja...

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

      Hapus
  4. 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

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

      Hapus
  5. Sangat membantu gan webnya 👍

    BalasHapus
  6. Komentar ini telah dihapus oleh pengarang.

    BalasHapus
  7. Program untuk pompa otomatis menggunkan arduino dan sensor ultrasonik gmna gan

    BalasHapus
    Balasan
    1. 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

      Hapus
  8. 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

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

      Hapus
  9. Gan nextnya dkasih tunjukin sample proram.y gan.

    BalasHapus
  10. Gan nextnya dkasih tunjukin sample proram.y gan.

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

    BalasHapus

Posting Komentar

Postingan populer dari blog ini

Belajar Pemrograman Dasar Arduino!

Yang yang baru pertama kali belajar arduino silahkan masuk dulu ke KELAS ARDUINO . Seperti yang saya bilang pada postingan sebelumnya, bahasa pemrograman Arduino mirip bahasa C yang digunakan pada AVR. Akan tetapi lebih sederhana, dan lebih mudah untuk dipelajari. Ada yang bilang juga bahwa bahasa pemrograman Arduino adalah bahasa processing. Bagi saya bahasa pemrograman yang digunakan pada Arduino adalah bahasa pemrograman Arduino ;) hehe Nah pada kelas ini saya ingin mengajak kamu untuk belajar Bahasa Pemrograman Dasarnya. Penting sekali, supaya saat dipembahasan selanjutnya saya kasih kamu contoh program. Kamu sudah bisa memahami dan tidak bingung, karena kamu sudah tahu dasarnya. Ok! Baiklah kita akan mulai dari: void setup () { // semua kode yang disini akan dibaca sekali oleh Arduino } void loop () { //semua kode yang ada disini akan dibaca berulang kali (terus menerus) oleh Arduino } Semua kode program yang ada dalam void setup akan dibaca sekali oleh A

Cara Mudah Program Sensor Suhu Dan Kelembaban DHT11 Dengan Arduino

Sebelumnya kita pernah mencoba Sensor Suhu LM35 , dengan berbagai macam percobaan kreatifnya. Masih dengan tema yang sama, kita akan mencoba Sensor Suhu dan Kelembaban DHT11 . Ya satu sensor ini, bisa baca suhu ( temperature ) dan juga kelembaban ( humidity ). Sensor Suhu dan Kelembaban DHT11 Jika kamu menggunakan Modul, kamu bisa langsung memasang ke Arduinonya. Tapi jika ingin mencoba pada breadboard, maka siapkanlah: 1x Breadboard 1x Arduino 1x DHT11 Sensor 1x Resistor 10 Kilo Ohm 5x kabel Jumper male-male Lalu buatlah rangkaian seperti gambar dibawah ini: NOTES: Hubungkan kaki ke-1 DHT11 ke 5V Arduino Hubungkan kaki ke-2 DHT11 ke pin 2 Arduino dengan menggunakan Resisitor 10 Kilo Ohm , hubungkan kaki ke-2 DHT11 ke 5V Arduino . Hubungkan kaki ke-4 DHT11 ke GND Arduino Untuk kaki Ke-3 DHT11 kita abaikan saja :D Dengan rangkaian yang seperti diatas saya buat DHT11 saya menjadi DIY Modul. Yang mana has

Membuat Jam Digital Dengan Arduino Uno, RTC DS1302, dan LCD i2C!

Kita akan membuat Jam Digital menggunakan Arduino Uno sebagai Controllernya, RTC DS1302 sebagai data untuk waktu dan tanggalnya, dan LCD i2C untuk menampilkan data waktu dan tanggalnya. Ini merupakan gabungan dari postingan sebelumnya, jadi yang belum coba saya sarankan coba dulu kedua posting berikut: Cara Simpel Program LCD i2C 16x2 Menggunakan Arduino Cara Mudah Program RTC Module DS1302 Jam Digital Dengan Arduino Ok! Yang harus kamu siapkan adalah... 1x Arduino Uno 1x RTC DS1302 1x LCD i2C 9x Kabel Jumper Male-Female Pasanglah seperti pada gambar rangkaian dibawah ini: Sebelum masuk ke-pemrograman ada 2 library yang harus kamu masukan ke Arduino. Library lCD i2C dan Library untuk RTCnya, silahkan Download dulu lewat Link di bawah ini: DOWNLOAD LIBRARY LiquidQrystal_i2c (DROPBOX) DOWNLOAD LIBRARY virtuabotixRTC (DROPBOX) Bagi yang masih bingung cara masukin Library ke aplikasi arduinonya,