Tahap 1

Kontrol Open Loop + Grafik PWM

Pada Tahap 1 ini, teman-teman akan dapat membuat 3 hal berikut ini:
  1. Rangkaian Proteus.
    • Rangkaian Proteus di sini terdiri dari Arduino (ATmega328P), driver motor IC L293D, Battery 12V dan Motor-Enkoder serta Compim untuk port komunikasi serial.
  2. Program Arduino.
    • Program Arduino di sini untuk menerima data nilai PWM dari komunikasi serial, yang digunakan untuk mengontrol Motor DC (Motor-Encoder).
  3. Program LabVIEW.
    • Program LabVIEW di sini untuk mengirimkan nilai PWM melalui komunikasi serial ke Arduino dan menampilkan nilai PWM tersebut dalam grafik.
Untuk membuat ketiga hal di atas, berikut ini langkah-langkahnya:
1. Buka software Proteus. Apabila teman-teman belum menginstal software Proteus, silahkan lihat di bagian Software.

2. Ambil 5 komponen berikut ini: Compim, ATmega328P, L293D, Battery dan Motor-Encoder, kemudian tempatkan seperti gambar berikut ini:
 

3. Hubungkan masing-masing komponen seperti gambar rangkaian di atas. Rangkaian di atas akan digunakan untuk seluruh tahapan. Simbol segitiga merupakan simbol untuk Power 5V, yang dapat diambil dari Terminals Mode. Untuk mudahnya, teman-teman dapat mengunduh file Proteus rangkaian di atas di link ini: file_Proteus

4. Berikutnya, buka software IDE Arduino. Ketik program berikut ini:

void setup() {
  Serial.begin(9600);
  pinMode(9,OUTPUT);
  pinMode(10,OUTPUT);
}
void loop() {
}
void serialEvent(){
  while(Serial.available()){
    int a=Serial.parseInt();
    int b=Serial.parseInt();
    if(Serial.read() == char(13)){
      analogWrite(9,a);
      analogWrite(10,b);
    }
  }
}


Keterangan program:
Program Arduino di atas akan menghasilkan sinyal PWM di kaki D9 dan D10, sesuai dengan nilai PWM yang diterima dari komunikasi serial. Kedua nilai PWM yang diterima tersebut dipisahkan dengan koma dan diakhiri dengan karakter Carriage Return (ASCII 13).

5. Teman-teman dapat mengunduh program Arduino di atas di link ini: file_Arduino_1

6.  Agar rangkaian di Proteus dapat disimulasikan, komponen Arduino (ATmega328P) harus diisi dengan file Hex hasil kompilasi program Arduino di atas. Untuk itu, di software IDE Arduino, tekan tombol Verify, tombol bergambar centang, di Toolbar untuk kompilasi (sebelum kompilasi, pastikan pilihan Board ke Arduino Uno atau Arduino Nano di menu Tools). Seharusnya, setelah pesan Done Compilling muncul, di kotak bawah akan muncul keterangan lokasi file Hex, seperti gambar berikut ini. Apabila tidak terlihat keterangan lokasi file Hex, buka menu File, pilih Preferences, dan beri tanda centang pada kotak Compilation, di baris Show verbose output during.


7. Setelah keterangan lokasi file Hex muncul, salin keterangan tersebut dengan memilih dan menekan tombol Control + C, untuk meng-copy. Kemudian klik 2 kali pada komponen ATmega328P di Proteus, dan isikan keterangan lokasi file Hex di kolom Program File, seperti gambar berikut ini. Di samping isi Program File, atur juga kolom CLKDIV8 = Unprogrammed, CKSEL Fuses = Ext Clock, dan Clock Frequency = 16MHz, seperti terlihat pada gambar berikut ini.

8.  Setelah pengaturan di komponen Arduino (ATmega328P) selesai, buka program LabVIEW. Apabila teman-teman belum menginstal software LabVIEW, silahkan lihat di bagian Software. Di jendela awal LabVIEW, pilih New VI atau tekan tombol Control dan N. Berikutnya tekan tombol Control dan T untuk membuat jendela Front Panel dan Block Diagram berdampingan, seperti gambar berikut ini:

