Lompat ke konten Lompat ke sidebar Lompat ke footer

Arduino Part 16. Tiga macam praktik ujicoba Sensor Cahaya - LDR

Pada materi ini akan dibahas 3 macam praktik ujicoba menggunakan sensor cahaya yaitu LDR. Praktik pertama adalah tentang membaca nilai LDR melalui serial monitor, Praktik kedua membuat saklar otomatis menggunakan sensor cahaya LDR dan Praktik ketiga membaca nilai  tegangan LDR dan melihat kondisi lampu ON OFF menggunakan display LCD

saklar otomatis sensor suhu ldr lcd arduino

Light Dependent Resistor (LDR)

LDR merupakan hambatan listrik yang nilai hambatannya (ohm) akan berubah sesuai dengan besar kecilnya intensitas cahaya yang mengenai LDR. Dengan fungsi seperti ini maka LDR bisa dijadikan sensor cahaya. Bentuk LDR dan simbolnya seperti gambar dibawah ini :

ldr

Untuk mengukur LDR bisa menggunakan ohm meter (multimeter). Sebelum melakukan pengukuran hambatan LDR maka terlebih dahulu lakukan adjust nol ohm. Caranya putar saklar batas ukur multitester pada posisi ohm meter misalnya pada posisi X1Kohm, lalu hubung singkat kedua kabel probe hingga jarum bergerak,  lalu putar tombol adjust hingga jarum menunjuk angka nol ohm, setelah itu barulah kita bisa mengukur hambatan LDR seperti gambar dibawah ini:

mengukur ldr

Jika anda masih kesulitan menguasai multimeter bisa klik disini

Saat mengukur hambatan LDR usahakan hanya salah satu tangan saja yang memegang kaki LDR (jangan kedua tangan menyentuh kedua pin LDR), hal ini  agar hambatan tubuh manusia tidak mempengaruhi nilai hambatan LDR  sesuungguhnya. Setelah itu arahkan LDR tepat di sinar matahari yang paling terang lalu catat nilainya, lalu masuklah ke dalam ruangan lalu ukurlah perubahan nilai hambatan LDR, dan terakhir tutuplah LDR secara rapat dengan benda yang tidak tembus cahaya (kondisi ini dianggap seperti kondisi malam hari yang gelap), lalu ukurlah nilai hambatannya.

Hasil pengukuran nilai hambatan LDR  yang penulis lakukan bisa dilihat pada tabel di bawah ini:


Tabel hambatan LDR

Nilai pengukuran pada tabel bisa saja tidak sama persis dengan nilai pengukuran yang anda lakukan, hal ini bisa dipengaruhi oleh jenis komponen LDR yang digunakan atau intensitas cahayanya yang berbeda-beda. Akan tetapi itu tidak masalah yang penting anda sudah mengetahui bahwa anda sudah bisa mengamati perubahan  nilai hambatan LDR saat terkena cahaya dengan intensitas yang berbeda-beda.

Mengkonversi nilai hambatan LDR menjadi tegangan

Agar sensor cahaya LDR bisa dibaca oleh mikrokontroller arduino, maka nilai hambatan LDR harus dikonversi menjadi tegangan DC. Caranya cukup mudah hanya menambah satu buah resistor yang dihubung seri dengan LDR. Untuk jelasnya bisa lihat gambar di bawah ini:

tegangan ldr
Dari rangkaian tersebut kita menggunakan tegangan catu daya sebesar 5 Volt DC dan resistor tetap (R1) = 220 Ω. Berdasarkan rumus di atas, maka saat LDR (R2) terkena cahaya maka nilai R2 akan berubah-ubah tergantung besar kecilnya intensitas cahaya. Jika nilai R2 berubah maka tegangan output juga ikut berubah. Semakin besar nilai hambatan LDR (R2) maka semakin besar pula tegangan outputnya. 

Contoh :

tegangan ldr
Dari rangkaian diatas, Jika nilai hambatan LDR (R2) didapati sebesar 2500 ohm maka besarnya tegangan Vout adalah 4,6 Volt.

PRAKTIK KE-1 : MEMBACA NILAI LDR MELALUI SERIAL MONITOR

