Assalamualaikum Wr. Selamat Datang! Semoga Blog ini Dapat Bermanfaat Untuk Kita Semua. Terima Kasih!

Senin, 10 Desember 2018

Modul 4 Praktikum Mikroprossesor dan Mikrokontroller




Sun Tracker Dual Axis Berbasis Arduino Menggunakan Sensor LDR

(BUAT ALAT) 


Modul 4


1.Komponen [Kembali]

1. Arduino Uno R3
2. LCD 16x2
3. Motor Servo
4. LDR



2. Teori [Kembali]

a. Arduino Uno (datasheet)
Arduino Uno adalah board mikrokontroler berbasis ATmega328 (datasheet). Memiliki 14 pin input dari output digital  dimana 6 pin input tersebut dapat digunakan sebagai output PWM dan 6 pin input analog, 16 MHz osilator kristal, koneksi USB, jack power, ICSP header, dan tombol reset. Untuk mendukung mikrokontroler agar dapat digunakan, cukup hanya menghubungkan Board Arduino Uno ke komputer dengan menggunakan kabel USB atau listrik dengan AC yang-ke adaptor-DC atau baterai untuk menjalankannya.
Gambar 2.1. Arduino Uno

b. LCD 16x2 (datasheet)
Liquid Crystal Display (LCD) adalah sebuah peralatan elektronik yang berfungsi untuk menampilkan output sebuah sistem dengan cara membentuk suatu citra atau gambaran pada sebuah layar. Secara garis besar komponen penyusun LCD terdiri dari kristal cair (liquid crystal) yang diapit oleh 2 buah elektroda transparan dan 2 buah filter polarisasi (polarizing filter).
Gambar 2.2. LCD 16x2

Gambar 2.3. Penjelasan Penggunaan Kaki Kaki LCD

c. Motor Servo (datasheet)
        Motor servo adalah sebuah perangkat atau aktuator putar (motor) yang dirancang dengan sistem kontrol umpan balik loop tertutup (servo), sehingga dapat di set-up atau di atur untuk menentukan dan memastikan posisi sudut dari poros output motor. motor servo merupakan perangkat yang terdiri dari motor DC, serangkaian gear, rangkaian kontrol dan potensiometer. Serangkaian gear yang melekat pada poros motor DC akan memperlambat putaran poros dan meningkatkan torsi motor servo, sedangkan potensiometer dengan perubahan resistansinya saat motor berputar berfungsi sebagai penentu batas posisi putaran poros motor servo.
Gambar 2.4. Motor Servo

Gambar 2.5. Komponen Motor Servo

Ada dua jenis motor servo, yaitu motor servo AC dan DC. Motor servo AC lebih dapat menangani arus yang tinggi atau beban berat, sehingga sering diaplikasikan pada mesin-mesin industri. Sedangkan motor servo DC biasanya lebih cocok untuk digunakan pada aplikasi-aplikasi yang lebih kecil. Dan bila dibedakan menurut rotasinya, umumnya terdapat dua jenis motor servo yang dan terdapat di pasaran, yaitu motor servo rotation 180⁰ dan servo rotation continuous.
  • Motor servo standard (servo rotation 180⁰) adalah jenis yang paling umum dari motor servo, dimana putaran poros outputnya terbatas hanya 90⁰ kearah kanan dan 90⁰ kearah kiri. Dengan kata lain total putarannya hanya setengah lingkaran atau 180⁰.
  • Motor servo rotation continuous merupakan jenis motor servo yang sebenarnya sama dengan jenis servo standard, hanya saja perputaran porosnya tanpa batasan atau dengan kata lain dapat berputar terus, baik ke arah kanan maupun kiri.