9. Berikutnya, di Front Panel, klik kanan halaman Front Panel untuk memunculkan Palet Controls. Di Palet Controls, di kategori Modern, di Numeric, pilih Vertical Pointer Slide dan tempatkan di halaman. Klik kanan objek Vertical Pointer Slide, pilih Visible Items, pilih Digital Display. Kemudian munculkan kembali Palet Controls, pilih Waveform Chart, di kategori Modern, di  Graph. Klik kanan objek Waveform Chart ini, pilih Visible Items, pilih Digital Display. Untuk menuliskan teks "KONTROL PWM" di Front Panel, klik 2 kali lokasi yang akan diberi tulisan, dan ketik teks tersebut.

10. Di Block Diagram, klik kanan halaman untuk memunculkan Palet Functions. Di Palet Functions, ambil While Loop, di kategori Programming, di Structures. Buat kotak While Loop melingkupi icon Slide dan Waveform Chart. Kemudian tempatkan icon VISA Configure Serial Port, VISA Write dan VISA Clear, yang diambil dari kategori Instrument I/O, di Serial. Tempatkan ketiga icon seperti gambar berikut dan hubungkan ketiganya. 

11. Berikutnya, buat icon Slide memiliki tipe data Integer 16 bit, dengan nilai maksimum 255 dan nilai minimum -255. Untuk membuat hal itu, di Front Panel, klik 2 kali angka 10 di objek Slide, dan ganti dengan angka 255. Kemudian klik 2 kali angka 0, dan ganti dengan angka -255. Kemudian klik kanan objek Slide, pilih Representation, pilih I16, maka icon Slide berubah warna dari oranye menjadi biru.

12. Berikutnya, agar bisa membuat Motor-Encoder di Proteus dapat berputar cw (searah jarum jam) dan ccw (berlawanan jarum jam), diperlukan 2 buah PWM, yang nilainya berasal dari Slide. Ketika nilai Slide 255, maka PWM pertama bernilai 255 dan PWM kedua bernilai 0. Ketika nilai Slide 0, maka PWM pertama dan kedua bernilai 0. Ketika nilai Slide -255, maka PWM pertama bernilai 0 dan PWM kedua bernilai 255. Untuk membuat hal ini, tambahkan sebuah icon Greater Than 0, sebuah icon Absolute Value, 2 buah icon Select, dan sebuah Numeric Constant (angka 0), dan hubungkan sperti gambar berikut. Kemudian tambahkan 2 buah icon Number to Decimal String untuk mengubah nilai integer kedua PWM menjadi bertipe String, karena untuk pengiriman data melalui komunikasi serial, datanya harus bertipe String. Agar format data String ini dapat diterima dengan baik oleh Arduino, data harus dipisahkan dengan koma, dan diakhiri dengan karakter Carriage Return (CR = ASCII 13).Untuk membuat karakter koma, ambil String Constant di Palet Functions, di kategori String, dan kemudian ketik koma di dalamnya. Sebuah icon Concatenate String perlu ditambahkan untuk menyatukan nilai kedua PWM dengan sisipan koma dan akhiran Enter, yang kemudian diteruskan ke input VISA Write.


13. Agar struktur While Loop dapat dihentikan, tambahkan tombol Stop di terminal Loop Condition, dengan cara meng-klik kanan input dari terminal Loop Condition, pilih Create, pilih Control, maka akan muncul tombol Stop, di Block Diagram dan juga di Front Panel. Berikutnya, agar nama Port COM dapat dimunculkan di Front Panel (agar pengguna dapat memilih Port COM), klik kanan pada input VISA Configure Serial Port, dan pilih Create, pilih Control. Seharusnya akan muncul daftar nama Port COM yang tersedia di VISA resource name di Front Panel. Apabila daftar nama Port COM ini tidak muncul, ada 2 hal yang bisa menjadi penyebabnya, yang pertama adalah karena driver VISA belum diinstal. Apabila driver VISA sudah diinstal, maka hal kedua yang menjadi penyebabnya adalah karena belum terinstalnya pasangan COM. Untuk menginstal pasangan COM ini, silahkan teman-teman menggunakan software VSPD atau com0com untuk membuat emulator atau pasangan COM (silahkan mengunduh di bagian software). Kemudian agar While Loop ini tidak menyita resource dari komputer, silahkan menambahkan delay berupa icon Wait(ms) dengan input 100 (= 100 milidetik).


