Solar Tracker




1. Tujuan[kembali]


  • Memberikan efektivitas yang lebih bagi solar panel untuk mendapatkan cahaya matahari
  • Memudahkan manusia dalam memanfaatkan energi cahaya matahari
2. Komponen[kembali]

  • Arduino Uno
  • LDR
  • Motor Servo
  • LCD 16x2 (dengan modul i2c)
3. Dasar Teori[kembali]
Arduino Uno adalah salah satu development kit mikrokontroler yang berbasis pada ATmega28. Arduino Uno merupakan salah satu board dari family Arduino. Ada beberapa macam arduino bardseperti Arduino Nano, Arduino Pro Mini, Arduino Mega, Arduino Yun, dll. Namun yang paling populer adalah Arduino Uno. Arduino Uno R3 adalah seri terakhir dan terbaru dari seri Arduino USB. Modul ini sudah dilengkapi dengan berbagai hal yang dibutuhkan untuk mendukung mikrokontroler untuk bekerja, tinggal colokkan ke power suply atau sambungkan melalui kabel USB ke PC, Arduino Uno ini sudah siap bekerja. Arduino Uno board memilki 14 pin digital input/output, 6 analog input, sebuah resonator keramik 16MHz, koneksi USB, colokan power input, ICSP header, dan sebuah tombol reset

LDR (Light Dependent Resistor) merupakan salah satu komponen resistor yang nilai resistansinya akan berubah-ubah sesuai dengan intensitas cahaya yang mengenai sensor ini. LDR juga dapat digunakan sebagai sensor cahaya. Perlu diketahui bahwa nilai resistansi dari sensor ini sangat bergantung pada intensitas cahaya. Semakin banyak cahaya yang mengenainya, maka akan semakin menurun nilai resistansinya. Sebaliknya jika semakin sedikit cahaya yang mengenai sensor (gelap), maka nilai hambatannya akan menjadi semakin besar sehingga arus listrik yang mengalir akan terhambat.

Grafik Respon LDR
Dari grafik diatas dapat dilihat hubungan cahaya dan resistansi, semakin besar cahaya yang diterima maka resistansi semakin mengecil.
Motor servo adalah jenis motor DC dengan sistem umpan balik tertutup yang terdiri dari sebuah motor DC, serangkaian gear, rangkaian kontrol, dan juga potensiometer. Jadi motor servo sebenarnya tak berdiri sendiri, melainkan didukung oleh komponen-komponen lain yang berada dalam satu paket. Sedangkan fungsi potensiometer dalam motor servo adalah untuk menentukan batas sudut dari putaran servo. Sementara sudut sumbu motor servo dapat diatur berdasarkan lebar pulsa yang dikirim melalui kaki sinyal dari kabel servo itu sendiri. Oleh karena itu motor servo dapat berputer searah dan berlawanan arah jarum jam. Motor servo dapat menampilkan gerakan 0 derajat, 90 derajat, 180 derajat, hingga 360 derajat. Tak heran jika motor ini banyak diaplikasikan untuk penggerak kaki dan juga lengan robot. Selain itu motor servo juga memiliki torsi yang besar sehingga mampu menopang beban cukup berat. Berikut bagian-bagian dari motor servo.

LCD (Liquid Cristal Display) adalah salah satu jenis display elektronik yang dibuat dengan teknologi CMOS logic yang bekerja dengan tidak menghasilkan cahaya tetapi memantulkan cahaya yang ada di sekelilingnya terhadap front-lit atau mentransmisikan cahaya dari back-lit. LCD (Liquid Cristal Display) berfungsi sebagai penampil data baik dalam bentuk karakter, huruf, angka ataupun grafik



Inter Integrated Circuit atau sering disebut I2C adalah standar komunikasi serial dua arah menggunakan dua saluran yang didisain khusus untuk mengirim maupun menerima data. Sistem I2C terdiri dari saluran SCL (Serial Clock) dan SDA (Serial Data) yang membawa informasi data antara I2C dengan pengontrolnya. Piranti yang dihubungkan dengan sistem I2C Bus dapat dioperasikan sebagai Master dan SlaveMaster adalah piranti yang memulai transfer data pada I2C Bus dengan membentuk sinyal Start, mengakhiri transfer data dengan membentuk sinyal Stop, dan membangkitkan sinyal clockSlave adalah piranti yang dialamati master.
#include <LiquidCrystal.h> //Include library LCD
#include <Servo.h> //Include library Motor Servo

#define LDR_east A0 // LDR timur di pin 1
#define LDR_west A1 // LDR barat di pin 2
#define LDR_delta 10 // selisih intensitas cahaya pada LDR timur dan barat
#define servoMin 30 //Sudut rotasi servo minimal
#define servoMax 150 // sudut rotasi servo maximal

LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // inisialisasi lcd pada pin arduino
int hasilSensorLDR; //integer untuk hasil sensor dari LDR
Servo servo;

byte pos = 90; //posisi awal servo

void setup() {
  // put your setup code here, to run once:
  lcd.begin(16,2); //menginisialisai bahwa lcd dengan 16 colom dan 2 baris
  servo.attach(9); //servo dikendalikan di pin 9 arduino
}

void loop() {
  // put your main code here, to run repeatedly:
  if(abs(analogRead(LDR_east) - analogRead(LDR_west)) > LDR_delta){
    if(analogRead(LDR_east) - analogRead(LDR_west) > 0){  //apabila cahaya yang diterima ldr timur lebih banyak dibanding dengan barat dan lebih besar dibanding 10 dan 0 maka servo bergerak ke timur
      pos++;
    lcd.setCursor(0,0);//peletakkan cursor di kolom 0 dan baris 0
    lcd.print("Arah Timur"); // menampilkan di lcd
    lcd.setCursor(0,1);//peletakkan cursor di kolom 0 dan baris 1
    lcd.print("Hasil LDR :");// menampilkan di lcd
    lcd.setCursor(12,1);//peletakkan cursor di kolom 12 dan baris 1
    hasilSensorLDR = analogRead(0);
    lcd.print(hasilSensorLDR); // menampilkan pembacaan ldr pada pin 0 di lcd
    }
    
    else{ //servo bergerak arah sebaliknya
      pos--;
    lcd.setCursor(0,0);//peletakkan cursor di kolom 0 dan baris 0
    lcd.print("Arah Barat");// menampilkan di lcd
    lcd.setCursor(0,1);//peletakkan cursor di kolom 0 dan baris 1
    lcd.print("Hasil LDR :");// menampilkan di lcd
    lcd.setCursor(12,1);//peletakkan cursor di kolom 12 dan baris 1
    hasilSensorLDR = analogRead(1);
    lcd.print(hasilSensorLDR);// menampilkan pembacaan ldr di pin 1 di lcd
    }
    if(pos>servoMax) pos = servoMax; // apabila rotasi lewat dari batas max, maka akan diarahkan sama dengan max
    else if(pos<servoMin) pos = servoMin;//apabila rotasi lewat dari batas min, maka akan diarahkan sama dengan min
    servo.write(pos);
  }
}

Pembacaan cahaya di lakukan oleh ldr1 dan ldr2, ketika cahaya pada sisi ldr1 > ldr2 maka pada arduino diproses dari coding yang telah dilakukan sebelumnya, akan mengendalikan motor servo dengan bergerak searah jarum jam (arah timur) dan arduino akan menampilkan pada LCD berupa arah putaran dan intensitas cahaya pada sisi ldr1 sebaliknya juga demikian,

Video Simulasi


Gambar Alat

Video Alat








Comments

Popular Posts