Belajar Menggunakan Sensor LDR dan Arduino

Light Dependent Resistor (LDR) atau disebut juga fotoresistor adalah komponen elektronik yang nilai resistansinya bergantung pada cahaya. LDR dibuat dari semikonduktor yang tidak terlindung dari cahaya. Nilai intensistas cahaya dan resistansi LDR memiliki hubungan yang berbanding terbalik. Dimana semakin rendah intensitas cahaya maka semakin besar nilai resistansinya dan sebaliknya, semakin tinggi intensitas cahaya maka semakin kecil nilai resistansinya. Berdasarkan sifatnya tersebut, LDR dapat diaplikasikan sebagai sensor cahaya untuk berbagai keperluan misalnya dalam pengendali nyala lampu berdasarkan intensitas cahaya. Simbol dari LDR ditunjukan pada gambar berikut:
Karena keluaran dari LDR berupa nilai resistansi, sehingga dalam pengaplikasiannya seringkali dirangkai membentuk rangkaian pembagi tegangan. LDR dirangkai bersama 1 fixed resistor dengan nilai yang ditentukan. Dengan rangkaian tersebut maka didapatkan nilai tegangan keluaran yang dapat berubah-ubah bergantung nilai intensitas cahaya yang mengenai LDR. Output tegangan dari rangkaian tersebut kemudian diinputkan misalnya ke input analog pada arduino untuk diproses. Adapun contoh rangkaian pembagi tegangan nya dapat dilihat pada gambar berikut:


Jika kita simulasikan rangkaian diatas pada proteus dengan mengubah-ubah variable nilai intensitas cahayanya maka nilai tegangan keluarannya akan berubah. Berdasarkan sifat pembagi tegangan, maka semakin besar nilai intensitas cahaya (resistansi LDR kecil) maka nilai tegangan output (Vo) semakin besar. Adapun hasilnya dapat dilihat pada gambar berikut:
  • intensitas cahaya 0.1
keluaran 0.05V
  • intensitas cahaya 5,1
keluaran 1,21V

  • intensitas cahaya 10.1 
keluaran 1,82V
Selanjutnya kita coba untuk simulasikan rangkaian LDR dan Arduino. Keluaran dari rangkaian pembagi tegangan di masukan ke pin analog 0 (A0) arduino. Rangkaian nya seperti gambar berikut:
 

Kemudian kita mecoba untuk menampilkan nilai adc yang terbaca di pin A0 dan menampilkannya ke serial monitor. Program yang digunakan sebagai berikut:
int adc; 
void setup() {
Serial.begin(9600);
}
void loop() {
adc=analogRead(0);
Serial.print("ADC Terbaca :");
Serial.println(adc);
delay(1000);
}

Kemudian kita simulasikan untuk nilai-nilai intensitas cahya yang berbeda-beda. Hasilnya sebagai berikut:
  • intensitas cahaya 0.1
  • intensitas cahaya 10,1

  • intensitas cahaya 15,1


Setelah didapat hasil hasil diatas, maka kita dapat membuat program untuk mengatur nyala lampu berdasarkan nilai ADC yang terbaca. Lampu disimulasikan menggunakan led yang terhubung dengan keluaran pin 4. Untuk mencegah perubahan yang terlalu cepat yang dapat mengakibatkan nyala lampu berkedip (flicker) bahkan bisa menyebabkan bola lampu cepat putus, maka kita gunakan kendali on-off yang memiliki batas atas dan batas bawah atau sering disebut sistem kendali histeresis. Misal pada simulasi kali ini kita ambil batas atas nya dengan intensitas cahaya 15,1 dan ADC nya 457 sedangkan batas bawahnya 10,1 dengan nilai ADC 372.  Aturan pengendaliannya sebagai berikut:
  1. jika ADC >=457 lampu akan mati
  2. jika ADC <=372 lampu akan menyala
  3. jika 372<ADC<457 kondisi lampu sama dengan kondisi sebelumnya (tidak berubah)
Adapun program nya seperti berikut:

int adc;
void setup() {
Serial.begin(9600);
pinMode(4,OUTPUT);
}
void loop() {
adc=analogRead(0);
if(adc<=372){
digitalWrite(4,HIGH);
}else if(adc>=457){
digitalWrite(4,LOW);
}
delay(500);
}


Rangkaian simulasinya sebagai berikut:


Dari Simulasi rangkaian dan program di atas didapat hasil sebagai berikut:


  • intensitas cahaya 16,1 

  • intensitas cahaya 13,1

  • intensitas cahaya 10,1

  • intensitas cahaya 7.1

Dengan melihat hasil simulasi diatas terlihat bahwa, pada kondisi intensitas cahaya >= 15,1 atau melebihi batas atas (dalam simulasi diatas 16,1)  lampu mati, kemudian jika intensitas menurun menjadi sekitar 10,2 – 15,0 (dalam simulasi diatas menjadi 13,1) lampu tetap mati (tidak berubah/sesuai kondisi sebelumnya). Kemudian jika intensitas menurun menjadi <=10,1 (batas bawah) lampu menyala. Sehingga dapat disimpulkan rangkaian dan program yang disimulasikan berhasil dan dapat bekerja sebagaimana yang diinginkan. Pengembangan selanjutnya misalnya menambahkan kendali untuk mengatur intensitas nyala lampu berdasarkan intensitas cahaya ruangan. Misalnya dengan kendali fuzzy logic berdasarkan input intensitas cahaya yang mengatur keluaran berupa nilai PWM yang mengendalikan intensitas nyala lampu.
Demikian tulisan kali ini mohon maaf jika terdapat kesalahan, semoga bermanfaat.

Bagikan Ke:

Komentar:

Komentar