Home » Microcontroller » Arduino #5: Kontrol lampu LED dengan Sensor LDR

Arduino #5: Kontrol lampu LED dengan Sensor LDR

by YogaBayu
by YogaBayu

Setelah kemarin kita membahas mengenai cara mengatur kecerahan LED dengan menggunakan potensiometer, pada kesempatan kali ini kita akan membahas mengenai cara mengatur kecerahan LED dengan menggunakan sensor LDR. Langsung saja mari kita bahas

Sensor LDR

Sensor LDR atau kepanjangannya dalah Light Dependent Resistor adalah salah satu jenis resistor yang nilai hambatannya dipengaruhi oleh cahaya lingkungan yang diterimanya. Kenapa saya disini menyebut LDR sebuah sensor bukan resistor seperti kepanjangannya ? karena LDR terbuat dari cadmium sulfida yaitu suatu bahan semikonduktor yang resistansinya berubah-ubah menurut banyaknya cahaya (sinar) yang mengenainya dan dapat mengeluarkan output untuk mengontrol suatu hal. Sehingga hal tersebut dapat masuk dalam kategori LDR sebagai sensor. Jadi intinya semakin gelap atau sedikit cahaya pada lingkungan (misalnya pada malam hari) akan semakin besar resistansi yang dimiliki LDR, sebaliknya jika semakin banyak cahaya pada lingkungan (misalnya siang hari) maka semakin sedikit atau kecil resistansi yang dimiliki

Karena ini merupakan salah satu jenis resistor, bagaimana pemasangannya dalam rangkaian ? apakah sama dengan pemasangan resistor konvensional ? jawabannya adalah SAMA, tidak ada kutub positif dan negatif dalam LDR. Bentuk dan simbol LDR dapat teman – teman lihat pada gambar dibawah :

bentuk dan simbol LDR
Bentuk dan simbol LDR

ada banyak aplikasi yang dapat dibuat dengan menggunakan sensor LDR, contohnya :

  • Saklar otomatis berbasis cahaya
  • Lampu emergency
  • Tracker cahaya matahari
  • Robot line follower
  • Lampu taman otomatis
  • dll

Alat dan Bahan

Dalam membuat project kali ini teman – teman harus menyiapkan alat dan bahan antara lain:

  • 1 buah Arduino (disini saya menggunakan arduino uno)
  • 1 buah sensor LDR
  • 1 buah LED
  • 1 buah resistor 1k ohm
  • Laptop yang telah terinstal arduino IDE
  • 1 buah Breadboard (optional)
  • kabel jumper secukupnya (optional)

Rangkaian

rangkaian project ldr
Rangakain project

Penjelasan Rangkaian:

  • Kaki kiri LDR -> +5V DC
  • Kaki kanan LDR -> pin A0 arduino
  • Pin digitak 7 Arduino -> Resistor 1k -> anoda LDR -> katoda LDR ->GND

Skema diatas saya buat dengan menggunakan aplikasi Proteus design, silahkan teman-teman lihat di 5 Software Desain Rangkaian Elektronika . Rangkaian diatas hampir sama dengan rangkaian pada project Arduino #4: Mengatur Kecerahan LED dengan Potensiometer, Kalau pada potensiometer kaki tengah dihubungkan ke pin input analog arduino kali ini salah satu kaki atau kaki kanan dari sensor LDR yang dihubungkan ke pin analog Arduino.

Kenapa dihubungkan dengan pin analog dari arduino dan tidak pin digital ? Karena sifat dari LDR sendiri yang nilainya dapat berubah ubah sesuai cahaya yang diterimanya, serta pin digital arduino hanya dapat membaca input 1 atau 0, 5v atau 0 V.

Program Arduino IDE

int ldr = A0;
int led = 7;
int nilai;

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

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

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

}

Penjelasan program:

ProgramPenjelasan
int ldr = A0;membuat variabel bernama ldr dengan nilai berasal dari pin A0
int led = 7;membuat variabel tipe integer dengan nama led dan arti angka 7 adalah pin yang digunakan untuk output pada project ini
pinMode(led,OUTPUT);menggunakan pin 7 pada variabel led sebagai OUTPUT
Serial.begin(9600);digunakan untuk memulai komunikasi serial (misal dengan serial monitor)
nilai = analogRead(ldr);membaca nilai analog dari pin A0 dan memasukkan pada variabel nilai
Serial.print(“Nilai LDR: “);menampilkan teks “Nilai LDR: ” pada komunikasi serial
Serial.println(nilai);menampilkan nilai dari variabel nilai ke komunikasi serial dengan diakhiri ganti baris
if (nilai < 1000) {
digitalWrite(led, HIGH);
}
jika variabel nilai bernilai lebih dari 1000 maka akan memberi nilai HIGH ke pin led (menyalakan LED).
nilai 1000 disini merupakan threshold atau nilai minimum dari variabel nilai yang didapat dari pembacaan intensitas cahaya lingkungan oleh sensor LDR
else {
digitalWrite(led, LOW);
}
jika variabel nilai bernilai kurangdari 1000 maka akan mengirimkan nilai LOW atau 0V ke pin led
penjelasan program

Sekian penjelasan mengenai cara mengatur kontrol LED dengan menggunakan sensor LDR, teman – teman dapat mengembangkan sendiri sesuai dengan kreatifitas dan kebutuhan dari teman – teman seperti menambah jumlah LED. Terima kasih

You may also like