Sensor LDR atau sensor cahaya merupakan slah satu jenis resistor yang nilai resistansinya berubah sesuai dengan intenitas cahaya yang mengenainya. Sensor LDR dapat di aplikasikan pada Lampu Penerang Jalan, Lampu Kamar Tidur, Rangkaian Anti Maling, Shutter Kamera, Alarm dan lain sebagainya. Kali ini kita akan mengaplikasikan sensor LDR untuk membuat solar tracker sederhana.

1. Alat / Bahan
  • Arduino IDE                                     Download disini
  • Library: Servo                                  Download disini
  • Arduino UNO                                   1 Buah
  • Motor Servo                                     1 Buah
  • Sensor LDR                                     2 Buah
  • Resistor 220 ohm                            2 Buah
  • Project Board                                  1 Buah
  • Kabel Jumper                                  Secukupnya

Untuk mendapatkan komponen elektronik di atas silahkan temukan disini.

2. Skema Rangkaian

Gambar Rangkaian Solar Tracker Sederhana Dengan Sensor LDR

Keterangan:

  • 5V – VCC Servo, VCC LDR 1, VCC LDR 2
  • GND – GND Servo, Kaki resistor 1, Kaki resistor 2
  • A0 – Kaki Resistor 1 – LDR 1
  • A1 – Kaki Resistor 2 – LDR 2
3. Langkah Kerja
  1. Siapkan alat dan bahan yang akan digunakan
  2. Lakukan proses wiring dengan menggunakan Gambar skematik rangkaian diatas
  3. Buka software Arduino IDE yang telah terinstal pada laptop/komputer
  4. Unduh semua library di atas dan masukkan libray tersebut dengan cara buka Arduino IDE pilih Sketch->Include Library->Add.Zip Library 
  5. Ketikkan sketch program pada halaman Arduino IDE
  6. Lakukan proses uploading program
4. Sketch Program
 
/* Program Solar Tracker Sederhana Dengan Sensor LDR dibuat oleh Indobot */

#include <Servo.h>    //Library servo
Servo myservo;        //Deklarasi nama servo

#define ldr1 0        //LDR 1 pada pin A0
#define ldr2 1

int pos = 0;          //Variabel penampung sudut servo

void setup() {
  pinMode(ldr1, INPUT);   //Setting I/O
  pinMode(ldr2, INPUT);
  myservo.attach(9);      //Servo pada pin D9
}

void loop() {
  int nilai1 = analogRead(ldr1);  //Baca sensor
  int nilai2 = analogRead(ldr2);

  nilai1 = map(nilai1, 0, 1023, 0, 180);  //Konversi dari 10bit ke 8bit
  nilai2 = map(nilai2, 0, 1023, 0, 180);

  //-----------------Setting nilai agar tetap diantara 0* - 180*-----------------//
  if(pos >= 180){
    pos = 180;
  }
  else if(pos <= 0){
    pos = 0;
  }
  
  //-----------------Jika nilai LDR1 dan LDR2 berbeda maka servo bergerak menyesuaikan nilai-----------------//
  if(nilai1 > nilai2 + 3){
    pos--;
  }
  else if(nilai1 + 3 < nilai2){
    pos++;
  }
  
  myservo.write(pos);   //Jalankan servo
  delay(15);
}

Kesimpulan:

Program bekerja ketika sensor mulai mendeteksi adanya cahaya. Ketika sensor mulai mendeteksi cahaya servo akan bergerak mengikuti arah gerakan cahaya yang dideteksi oleh sensor LDR.


Leave a Comment