Prinsip kerja motor servo:

      Motor servo dikendalikan dengan memberikan sinyal modulasi lebar pulsa (Pulse Wide Modulation / PWM) melalui kabel kontrol. Lebar pulsa sinyal kontrol yang diberikan akan menentukan posisi sudut putaran dari poros motor servo. Ketika lebar pulsa kendali telah diberikan, maka poros motor servo akan bergerak atau berputar ke posisi yang telah diperintahkan, dan berhenti pada posisi tersebut dan akan tetap bertahan pada posisi tersebut. Jika ada kekuatan eksternal yang mencoba memutar atau mengubah posisi tersebut, maka motor servo akan mencoba menahan atau melawan dengan besarnya kekuatan torsi yang dimilikinya (rating torsi servo). Namun motor servo tidak akan mempertahankan posisinya untuk selamanya, sinyal lebar pulsa kendali harus diulang setiap 20 ms (mili detik) untuk menginstruksikan agar posisi poros motor servo tetap bertahan pada posisinya.


d. LDR (datasheet)

     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.
Gambar 2.6. Sensor LDR

Grafik Sistem Sensor LDR
1. Data Sheet
Gambar 2.7. Grafik Respon Sistem Sensor LDR Data Sheet

2. Percobaan
Gambar 2.8. Grafik Respon Sistem Sensor LDR Percobaan 

Dari Grafik dapat disimpulkan bahwa besarnya hambatan atau resistansi dari sensor ldr dipengaruhi oleh intensitas cahaya yang diberikan, dan dapat dilihat bahwa semakin besar intensitas cahaya maka nilai resistansinya akan semakin kecil dan begitu sebaliknya.


e. Solar Panel
Gambar 2.9. Panel Surya

Panel surya berfungsi untuk melewati efek fotolistrik dimana bahan-bahan tertentu menciptakan aliran listrik saat matahari bersinar di atasnya. Panel surya sendiri terdiri dari kristal silikon di mana setiap setengah didopin menjadi dopan yang berbeda untuk menghasilkansebuah semikonduktor. Ketika matahari muncul di permukaan, panelsurya menyediakan energi yang dibutuhkan untuk semikonduktoruntuk menghasilkan arus searah (DC).


3. Rangkaian Simulasi dan Alat [Kembali]

   
Gambar 3.1. Rangkaian Simulasi Percobaan

Gambar 3.2. Rangkaian Simulasi Sederhana

Gambar 3.3. Rangkaian Alat


4.  Prinsip Kerja [Kembali]

              Sun Tracker ini menggunakan 4 buah sensor LDR dan 2 buah motor servo , dimana 2 buah sensor akan diletakkan horizontal dan 2 buah lagi diletakkan vertikal. jadi sesuai dengan cara kerja nya ldr akan memiliki resistansi yang kecil jika menerima banyak cahaya dan resistansinya akan membesar jika cahaya minimum. output dari sensor LDR ini akan diinisialisasikan sebagai input bagi arduino yaitu pada pin A1,A2,A3 dan A4. 
               input tadi akan dprogram , jika cahaya pada LDR 1>LDR2 pada horizontal maka motor servo satu akan mengarah pada sisi kiri dan begitu sebaliknya  sehingga motor akan bergerak secara horizontal . untuk sisi vertikal jika cahaya pada  LDR 3 >LDR 4 maka motor servo akan bergerak ke arah atas atau bergerak secara vertikal. proses perpindahan ini akan di tampilkan pada lcd , seperti "geser ke kanan" , "geser ke atas" dan sebagainya


5.  Listing Program dan Flow Chart [Kembali]