Ada kalanya diperlukan untuk menampilkan informasi dari suatu sensor LDR sehingga nilainya dapat dipantau setiap saat dengan mudah. Untuk memantau nilai LDR kita menggunakan mikrokontroller Arduino uno. Tegangan output dari LDR akan masuk ke pin input analog Arduino (A0). Input analog ini merupakan rangkaian Analog Digital Converter (ADC) yang akan merubah besaran analog (tegangan DC 0 s.d 5 volt) menjadi besaran digital. Hasil besaran digital akan dikonversi lagi menjadi angka desimal 0-1023. Angka desimal inilah yang akan kita tampilkan pada serial monitor.

Anda belum faham Apa itu serial monitor? Anda bisa klik disini

Anda belum faham ADC, input analog A0,A1,A2,A3,A4,A5 dan mengapa muncul angka 0 – 1023 ? Anda bisa klik disini

Untuk praktik ke-1 anda bisa merakitnya sesuai gambar ini:

sensor cahaya ldr arduino


sensor cahaya ldr arduino

Setelah anda merakit rangkaiannya, maka silahkan buat sketch program arduino seperti di bawah ini:

// -----------------------------------
// praktik LDR ke-1
// membaca nilai LDR di serial monitor
// Oleh : Hendry Kurniawan, S.Pd
// -----------------------------------
 
int sensorLDR = A0; //menetapkan pin input analog A0
 
void setup() {
// Mengaktifkan serial monitor dengan kecepatan baudrate=9600 
Serial.begin(9600); 
}
 
void loop() {
  int nilaiSensor; //menetapkan variabel integer nilaiSensor
  nilaiSensor = analogRead(sensorLDR); //membaca input analog A0 lalu disimpan divariabel nilaiSensor
  Serial.print("Nilai Sensor : "); //Tampilkan teks "Nilai Sensor :"
  Serial.println(nilaiSensor); //Tampilkan angka desimal variabel nilaiSensor
  delay(1000); //tunda 1000 mili detik = 1 detik
}

Setelah selesai, lakukan verify dan upload-lah program ke arduino uno hingga sukses.

Silahkan cek di serial monitor dengan cara klik : Tools >> Serial monitor. Arahkan LDR dengan sumber cahaya yang berbeda-beda misalnya di luar ruangan, di dalam ruangan, dan tutuplah permukaan LDR secara rapat sehingga cahaya tidak bisa mengenai LDR (anggaplah kondisi gelap ini seperti malam hari). Hasil yang tampil diserial monitor akan berubah-ubah sesuai dengan intensitas cahayanya. Bisa lihat seperti di bawah ini:



Jika sudah berhasil lanjutkan praktik ke-2. 

PRAKTIK KE-2 : MEMBUAT SAKLAR OTOMATIS DENGAN SENSOR CAHAYA

Pernakah anda melihat lampu penerangan pada jalan yang bisa hidup otomatis saat malam hari? Atau anda pernah melihat lampu pada taman atau pada teras rumah yang lampunya bisa mati secara otomatis disiang hari dan akan hidup otomatis dimalam hari? Kalau pernah artinya memang anda memperhatikan perangkat elektronik di sekitar anda. Semua itu bisa terjadi karena menggunakan sensor cahaya. Salah satu sensor cahaya yang bisa kita gunakan adalah LDR.

Sebenarnya membuat saklar otomatis dengan sensor cahaya bisa kita buat sederhana tanpa menggunakan arduino, tetapi jika tanpa arduino maka kita tidak bisa mengamati secara terus menerus terhadap perubahan nilai tegangan pada sensor. Jadi pada kali ini kita membuat saklar otomatis menggunakan arduino sebagai sistem kontrolnya. Dengan arduino kita bisa mengatur sensitifitas LDR menggunakan program. Kita bisa menghidupkan lampu dengan kondisi lingkungan yang harus gelap sekali (malam hari), atau bisa kita atur dengan cahaya yang sedikit gelap misalnya cahaya menjelang magrib. Semua bisa kita atur dalam program yang akan kita buat.

