Mengakses LDR Dengan Mikrokontroler

Posted on

Seperti postingan saya sebelumnya, LDR atau Light Dependent Resistor adalah salah satu jenis resistor yang nilai resistansinya bergantung pada jumlah cahaya yang masuk pada permukaan LDR. Jika cahaya yang masuk lebih besar maka nilai resistansinya akan semakin kecil, sebaliknya jika nilai jumlah cahaya yang masuk lebih kecil maka resistansinya akan semakin kecil. Pada artikel kali ini saya akan menulis tutorial bagaimana cara mengakses LDR dengan mikrokontroler sehingga dapat digunakan untuk membuat berbagai macam alat yang dapat dimanfaatkan melalui sensor LDR ini. Misalnya saja membuat lampu jalan otomatis atau membuat alaram. Rangkaian yang saya buat menggunakan aplikasi ISIS proteus yang sekaligus bisa digunakan untuk membuat simulasi rangkaian dan pemogramanya menggunakan BASCOM-AVR yang menggunakan bahasa basic sebagai codignya. Mikrokontroler yang saya gunakan pada rangkaian ini adalah mikrokontroler ATmega16, bisa juga menggunakan mikrokontroler lain seperti ATmega8, ATmega32 atau ATmega8535 asalkan sesuai dengan kode program atau coding yang kita buatkan nanti.

Rangkaian LDR dan Mikrokontroler

Rangkaian LDR menggunakan mikrokontroler adalah sebagai berikut:

Rangkaian diatas langsung terhubung dengan rangkaian relay 5v yang digunakan untuk menghubungkan lampu atau LED.

Kode Program atau Coding

Untuk coding saya menggunakan dua mode coding yaitu pertama saya menggunakan logika low-high (0-1) untuk membaca apakah LDR terkena cahaya atau tidak dan yang kedua saya menggunakan ADC (Analog to  Digital Converter) untuk membaca cahaya yang masuk pada sensor LDR.

Menggunakan lgoika low-high (0-1)

$regfile = “m16def.dat”
$crystal = 16000000

Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5
Config Lcdpin = Pin , E = Portc.1 , Rs = Portc.0
Config Lcd = 16 * 2

Config Pina.0 = Input
Config Portd.0 = Output

Ldr Alias Pina.0
Lampu Alias Portd.0

Cursor Off
Cls

Do

Upperline : Lcd “TES LDR”
Lowerline :

If Ldr = 1 Then
Set Lampu
Lowerline : Lcd “Lampu Hidup”
Else
Reset Lampu
Lowerline : Lcd “Lampu Mati”

End If
Waitms 50
Cls
Loop

Hasil dari kode program di atas adalah sebagai berikut:

Saat cahaya dijauhkkan dari LDR

Saat cahaya didekatkan dengan LDR

Dari kedua gambar diatas terlihat perbedaan bahwa saat cahaya dijauhkan dengan LDR maka lampu akan menyala dan LCD memberi tahu bahwa lampu sudah menyala, sedangkan pada saat cahaya didekatkan dari LDR maka lampu akan mati dan LCD memberi tahu bahwa lampu telah mati. Dari dua gambar diatas bisa kita umpamakan sebagai kondisi siang dan kondisi malam hari.

Menggunakan ADC (Analog to  Digital Converter)

$regfile = “m16def.dat”
$crystal = 16000000

Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc

Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5
Config Lcdpin = Pin , E = Portc.1 , Rs = Portc.0
Config Lcd = 16 * 2

Dim Ldr As Word
Config Portd.0 = Output

Lampu Alias Portd.0

Cursor Off
Cls

Do

Upperline : Lcd “TES LDR”
Lowerline : Lcd “LDR = ” ; Ldr
Ldr = Getadc(0)

If Ldr > 512 Then
Set Lampu
Else
Reset Lampu
End If

Waitms 50
Cls
Loop

Hasil dari kode program di atas adalah sebagai berikut:

Saat nilai ADC dibawah angka 512Saat nilai ADC diatas angka 512

Pada coding yang menggunakan ADC saya menentukan nilai tengah dari ADC (1024/2=512) sebagai patokan lampu akan menyala atau mati. ketika nilai ADC berada di atas angka 512 maka lampu akan menyala, kebalikanya jika nilai ADC berada dibawah 512 maka lampu akan mati.

 

4 thoughts on “Mengakses LDR Dengan Mikrokontroler

Leave a Reply

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.