a. Listing Program
    #include <Servo.h>       // library untuk motor servo
    #define pinp 13              //inisialisai pin 13 sebagai pinp (sebagai sumber)
  
    Servo horizontal;        //pendeklarasian servo horizontal
    int pos = 90;              // posisi awal
    int sens1 = A0;          // LRD 1 pin
    int sens2 = A1;          //LDR 2 pin
    int tolerance = 2;       //toleransi pergeseran servo horizontal
  
    Servo vertikal;           //pendeklarasian servo vertikal
    int pos2 = 90;           // posisi awal
    int sens3 = A2;         // LRD 3 pin
    int sens4 = A3;         //LDR 4 pin
    int tolerance2 = 2;     //toleransi pergeseran servo vertikal

    void setup()
    {
      pinMode(pinp,OUTPUT);          // deklarasi pin p sebagai output
      horizontal.attach(9);                    // pin servo horizontal
      vertikal.attach(10);                     // pin servo vertikal
      pinMode(sens1, INPUT);         // deklarasi pin sens1  sebagai input
      pinMode(sens2, INPUT);         // deklarasi pin sens2 sebagai input
      pinMode(sens3, INPUT);        // deklarasi pin sens3 sebagai input
      pinMode(sens4, INPUT);        // deklarasi pin sens4 sebagai input
      horizontal.write(pos);               // servo horizontal menjalankan posisi awal
      vertikal.write(pos2);                 // servo vertikal menjalankan posisi awal
      delay(100);                              // delay pengaturan posisi awal
    }
    
    void loop()
    {
      digitalWrite(pinp,HIGH);             // pin p diberikan output high (5V)
      int val1 = analogRead(sens1);     // inisialisasi val1 sebagai pembacaan sens1
      int val2 = analogRead(sens2);     // inisialisasi val2 sebagai pembacaan sens2
      int val3 = analogRead(sens3);     // inisialisasi val3 sebagai pembacaan sens3
      int val4 = analogRead(sens4);     // inisialisasi val4 sebagai pembacaan sens4

// pengarturan horizontal  
      if((abs(val1 - val2) <= tolerance) || (abs(val2 - val1) <= tolerance))   // pengaturan agar hasil pembacaan  harus kecil sama dengan toleransi
      } else {  
        if(val1 > val2)                        // jika hasil val1>val2
        {
          pos = --pos                        //motor servo akan bergeser ke kiri
        }
        if(val1 < val2)                      // jika hasil val1<val2
        {
          pos = ++pos;                     //motor servo akan bergeser ke kanan
        }
      }

      if(pos > 180) { pos = 180; }   // menengaskan toleransi jika pos>180 maka akan dianggap pos=180
      if(pos < 0) { pos = 0; }           // menengaskan toleransi jika pos<0 maka akan dianggap pos=0
    
      horizontal.write(pos);                // servo bergerak sesuai posisi
      delay(60);                                // delay
    
// pengaturan vertikal
      if((abs(val3 - val4) <= tolerance2) || (abs(val4 - val3) <= tolerance2)) { // pengaturan agar hasil pembacaan  harus kecil sama dengan toleransi

      } else {  
        if(val3 > val4)                        // jika hasil val3>val4
        {
          pos2 = --pos2;                    //motor servo akan bergeser ke bawah
        }
        if(val3 < val4)                        // jika hasil val3<val4
        {
          pos2 = ++pos2;                  //motor servo akan bergeser ke bawah
        }
      }
      if(pos2 > 180) { pos2 = 180; }   // menengaskan toleransi jika pos>180 maka akan dianggap pos=180
      if(pos2 < 0) { pos2 = 0; }            // menengaskan toleransi jika pos<0 maka akan dianggap pos=0
      vertikal.write(pos2);                    // servo bergerak sesuai posisi
      delay(60);                                   // delay
    }
b. Flow Chart
Gambar 5.1. Flow Chart Sistem

Gambar 5.2. Flow Chart Setup Arduino

Gambar 5.3. Flow Chart Looping Rangkaian

6.  Video [Kembali]

a. Video Rangkaian Simulasi
Video 6.1. Rangkaian Simulasi

b. Video Rangkaian Alat
Video 6.2. Rangkaian Alat

c. Video Listing Program
Video 6.3. Listing Program

7.  Link Download [Kembali]

Rangkaian Simulasi Download >>>DISINI!!!<<<
Listing Program Download >>>DISINI!!!<<<
Video Rangkaian Simulasi Download >>>DISINI!!!<<<
Video Rangkaian Alat Download >>>DISINI!!!<<<
Video Listing Program Download >>>DISINI!!!<<<
File HTML Download >>>DISINI!!!<<<

Tidak ada komentar:

Posting Komentar