Untuk membuat project ini kita membutuhkan antara lain:
  • Arduino uno
  • LDR
  • Resistor 220 ohm
  • Modul relay 5 Volt
  • Stopkontak
  • Lampu 220 V
  • Kabel penghubung.

Setelah semuanya siap maka rakitlah rangkaian seperti pada gambar rangkaian di bawah ini:


Relay merupakan saklar elektronik yang prinsip kerjanya menggunakan magnet listrik. Pada saat kumparan magnet mendapatkan tegangan maka kumparan tersebut menjadi magnet. Fungsi magnet pada relay adalah untuk menarik lindah saklar yang terbuat dari besi. Di dalam relay ada pin Normaly Close (NC), Common (COM) dan ada Normally Open (NO). Pada saat normal artinya saat kondisi relay tidak diberi tegangan apapun maka pin NC dan COM sudah terhubung dengan sendirinya dan pin NO dan COM tidak terhubung. Kondisi ini akan terbalik saat relay diberi tegangan karena saat relay diberi tegangan maka muncul medan magnit sehingga lidah saklar bisa ditarik magnet, hasilnya COM akan berpindah yang terhubung dengan NO, dan hubungan COM dan NC yang semula tersambung maka akan terputus. Begitulah prinsip kerja relay secara singkat.Jika ingin lebih detai tentang relay bisa tonton videonya disini

Saklar Relay pada pin COM, NC dan NO terpisah dengan rangkaian lainnya sehingga saklar ini aman saat  digunakan untuk tegangan 220 V AC. Jadi beban-beban listrik seperti lampu, pompa air, televisi, dll bisa dihidup matikan menggunakan relay. 

Untuk menggerakkan relay supaya bisa otomatis melalui program arduino maka dibutuhkan transistor sebagai drivernya. Nah,  pada praktik kali ini kita tidak perlu lagi repot merakit rangkaian driver transistor relay karena transistor, resistor, dan komponen penunjang lainnya sudah ada lengkap didalam modul relay. Modul relay ini sudah banyak tersedia di belanja online. Gambar modul relaynya seperti ini:


Pada program ini kita menggunakan Pin 13 Arduino sebagai output menuju modul relay. Jadi saat Input modul relay mendapatkan logika high (5 Volt) maka relay akan aktif, dan saat input modul relay menerima logika LOW maka modul relay akan tidak aktif.

Sistem aktif high dan aktif low pada modul relay bisa diganti dengan menggeser jumper kuning pada relay. Jika Jumper terhubung dengan H artinya modul relay bekerja dengan sistem aktif HIGH, dan sebaiknya jika jumper pada modul relay diletakkan pada posisi L artinya aktif LOW. Ini semua akan berhubungan dengan program yang akan kita buat. Tetapi pada kali ini kita mengkondisikan modul relay aktif HIGH.

Silahkan anda rakit rangkaian saklar otomatis sensor cahaya ini dengan benar. Hati-hati dalam menggunakan tegangan 220 Volt karena sangat berbahaya bisa kena strum. Jadi Jangan hubungkan dulu output modul relay ke tegangan jala-jala PLN 220 Volt sebelum rangkaian relay berfungsi dengan baik. Ciri rangkaian relay telah berfungsi adalah terdengar bunyi “klik” saat LDR di tutup dengan tangan atau bisa menggunakan kertas yang tidak tembus cahaya. Dan bunyi klik lagi saat LDR terkena cahaya terang.

Silahkan ketik sketch program dibawah ini:

 
// -----------------------------------
// praktik LDR ke-2
// Saklar otomatis sensor cahaya
// Oleh : Hendry Kurniawan, S.Pd
// -----------------------------------
 
int sensorLDR = A0; //input analog dari LDR
const int Relay = 13; //pin untuk relay adalah 13
 
void setup() {
  Serial.begin(9600);
  pinMode(Relay, OUTPUT);
}
 
void loop() {
  int nilaiSensor;
  nilaiSensor = analogRead(sensorLDR);
  Serial.print("Nilai Sensor : ");
  Serial.println(nilaiSensor);
 
  if(nilaiSensor >=1000)
  {
    digitalWrite(Relay, HIGH);
    Serial.println("Lampu nyala");
  }
    else
    {
    digitalWrite(Relay, LOW);
    Serial.println("Lampu mati");
    }
  delay(1000);
}

Pada program diatas kita bisa mengatur sensitifitas cahaya sesuai keinginan kita. Caranya anda bisa mengganti nilai 1000 dengan nilai yang lain pada perintah ini:

if(nilaiSensor >=1000){

Agar lebih tepat mengatur sensitifitas cahaya yang kita inginkan guna menghidupkan lampunya, maka kondisikan dulu cahaya LDR yang menurut anda sudah selayaknya lampu hidup, setelah itu bukalah serial monitor catat nilai LDR pada saat itu. Jika sudah maka gantilah angka 1000 diatas dengan angka yang telah anda catat tadi, lalu uploadlah lagi program hasil revisi tadi. Ulangi lagi jika anda merasa sensitifitas cahayanya  masih belum tepat hingga mendapatkan nilai yang terbaik.

Nilai  LDR dan kondisi nyala lampu bisa juga dilihat pada serial monitor


serial monitor arduino

Hasil dari praktik ke-2 ini bisa dilihat pada video berikut ini:


PRAKTIK KE-3 : MENAMPILKAN KONDISI NYALA LAMPU DAN TEGANGAN LDR PADA LCD

Pada praktik kali ini kita bisa memantau kondisi lampu menyala (ON) atau tidak menyala (OFF) dan melihat berapa volt besarnya tegangan pada LDR degan menggunakan display LCD. Dengan LCD maka kita tidak perlu lagi menggunakan serial monitor komputer karena semua informasi bisa kita tampilkan pada LCD.

LCD yang kita gunakan adalah 2X16. Jika anda belum memahami tentang menghidupkan LCD ini maka bisa baca tentang dasar-dasar menyalakan LCD bisa klik disini. Dan Jika anda ingin membuat running text atau teks berjalan menggunakan LCD maka anda bisa klik disini

Gambar rangkaianannya bisa lihat di sini :


Silahkan anda membuat sketch program seperti dibawah ini:


// ----------------------------------------
// Praktik LDR ke-2
// Saklar otomatis sensor cahaya
// menggunakan LCD display (2X16)+modul I2C
// Oleh : Hendry Kurniawan, S.Pd
// hubungkan pin A4 arduino uno ke SDA I2C
// dan pin A5 arduino ke SCL I2C
// pin +5 volt arduino ke VCC I2C
// pin GND arduino ke GND I2C
// pin A0 ke LDR
// pin 13 ke Relay
//-------------------------------------------
 
#include <LiquidCrystal_I2C.h>   
LiquidCrystal_I2C lcd(0x27,16,2);
int sensorLDR = A0;
const int Relay = 13;
 
void setup()
{
  lcd.init();                  
  lcd.backlight();
  Serial.begin(9600);
  pinMode(Relay, OUTPUT);        
 }
 
void loop()
{
  int nilaiSensor;
  nilaiSensor = analogRead(sensorLDR);
  float voltage = nilaiSensor * (5.0 / 1023.0);
 
  if(nilaiSensor >=1000){
    digitalWrite(Relay, HIGH);
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("Lampu ON");
    lcd.setCursor(0, 1);
    lcd.print("Teg LDR : ");
    lcd.setCursor(10, 1);
    lcd.print(voltage);
    lcd.setCursor(15, 1);
    lcd.print("V");
    //delay(1000);
  }
  else{
    digitalWrite(Relay, LOW);
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("Lampu OFF");
    lcd.setCursor(0, 1);
    lcd.print("Teg LDR : ");
    lcd.setCursor(10, 1);
    lcd.print(voltage);
    lcd.setCursor(15, 1);
    lcd.print("V");
    //delay(1000);
  }
  delay(500);
}

Hasil dari program di atas bisa tonton pada video dibawah ini :



Demikianlah Tiga macam praktik ujicoba Sensor Cahaya - LDR. Silahkan kembangkan dari rangkaian ini agar bisa jauh lebih bermanfaat lagi. 

Posting Komentar untuk "Arduino Part 16. Tiga macam praktik ujicoba Sensor Cahaya - LDR"