14. Agar tampilan Grafik Waveform Chart menjadi lebih jelas, maka buat warna latar grafik dari hitam menjadi putih, dengan cara klik kanan halaman Front Panel sambil menekan tombol Shift, hingga Palet Tool muncul, kemudian klik pada kuas agar pointer berubah menjadi kuas, dan kemudian sentuhkan kuas pada latar Grafik, dan klik kanan untuk memunculkan palet warna. Pilih warna putih, maka latar Grafik akan menjadi berwarna putih. Begitu pula untuk membuat frame Grafik dari warna abu-abu menjadi transparan, klik kanan pada frame tersebut agar muncul palet warna, dan kemudian pilih huruf T yang berada di pojok kanan atas, maka warna frame akan menjadi transparan. Setelah selesai, agar pointer bisa berubah kembali ke semula, munculkan kembali Palet Tool dengan meng-klik kanan halaman Front Panel dan menekan tombol Shift, dan klik pada LED di bagian atas Palet Tool agar warna LED menjadi hijau kembali (= mode otomatis bekerja kembali). 


15. Berikutnya, klik kanan Grafik Waveform Chart, pilih Properties, pilih Tab Plots. Pada Plot 0, pilih tebal garis grafik di baris ketiga, dan pilih warna biru.  


16. Pilih Tab Scales, pada pilihan Time (X-Axis), ganti nama di kolom Name dari Time menjadi Waktu (detik), dan hilangkan centang pada Autoscale, isi nilai Minimum = 0 dan Maximum = 15, dan buat Scaling Factors Offset = 0 dan Multiplier = 0.1. Mengapa nilai Multiplier dibuat 0.1? Karena mengikuti nilai delay Wait(ms) yang sebesar 100 milidetik, sehingga agar grafik bisa menampilkan data dalam satuan detik, skala di sumbu X nya perlu dikalikan dengan 0.1. Terakhir, agar muncul grid atau jaring-jaring pada grafik, ubah warna Major Grid dari T (transparan) menjadi warna abu-abu muda (warna background).  


17. Masih di Tab Scales, pilih Amplitude (Y-Axis), hilangkan centang pada Show scale label, dan centang pada Autoscale, dan isi Minimum = -255 dan Maximum = 255, dan ubah warna Major Grid dari T (transparan) menjadi warna abu-abu muda (warna background). Klik OK, maka Grafik Waveform Chart akan memiliki grid atau jaring-jaring dengan sumbu Y dari -255 hingga 255, dan sumbu X dari 0 hingga 15.


18. Agar sumbu X dan sumbu Y pada Grafik Waveform Chart menampilkan nilai skala yang detil, maka klik kanan pada Grafik, pilih X Scale, pilih Style, pilih tampilan yang paling detil. Ulangi untuk sumbu Y, pilih Y Scale, pilih Style dan kemudian pilih tampilan yang paling detil.


19. Berikut ini tampilan program LabVIEW Kontrol Tahap 1. Teman-teman dapat mengunduh program LabVIEW Kontrol PWM ini di link ini: file_LabVIEW_1


20. Untuk menjalankan simulasi, buat Proteus dijalankan lebih dulu, baru menjalankan program LabVIEW. Sebelum menjalankan Proteus, buat komponen Compim, di kolom Physical Port berisi nama pasangan COM (yang berpasangan dengan COM di LabVIEW), dan Physical Baud Rate serta Virtual Baud Rate berisi 9600.


21. Setelah Compim berisi nilai yang sesuai, klik pada tombol Play di Proteus. Di LabVIEW, sebelum menjalankan LabVIEW, pilih nama COM yang berpasangan dengan COM di Compim dari daftar nama COM yang muncul. Setelah dipilih, jalankan LabVIEW dengan menekan tombol Run. 


22. Gerakkan Slide di LabVIEW naik turun, maka Motor-Encoder di Proteus akan berputar cw atau ccw mengikuti posisi Slide.


23. Untuk lebih jelas mengenai pembuatan Tahap 1 ini dan hasilnya, teman-teman dapat melihat video youtube berikut ini: 


24. Sampai di sini pembuatan simulasi Kontrol Tahap 1 selesai. 

25. File-file program yang telah dihasilkan di Tahap 1 ini dapat diunduh di link berikut ini:

6 komentar: