• Tidak ada hasil yang ditemukan

TA : Kendali Pid Dan Logika Fuzzy Untuk Optimalisasi Pergerakan Mobile Robot.

N/A
N/A
Protected

Academic year: 2017

Membagikan "TA : Kendali Pid Dan Logika Fuzzy Untuk Optimalisasi Pergerakan Mobile Robot."

Copied!
90
0
0

Teks penuh

(1)

TUGAS AKHIR

Nama : Mohammad Nasrul Hafidz Nim : 08410200065

Nama : Muhammad Fahmi Ibnu Mas’ud

Nim : 08410200074

Program : S1 (Strata Satu) Jurusan : Sistem Komputer

SEKOLAH TINGGI

MANAJEMEN INFORMATIKA & TEKNIK KOMPUTER SURABAYA

2012

STIKOM

(2)

vii

yang diperlombakan adalah jenis mobile robot yang berjalan berdasarkan garis di lapangan. Robot berjalan dengan menggunakan sensor garis. Kendala yang sering dihadapi ketika menggunakan sensor garis adalah intensitas cahaya dari lampu sorot yang masuk ke dalam photodioda sehingga menyebabkan sensor terganggu. Sensor alternatif yang dapat digunakan adalah rotary encoder. Dengan sensor ini mobilitas robot dapat dikendalikan berdasarkan jumlah putaran roda kanan dan kiri robot, dengan mengetahui jumlah putaran motor, jarak dan posisi yang sudah ditempuh dan kecepatan robot dapat diketahui.

Dengan menggunakan jarak dan waktu sebagai input, dibuat sistem fuzzy

untuk mengatur kecepatan robot agar jarak yang sudah ditentukan dapat ditempuh dengan waktu yang diinginkan. Output kecepatan dari fuzzy akan diolah oleh PID

(Proportional Integral Derivative) untuk mengatur kecepatan putaran motor

kanan dan kiri dengan menggunakan sinyal PWM (Pulse With Modulation). Dengan kedua metode tersebut putaran roda robot dapat berjalan selaras dan sama dengan kecepatan yang sudah dikirimkan Master ke Slave. Namun dalam penelitian penulis, hasil PID didapatkan bahwa respontime motor kanan dapat mencapai setpoint dalam waktu 1 detik sedangkan motor kiri ditempuh dalam waktu 1.5 detik dengan nilai Kp = 0.5, Ki = 0.001, Kd = 0.001. Untuk hasil fuzzy

dengan masukan jarak 12 meter dan waktu 12 detik didapat kecepatan 850 rpm. Untuk penggabungan seluruh sistem terjadi kegagalan dikarenakan kecepatan pengiriman data berupa rpm dari proses fuzzy lebih cepat sehingga tidak dapat diproses PID.

STIKOM

(3)

x

KATA PENGANTAR ... viii

DAFTAR ISI ... x

DAFTAR TABEL ... xiv

DAFTAR GAMBAR ... xv

BAB I ... 1

PENDAHULUAN ... 1

1.1 Latar Belakang Masalah ... 1

1.2 Perumusan Masalah ... 2

1.3 Pembatasan Masalah ... 2

1.4 Tujuan ... 2

1.5 Sistematika Penulisan... 3

BAB II ... 5

LANDASAN TEORI ... 5

2.1 Fuzzy Logic ... 5

2.1.1 Metode Mamdani ... 5

2.1.2 Metode Sugeno ... 6

2.1.3 Metode Tsukamoto... 7

2.2 Metode Kotrol PID (ProportionalIntegralDerivative ) ... 8

2.2.1 Tuning PID ... 9

2.2.2 Metode Ziegler-Nichols ... 9

STIKOM

(4)

2.2.3 Metode Cohen-Coon ... 11

2.3 Komunikasi SPI (SerialPheripheralInterface) ... 12

2.4 Microcontroller ... 13

2.4.1 Microcontroller ATmega16 ... 14

2.4.2 Microcontroller ATmega8 ... 20

2.5 LCD (LiquidCrystalDisplay) ... 24

2.6 Keypad... 28

2.7 DriverMotor L298 ... 29

2.7.1 Fungsi-fungsi Kaki (Pin) ... 30

2.8 Motor DC ... 32

2.9 Rotary encoder ... 37

BAB III ... 39

METODE PENELITIAN ... 39

3.1 Perancangan Perangkat Keras ... 41

3.1.1 Perancangan Mekanik Robot ... 41

3.1.2 Perancangan MinimumSystem ... 42

3.1.3 Perancangan DriverMotor L298 ... 47

3.1.4 Program kendali Fuzzy ... 48

3.1.5 Kontroler PID (ProportionalIntegralDerivative) ... 56

BAB IV ... 60

PENGUJIAN SISTEM ... 60

4.1 Pengujian Minimumsystem ... 60

4.1.1 Tujuan ... 60

STIKOM

(5)

4.1.2 Alat yang Digunakan... 60

4.1.3 Prosedur pengujian ... 60

4.1.4 Hasil Pengujian ... 61

4.2 Pengujian Sensor OptoCoupler ... 62

4.2.1 Tujuan ... 62

4.2.2 Alat yang Digunakan... 63

4.2.3 Prosedur Pengujian ... 63

4.2.4 Hasil Pengujian ... 63

4.3 Pengujian Kontrol PID tanpa Belt... 64

4.3.1 Tujuan ... 64

4.3.2 Alat yang Digunakan... 64

4.3.3 Prosedur Pengujian ... 65

4.3.4 Hasil Pengujian ... 65

4.4 Pengujian Kontrol PID dengan Belt ... 67

4.4.1 Tujuan ... 67

4.4.2 Alat yang Digunakan... 67

4.4.3 Prosedur Pengujian ... 67

4.4.4 Hasil Pengujian ... 68

4.5 Pengujian Kontrol PID robot berjalan ... 69

4.5.1 Tujuan ... 69

4.5.2 Alat yang Digunakan... 70

4.5.3 Prosedur Pengujian ... 70

4.5.4 Hasil Pengujian ... 71

STIKOM

(6)

4.6 Pengujian FuzzyLogic ... 72

4.6.1 Tujuan ... 72

4.6.2 Alat yang Digunakan... 73

4.6.3 Prosedur Pengujian ... 73

4.6.4 Hasil Pengujian ... 73

4.7 Pengujian Sistem Keseluruhan ... 75

4.7.1 Tujuan ... 75

4.7.2 Alat yang Digunakan... 75

4.7.3 Prosedur Pengujian ... 75

4.7.4 Hasil Pengujian ... 75

BAB V ... 78

PENUTUP ... 78

5.1 Kesimpulan ... 78

5.2 Saran ... 78

DAFTAS PUSTAKA ... 80

LAMPIRAN ... 81

STIKOM

(7)

xiv

Tabel 2.2 Penalaan parameter PID dengan metode Cohen-Coon ... 12

Tabel 2.3 Konfigurasi pin pada komunikasi SPI ... 13

Tabel 2.4Konfigurasi pinport ... 18

Tabel 2.9 Instruksi-instruksi dalam pengoperasian LCD ... 26

Tabel 2.10 Keterangan dari fungsi S/C dan R/L ... 28

Tabel 3.1 Pin I/O Minimum systemMaster ... 45

Tabel 3.2 Pin I/O Minimum systemslave ... 47

Tabel 3.1 Basis aturan kendali fuzzy ... 54

Tabel 4.1 Hasil pengujian ... 64

Tabel 4.2. Hasil pengujian kontrol PID ... 65

Tabel 4.3. Hasil pengujian kontrol PID ... 68

Tabel 4.4. Hasil pengujian kontrol PID ... 71

Tabel 4.5 Hasil pengujian fuzzy ... 73

Tabel 4.6 Hasil pengujian keseluruhan ... 76

STIKOM

(8)

xv

DAFTAR GAMBAR

Halaman

Gambar 2.1 Proses defuzzification ... 6

Gambar 2.2 Inference dengan menggunakan metode Tsukamoto ... 8

Gambar 2.3 Kurva respon berbentuk s ... 10

Gambar 2.4 Kurva respon quarter amplitude decay ... 11

Gambar 2.6 Microcontroller ATmega16 ... 16

Gambar 2.7 Blok diagram timer / counter ... 19

Gambar 2.8 Timing diagram timer/counter, tanpa prescaling ... 19

Gambar 2.9 Blok diagram ATmega8 ... 21

Gambar 2.10 Konfigurasi pin ATmega8 ... 23

Gambar 2.11 Koneksi AVCC dengan VCC melalui low-pass filter ... 24

Gambar 2.12 LCD 2x16 karakter ... 25

Gambar 2.13 Keypad 3x4 ... 29

Gambar 2.16 Motor DC Sederhana ... 33

Gambar 2.17 Medan magnet yang membawa arus mengelilingi konduktor ... 33

Gambar 2.18 Konduktor Berbentuk U ... 34

Gambar 2.19 Reaksi garis Fluks ... 34

Gambar 2.20 Prinsip kerja motor DC ... 36

Gambar 2.21 Rotary encoder ... 38

Gambar 3.1 Diagram blok sistem keseluruhan ... 40

Gambar 3.2 Desain robot keseluruhan ... 42

Gambar 3.3 Diagram blok rancangan Minimum system keseluruhan ... 44

STIKOM

(9)

xvi

Gambar 3.2 Rangkaian skematik minimum systemMaster ... 44

Gambar 3.3 Rangkaian skematik Minimum systemslave ... 46

Gambar 3.4 Rangkaian driver motor L298 ... 48

Gambar 3.5 Flowchart Logika Fuzzy ... 49

Gambar 3.6 Fungsi keanggotaan jarak ... 51

Gambar 3.7 Fungsi keanggotaan waktu ... 52

Gambar 3.8 Fungsi keanggotaan keluaran sinyal control ... 55

Gambar 3.9 Flowchart Kontrol PID ... 58

Gambar 4.1. Tampilan chip signature ... 62

Gambar 4.2 Pengujian rotary encoder dengan penghalang ... 63

Gambar 4.3 pengujian rotary encoder dengan tidak menggunakan penghalang .. 64

Gambar 4.4 Pengujian PID pada motor DC dengan setpoint 1200 rpm ... 66

Gambar 4.5 Pengujian PID pada motor DC dengan setpoint 1000 rpm ... 66

Gambar 4.6 Pengujian PID menggunakan Belt dengan Setpoint 1000 Rpm. ... 68

Gambar 4.7 Pengujian PID menggunakan belt dengan setpoint 800 rpm ... 69

Gambar 4.8 Pengujian PID pada saat robot berjalan setpoint 1100 rpm. ... 71

Gambar 4.9 Pengujian PID pada saat robot berjalan setpoint 900 rpm. ... 72

Gambar 4.10 Pengujian fuzzylogic dengan input 10 meter dalam 10 detik ... 74

Gambar 4.11 Pengujian fuzzylogic dengan input 12 meter dalam 12 detik ... 74

Gambar 4.12 Pengujian sistem keseluruhan ... 76

Gambar 4.13 Pengujian sistem keseluruhan ... 77

STIKOM

(10)

1

1.1 Latar Belakang Masalah

Di Indonesia perkembangan teknologi robotika sangat berkembang pesat. Salah satu faktor yang menjadi parameter suatu negara dikategorikan sebagai negara maju adalah teknologinya. Untuk menunjang hal tersebut, banyak sekali perlombaan-perlombaan robotika yang diperlombakan dari mulai tingkat SD (Sekolah Dasar) sampai tingkat Perguruan Tinggi.

Pada umumnya, robot yang dibuat menggunakan garis lapangan sebagai panduan (line follower), supaya robot dapat mengikuti garis lapangan, robot dilengkapi dengan sensor garis, yaitu sensor photodioda. Sensor photodiode

adalah sensor yang tegangan outputnya berubah sesuai dengan intensitas cahaya yang diterimanya. Penggunaan sensor photodioda di perlombaan robot, pada umumnya memiliki permasalahan, yaitu lampu sorot yang digunakan sangat terang sehingga mengganggu sensor. Untuk mengatasi masalah tersebut, sensor alternatif yang dapat digunakan pada mobile robot dalam perlombaan robot tersebut adalah rotary encoder. Rotary encoder ini dapat digunakan untuk menghitung putaran motor, dengan demikian jarak dan posisi yang sudah ditempuh dapat diketahui.

Dengan menggunakan jarak dan waktu sebagai input, dibuat sistem fuzzy

untuk mengatur kecepatan robot agar jarak yang sudah ditentukan dapat ditempuh dengan waktu yang diinginkan. Output kecepatan dari fuzzy akan diolah oleh

STIKOM

(11)

pengendali PID (Proportional Integral Derivative) untuk mengatur kecepatan putaran motor kanan dan kiri dengan menggunakan sinyal PWM (Pulse Width

Modulation).

1.2 Perumusan Masalah

Berdasarkan latar belakang masalah di atas dapat dirumuskan masalah sebagai berikut :

1. Bagaimana merancang sistem fuzzy untuk optimalisasi kecepatan sesuai dengan jarak dan waktu tempuh robot.

2. Bagaimana merancang pengendali PID yang digunakan untuk mengendalikan kecepatan putaran motor pada mobilerobot.

1.3 Pembatasan Masalah

Dalam perancangan dan pembuatan alat ini, terdapat beberapa pembatasan masalah, antara lain :

1. Perancangan dan pembuatan mobile robot ini menggunakan minimum system

AVR (Alf and Vegard’s Risc processor) yang diproduksi oleh ATMEL. 2. Proses kecepatan robot menggunakan fuzzy logic.

3. Proses pengendalian putaran motor pada mobile robot menggunakan metode kontrol PID.

4. Sistem yang dikontrol adalah motor DC 12V.

1.4 Tujuan

Adapun tujuan dari pembuatan kendali mobile robot adalah sebagai berikut:

STIKOM

(12)

1. Untuk merancang sistem fuzzy untuk optimalisasi kecepatan sesuai dengan jarak dan waktu tempuh robot.

2. Untuk merancang pengendali PID yang digunakan untuk mengendalikan kecepatan putaran motor pada mobilerobot.

1.5 Sistematika Penulisan

Sistematika penulisan buku tugas akhir ini terdiri dari lima bab, dimana dalam tiap bab terdapat beberapa sub-bab. Ringkasan uraian dari tiap bab tersebut adalah sebagai berikut :

BAB I Pendahuluan

Pada bab ini menjelaskan tentang latar belakang masalah, rumusan masalah, batasan masalah, tujuan, dan sistematika penulisan buku Tugas Akhir.

BAB II Landasan Teori

Pada bab ini menjelaskan tentang beberapa teori tentang komponen dan metode yang digunakan dalam pengerjaan Tugas Akhir ini. Diantaranya adalah metode fuzzy logic, metode kontrol PID, komunikasi SPI (Serial Pheripheral Interface) microcontroller

AVR, LCD 2x16 (Liquid Cristal Display), keypad 4x4, driver motor L298.

BAB III Metode Penelitian

Bab ini berisi tentang penjelasan penulis dalam merancang dan membuat perangkat keras dan perangkat lunak. Dalam bab ini juga menjelaskan tentang cara kerja dari perangkat keras, seperti

STIKOM

(13)

rangkaian yang digunakan pada mobile robot dan komunikasi antar

microcontroller.

BAB IV Pengujian Sistem

Bab ini berisi tentang pengujian terhadap metode yang digunakan yaitu metode fuzzy logic dan metode PID. Pengujian tersebut terbagi dalam dua pengujian yaitu pengujian metode fuzzy dan metode PID. Pengujian metode fuzzy meliputi pengujian jarak dan waktu input sama dengan jarak dan waktu pada output, sedangkan pengujian metode PID meliputi pengujian kestabilan pergerakan robot dengan mencari nilai konstanta Kp, Ki, dan Kd.

BAB V Penutup

Pada bab ini menjelaskan tentang kesimpulan dari Tugas Akhir yang telah dikerjakan dan saran-saran yang diberikan oleh penulis.

STIKOM

(14)

5

1.1 Fuzzy Logic

Fuzzy logic pertama kali dikenalkan kepada publik oleh Lotfi Zadeh

seorang profesor di University of California di Berkeley pada tahun 1965. Dasar

fuzzy logic adalah teori himpunan fuzzy. Pada teori himpunan fuzzy, peranan derajat keanggotaan sebagai penentu keberadaan elemen dalam suatu himpunan sangatlah penting. Nilai keanggotaan atau derajat keanggotaan atau membership function menjadi ciri utama dari penalaran dengan fuzzy logic tersebut.

Dalam banyak hal, fuzzy logic digunakan sebagai suatu cara untuk memetakan permasalahan dari input menuju ke output yang diharapkan. Terdapat beberapa metode fuzzy yang dikenal yaitu metode Mamdani, Sugeno, dan Tsukamoto.

1.1.1 Metode Mamdani

Metode Mamdani sering juga dikenal dengan nama metode Max-Min yang diperkenalkan oleh Ebrahim Mamdani pada tahun 1975. Dimana dalam memperoleh output, diperlukan 4 tahapan yaitu :

1. Pembentukan himpunan fuzzy.

Pada metode Mamdani, baik variable input maupun variableoutput dibagi menjadi satu atau lebih himpunan fuzzy.

2. Aplikasi fungsi implikasi (aturan).

Pada metode Mamdani, fungsi implikasi yang digunakan adalah min

STIKOM

(15)

3. Komponen aturan.

Tidak seperti penalaran monoton, apabila sistem terdiri dari beberapa aturan, maka inferensi diperoleh dari kumpulan dan korelasi antar aturan. Ada 3 metode yang digunakan dalam melakukan inferensi sistem fuzzy, yaitu : max, additive, dan probabilistik OR (probor).

4. Penegasan (Defuzzification).

Input dari proses defuzzification adalah suatu himpunan fuzzy yang

diperoleh dari komposisi aturan-aturan fuzzy, sedangkan output yang dihasilkan merupakan suatu bilangan pada domain himpunan fuzzy tersebut. Sehingga jika diberikan suatu himpunan fuzzy dalam range tertentu, maka harus dapat diambil suatu nilai crisp tertentu sebagai output seperti pada Gambar berikut.

Gambar 2.1 Proses defuzzification (Kusumadewi, 2010)

1.1.2 Metode Sugeno

Penalaran dengan metode Sugeno hampir sama dengan penalaran Mamdani, hanya saja output (konsekuen) sistem tidak berupa himpunan fuzzy, melainkan berupa konstanta atau persamaan linier. Metode ini dierkenalkan oleh

STIKOM

(16)

Takagi-Sugeno Kang pada tahun 1985, sehingga metode ini sering juga dinamakan dengan metode TSK.

Menurut Cox (1994), metode TSK terdiri dari 2 jenis yaitu : 1. Metode Fuzzy Sugeno orde-nol

secara umum bentuk model fuzzy Sugeno orde-nol adalah : IF (x1 is A1)*(x2 is A3)*(x3 is A3)*...*(xN is AN) THEN z = k

Dengan Ai adalah himpunan fuzzy ke-i sebagai anteseden, dan k adalah suatu

konstanta (tegas) sebagai konsekuen. 2. Metode Fuzzy Sugeno orde-satu

Secara umum bentuk model fuzzy Sugeno orde-satu adalah : IF (x1 is A1)*...*(xN is AN) THEN z = p1*x1 + ...+ pN*xN + q

Dengan Ai adalah himpunan fuzzy ke-i sebagai anteseden, dan pi adalah suatu

konstanta (tegas) ke-i dan q juga merupakan konstanta dalam konsekuen. Apabila komposisi aturan menggunakan metode Sugeno, maka

defuzzification dilakukan dengan cara mencari nila rata-ratanya.

1.1.3 Metode Tsukamoto

Pada metode Tsukamoto, setiap konsekuen pada aturan yang berbentuk

IF-Then harus dipresentasikan dengan suatu himpunan fuzzy dengan fungsi keanggotaan yang monoton (Gambar 2.2). Sebagai hasilnya, output hasil inferensi dari tiap-tiap aturan diberikan secara tegas (crisp) berdasarkan ᾳ-predikat (fire

strength). Hasil akhirnya diperoleh dengan menggunakan rata-rata terbobot

(Kusumadewi, 2010).

STIKOM

(17)

Gambar 2.2 Inference dengan menggunakan metode Tsukamoto (Kusumadewi, 2010)

1.2 Metode Kotrol PID (Proportional Integral Derivative )

Pengendali PID (Proportional Integral Derivative ) merupakan gabungan dari tiga sistem kendali yang bertujuan untuk mendapatkan keluaran dengan rise time yang tinggi dan galat yang kecil. Seperti yang kita ketahui bahwa sistem kendali proportional memiliki keunggulan yaitu rise time yang cepat tetapi sangat rentan dengan overshot/undershot, sistem kendali integral memiliki keunggulan untuk meredam galat, sedangkan sistem kendali derivative memiliki keunggulan untuk memperkecil delta error atau meredam overshot/undershot. PID berdasarkan implementasinya dibedakan menjadi analog dan digital. PID analog diimplementasikan dengan komponen elektronika resistor, capacitor, dan

operational amplifier, sedangkan PID digital diimplementasikan secara program.

STIKOM

(18)

PID digital pada dasarnya merupakan suatu proses dari suatu program yang dijalankan dengan menggunakan komputer. Dalam prosesnya nilai yang kita masukkan (setting point), dan nilai hasil pembacaan sensor saat ini (present value) diproses sehingga galat yang didapatkan sama dengan 0 (nol), atau nilai

setting point sama dengan present value. Untuk dapat mengimplementasikan

kendali PID pada sistem digital, maka PID harus diubah kedalam persamaan diskrit (Embedded Robotic, 2006).

1.2.1 Tuning PID

Aspek yang sangat penting dalam desain kendali PID ialah penentuan parameter kendali PID supaya sistem kalang tertutup memenuhi kriteria performansi yang diinginkan (Wicaksono, 2004). Adapun metode tuning kendali PID yang sudah banyak dan sering digunakan adalah Ziegler-Nichols dan Cohen-Coon.

2.2.2 Metode Ziegler-Nichols

Ziegler-Nichols pertama kali memperkenalkan metodenya pada tahun

1942. Metode ini memiliki dua cara yaitu metode osilasi dan kurva reaksi. Kedua metode ditujukan untuk menghasilkan respon sistem dengan lonjakan maksimum sebesar 25%. Metode kurva reaksi didasarkan terhadap reaksi sistem kalang terbuka. Plant sebagai kalang terbuka dikenai sinyal step function. Kalau plant

minimal tidak mengandung unsur integrator ataupun pole-pole kompleks, reaksi sistem akan berbentuk S. Gambar 2.3 menunjukkan kurva berbentuk S tersebut. Kelemahan metode ini terletak pada ketidakmampuannya untuk menangani plant

integrator maupun plant yang memiliki pole kompleks. Kurva berbentuk S

STIKOM

(19)

mempunyai dua konstanta, waktu mati (dead time) L dan waktu tunda T. Dari Gambar 2.3, terlihat bahwa kurva reaksi berubah naik setelah selang waktu L.

Gambar 2.3 Kurva respon berbentuk s (Wicaksono, 2004)

Sedangkan waktu tunda menggambarkan perubahan kurva setelah mencapai 66% dari keadaan mantapnya. Pada kurva dibuat suatu garis yang bersinggungan dengan garis kurva. Garis singgung itu akan memotong dengan sumbu absis dan garis maksimum. Perpotongan garis singgung dengan sumbu absis merupakan ukuran waktu mati, dan perpotongan dengan garis maksimum merupakan waktu tunda yang diukur dari titik waktu L. Tabel 2.1 merupakan rumusan penalaan parameter PID berdasarkan cara kurva reaksi.

Tabel 2.1. Penalaan parameter PID dengan metode kurva reaksi

Tipe

Kendali Kp Ti Td

P T/L ~ 0 PI 0,9 T/L L/0,3 0 PD PID 1,2 T/L 2L 0,5L

(Sumber : Wicaksono,2004)

STIKOM

(20)

2.2.3 Metode Cohen-Coon

Karena tidak semua proses dapat mentolerir keadaan osilasi dengan amplitudo tetap, Cohen-Coon berupaya memperbaiki metode osilasi dengan menggunakan metode quarter amplitude decay. Respon loop tertutup sistem, pada metode ini, dibuat sehingga respon berbentuk quarter amplitude decay. Quarter amplitude decay didefinisikan sebagai respon transien yang amplitudonya dalam periode pertama memiliki perbandingan sebesar seperempat (1/4), untuk lebih jelasnya dapat dilihat pada Gambar 2.4.

Gambar 2.4 Kurva respon quarter amplitude decay (Wicaksono, 2004)

Pada kendali proportional Kp ditala hingga diperoleh tanggapan quarter

amplitude decay, periode pada saat tanggapan ini disebut Tp dan parameter Ti dan

Td dihitung dari hubungan Kp dengan TP. Sedangkan penalaan parameter kendali

PID adalah sama dengan yang digunakan pada metode Ziegler-Nichols. Selain cara tersebut, metode Cohen-Coon ini bisa dihitung dengan aturan praktis yang parameter-parameter plant-nya diambil dari kurva reaksi yang terdapat pada Tabel 2.2.

STIKOM

(21)

Tabel 2.2 Penalaan parameter PID dengan metode Cohen-Coon

Tipe Kendali Kp Ti Td

P - - PI - PD -

PID

(Sumber : Wicaksono, 2004)

2.3 Komunikasi SPI (Serial Pheripheral Interface)

Microcontroller keluarga Atmel memiliki kemampuan untuk komunikasi

serial. Komunikasi SPI (Serial Pheripheral Interface) pada microcontroller ini berjalan ketika microcontroller Master mereset nilai pin SS (Slave Select). Kemudian microcontrollerMaster dan Slave menyiapkan data yang akan dikirim pada register mereka yaitu register SPDR, Setelah itu microcontroller Master

menghasilkan pulsa clock pada pin SCK untuk memulai komunikasi data. Pertukaran data telah dilakukan maka SPIF (Setting The End of Transmision Flag) akan diset, jika interrupt bit SPIE pada SPCR maka akan terjadi interrupt.

(22)

Gambar 2.5 Interkoneksi SPI Master-Slave (Saputra, 2010)

Gambar 2.5 menunjukkan interkoneksi antara microcontroller Slave dan

microcontrollerMaster. Di dalam Gambar 2.5 terlihat bahwa sinyak SCK dan SS

dikontrol Master dan pada pin MISO pergeseran data berasal dari slave menuju

master, sedangkan pada MISO pergeseran data berasal dari Master menuju Slave

(Saputra, 2010).

Tabel 2.3 Konfigurasi pin pada komunikasi SPI Pin Direct, Master SPI Direct, Slave SPI MOSI User defined Input

MISO Input User defined SCK User defined Input

SS User defined Input

(Sumber : Saputra, 2010)

2.4 Microcontroller

Microcontroller adalah sebuah sistem komputer lengkap dalam satu chip.

Microcontroller lebih dari sekedar sebuah microprocessor, karena

microcontroller sudah dilengkapi dengan ROM (Read-Only Memory), RAM

(Read-Write Memory), memiliki masukan dan keluaran, serta beberapa peripheral

STIKOM

(23)

seperti pencacah/pewaktu, ADC (Analog to Digital converter), DAC (Digital to

Analog converter) dan komunikasi secara serial.

Salah satu microcontroller yang banyak digunakan saat ini yaitu

microcontroller AVR. AVR merupakan seri microcontroller CMOS 8-bit buatan

Atmel, berbasis arsitektur RISC (Reduced Instruction Set Computer). Hampir semua instruksi dieksekusi dalam satu siklus clock. AVR mempunyai 32 register

general-purpose, timer/counter fleksibel dengan mode compare, interrupt

internal dan eksternal, serial UART, programmable watchdog timer, dan mode

power saving, ADC (Analog to Didital Converter) dan PWM (Pulse With

Modulation) internal. AVR juga mempunyai In-system programmable flash

on-chip yang mengijinkan memori program untuk diprogram ulang dalam sistem

menggunakan hubungan SPI (Serial Peripheral Interface).AVR adalah

microcontroller RISC (Reduce Instuction Set Compute) 8 bit berdasarkan

arsitektur Harvard (dengan memori dan bus terpisah untuk program dan data).

2.4.1 Microcontroller ATmega16

ATmega16 mempunyai throughput mendekati 1 MIPS per MHz membuat disainer sistem untuk mengoptimasi konsumsi daya versus kecepatan proses.

Beberapa keistimewaan dari AVR ATmega16 antara lain :

1. Advanced RISC Architecture

a. 130 Powerful Instructions–Most Single Clock Cycle Execution

b. 32 x 8 General Purpose Fully Static Operation

c. Up to 16 MIPS Throughput at 16 MHz

d. On-chip 2-cycle Multiplier

STIKOM

(24)

2. Nonvolatile Program and Data Memories

a. 8K Bytes of In-System Self-Programmable Flash

b. Optional Boot Code Section with Independent Lock Bits

c. 512 Bytes EEPROM

d. 512 Bytes Internal SRAM

e. Programming Lock for Software Security

3. Peripheral Features

a. Two 8-bit Timer/Counters with Separate Prescalers and Compare Mode

b. Two 8-bit Timer/Counters with Separate Prescalers and Compare Modes

c. One 16-bit Timer/Counter with Separate Prescaler, Compare Mode, and

Capture Mode

d. Real Time Counter with Separate Oscillator

e. Four PWM Channels

f. 8-channel, 10-bit ADC

g. Byte-oriented Two-wire Serial Interface

h. Programmable Serial USART

4. Special Microcontroller Features

a. Power-on Reset and Programmable Brown-out Detection

b. Internal Calibrated RC Oscillator

c. External and Internal Interrupt Sources

d. Six Sleep Modes: Idle, ADC Noise Reduction, Power-save, Powerdown,

Standby and Extended Standby

STIKOM

(25)

5. I/O and Package

a. 32 Programmable I/O Lines

b. 40-pin PDIP, 44-lead TQFP, 44-lead PLCC, and 44-pad MLF

6. Operating Voltages

a. 2.7-5.5V for ATmega16L

b. 4.5-5.5V for ATmega16

Gambar 2.6 Microcontroller ATmega16 (ATMEL, 2011a)

Pin-pin pada ATmega16 sebanyak 40-pin DIP (Dual Inline Package) ditunjukkan oleh Gambar 2.6. Guna memaksimalkan performa, AVR menggunakan arsitektur Harvard (dengan memori dan bus terpisah untuk program dan data).

A. Port Sebagai Input/Output Digital

ATmega16 mempunyai empat buah port yang bernama PortA, PortB, PortC, dan PortD. Keempat port tersebut merupakan jalur bidirectional dengan pilihan internal pull-up. Tiap port mempunyai tigabuah register bit, yaitu DDxn,

STIKOM

(26)

PORTxn, dan PINxn. Huruf „x‟mewakili nama huruf dari port sedangkan huruf

„n‟ mewakili nomor bit. Bit DDxn terdapat pada I/O address DDRx, bit PORTxn terdapat pada I/O address PORTx, dan bit PINxn terdapat pada I/O address PINx. Bit DDxn dalam register Data Direction Register (DDRx) menentukan arah pin. Bila DDxn diset 1 maka Px berfungsi sebagai pinoutput.

Bila DDxn diset 0 maka Px berfungsi sebagai pin input. Bila PORTxn diset 1 pada saat pin terkonfigurasi sebagai pininput, maka resistor pull-up akan diaktifkan. Untuk mematikan resistor pull-up, PORTxn harus diset 0 atau pin

dikonfigurasi sebagai pin output. Pin port adalah tri-state setelah kondisi reset. Bila PORTxn diset 1 pada saat pin terkonfigurasi sebagai pin output maka pin port akan berlogika 1. Dan bila PORTxn diset 0 pada saat pin terkonfigurasi sebagai pinoutput maka pinport akan berlogika 0.

Saat mengubah kondisi port dari kondisi tri-state (DDxn=0, PORTxn=0) ke kondisi output high (DDxn=1, PORTxn=1) maka harus ada kondisi peralihan apakah itu kondisi pull-up enabled (DDxn=0, PORTxn=1) atau kondisi output low

(DDxn=1, PORTxn=0).

Biasanya, kondisi pull-up enabled dapat diterima sepenuhnya, selama lingkungan impedansi tinggi tidak memperhatikan perbedaan antara sebuah strong

high driver dengan sebuah pull-up. Jika ini bukan suatu masalah, maka bit PUD

pada register SFIOR dapat diset 1 untuk mematikan semua pull-up dalam semua

port.

Peralihan dari kondisi input dengan pull-up ke kondisi output low juga menimbulkan masalah yang sama. Kita harus menggunakan kondisi tri-state

STIKOM

(27)

(DDxn=0, PORTxn=0) atau kondisi output high (DDxn=1, PORTxn=0) sebagai kondisi transisi.

Tabel 2.4Konfigurasi pinport

DDxn PORTxn PUD (in SFIOR)

I/O Pull-up Comment

0 0 X Input No Tri-state (Hi-z) 0 1 0 Input Yes Pxn will source current

if ext. Pulled low 0 1 1 Input No Tri-state (Hi-z) 1 0 X Output No Output low (Slink) 1 1 X Output No Output high (Source)

(Sumber : IT Telkom Library, 2008 )

Bit 2-PUD : Pull-up Disable Bila bit diset bernilai 1 maka pull-up pada

port I/O akan dimatikan walaupun register DDxn dan PORTxn dikonfigurasikan untukmenyalakan pull-up (DDxn=0, PORTxn=1).

B. Timer

Timer/counter adalah fasilitas dari ATmega16 yang digunakan untuk

perhitungan pewaktuan. Beberapa fasilitas chanel dari timer/counter antara lain:

counter channel tunggal, pengosongan data timer sesuai dengan data pembanding,

bebas glitch, tahap yang tepat PWM, pembangkit frekwensi, event counter external.

Gambar diagram block timer/counter 8 bit ditunjukan pada Gambar 3.2. Untuk penempatan pin I/O telah dijelaskan pada bagian I/O di atas. CPU dapat diakses register I/O, termasuk dalam pin-pin I/O dan bit I/O. Device khusus register I/O dan lokasi bit terdaftar pada deskripsi timer/counter 8 bit.

STIKOM

(28)

Gambar 2.7 Blok diagram timer / counter (Atmel, 2011)

Timer/counter didesain sinkron clock timer (clkT0) oleh karena itu

ditunjukkan sebagai sinyal enable clock pada Gambar 2.8. Gambar dibawah termasuk informasi ketika flag interrupt dalam kondisi set. Data timing digunakan sebagai dasar dari operasi timer/counter.

Gambar 2.8 Timing diagram timer/counter, tanpa prescaling (Atmel, 2011c) Pada Gambar 2.8 timing diagram timer/counter dengan prescaling adalah

counter akan menambahkan data counter (TCNTn) pada saat terjadi pulsa clock

yang telah mencapai 8 kali pulsa dan sinyal clock pembagi aktif. Ketika counter

STIKOM

(29)

telah mencapai nilai maksimal, maka nilai TCNTn akan kembali ke nol. Dan kondisi flagtimer akan aktif ketika TCNTn maksimal.

2.4.2 Microcontroller ATmega8

ATmega8 mempunyai 28 pin input/output yang terdiri dari tiga buah port

yang bernama PortB, PortC, dan PortD. Ketiga port tersebut merupakan jalur

bidirectional dengan pilihan internal pull-up.

Beberapa fitur yang dimiliki ATmega8 adalah sebagai berikut: a. Mempunyai kinerja tinggi dengan konsumsi daya yang rendah

b. Fully static operation

c. Kinerja mencapai 16 MIPS (Millions Instruction per Seconds) pada osilator dengan nilai frekuensi 16 MHz

d. Memiliki kapasitas memori Flash sebesar 8 kByte, EEPROM (Electrically

Erasable Programmable Read-Only Memory) sebesar 512 Byte, dan SRAM

(Static Random-Access Memory) sebesar 1 kByte

e. Memiliki 23 jalur I/O

f. Memiliki 2 buah Timer/Counter 8-bit dan 1 buah Timer/Counter 16-bit

g. Memiliki 3 kanal PWM (Pulse Width Modulation)

h. Memiliki 8 kanal ADC 10-bit

i. Memiliki antarmuka: Two-wire Serial Interface, USART (Universal

Synchronous Asynchronous Receiver/Transmitter), SPI (Serial Peripheral

InterfaceBus)

j. Memiliki Watchdog Timer denganosilator internalyang terpisah

k. Memiliki Comparator tegangan analog

STIKOM

(30)

l. Memiliki unit interupsi eksternal dan internal

m. Bekerja pada tegangan 4.5 V – 5.5 V dengan konsumsi arus maksimal 15 mA (dengan osilator 8 MHz, tegangan 5 V dan suhu pada rentang -40 °C - 85 °C).

Proses pemrograman ATmega8 dilakukan menggunakan fitur ISP (

In-System Programmable) melalui antarmuka SPI (Serial Peripheral Interface). Fitur

ISP memungkinkan untuk melakukan proses download program ke dalam

microcontroller tanpa bantuan microcontroller master seperti proses download

program pada microcontroller AT89C51.File dengan ekstensi “.hex”, yaitu kode

program yang telah di-compile akan dikirimkan secara serial ke microcontroller

untuk ditulis ke dalam memori Flash melalui jalur SPI yaitu pin MISO (Master In

Slave Out), MOSI (Master Out Slave In), dan SCK (Serial Clock) yang digunakan

sebagai sinyal sinkronasi komunikasi. Diagram blok ATmega8 terdapat pada Gambar 2.9, sedangkan konfigurasi pin ATmega8 terdapat pada Gambar 2.10

[image:30.595.43.546.144.738.2]

(ATMEL, 2011).

Gambar 2.9 Blok diagram ATmega8 (ATMEL, 2011)

STIKOM

(31)

Gambar 2.10 Konfigurasi pin ATmega8 (ATMEL, 2011)

A. Fungsi-fungsi Pin Pada ATmega8

VCC : Sumber tegangan +5V DC (Direct Current). (pin 7)

GND : Pin yang dihubungkan dengan ground sebagai referensi untuk VCC. (pin

8 dan pin 22)

Port C (PC0..PC5) merupakan pin I/O dua arah dan pin masukan tegangan analog untuk ADC dan PortC6 sebagai reset input.

Port B (PB0..PB7) merupakan pin I/O dua arah dengan fungsi alternatif, seperti yang terlihat pada Tabel 2.5 di bawah.

STIKOM

(32)
[image:32.595.64.555.113.682.2]

Tabel 2.5 Fungsi alternatif port B Pin Alternate Functions PB7 XTAL2 (Chip Clock Oscillator pin 2)

TOSC2 (Timer Oscillator pin 2)

PB6

XTAL1 (Chip Clock Oscillator pin 1 or External clock input)

TOSC1 (Timer Oscillator pin 1)

PB5 SCK (SPI Bus Serial Clock)

PB4 MISO (SPI Bus Master Input/Slave Output) PB3 MOSI (SPI Bus Master Output/Slave Input)

OC2 (Timer/Counter2 Output Compare Match Output) PB2 (SS(SPI Slave Select Input)

OC1B (Timer/Counter2 Output Compare Match B Output) PB1 OC1A (Timer/Counter2 Output Compare Match A Output) PB0 ICP1 (Timer/Counter1 Input Capture Pin)

(Sumber : Atmel, 2011)

Port D (PD0..PD7) merupakan pin I/O dua arah dengan fungsi alternatif, seperti yang terlihat pada Tabel 2.6 di bawah.

Tabel 2.6 Fungsi alternatif port D Pin Alternate Functions

PD7 AIN1 (Analog Comparator Negative Input)

PD6 AIN0 (Analog Comparator Positive Input)

PD5 T1 (Timer/Counter 1 External Counter Input)

PD4 XCK/T0 (USART Ecternal Clock Input/Output

Timer/Counter 0 External Counter Input)

PD3 INT1 (External Interrupt 1 Input) PD2 INT0 (External Interrupt 0 Input) PD1 TXD (USART Output Pin) PD0 RXD (USART Input Pin)

(Sumber : Atmel, 201)

: Masukan untuk reset (active low). Jika diberikan kondisi low

paling tidak selama 1.5µs akan menghasilkan kondisi reset pada

microcontroller meskipun microcontroller tidak mendapat clock

dari osilator. (pin 9)

RESET

STIKOM

(33)

XTAL1 : Masukan ke penguat osilator. Pin ini dihubungkan dengan kristal atau sumber osilator yang lain. (pin 9)

XTAL2 : Keluaran dari penguat osilator. Pin ini dihubungkan dengan kristal atau ground. (pin 10)

AVCC : Pin yang digunakan untuk memberikan sumber tegangan untuk pengubah ADC. Pin ini harus tetap dihubungkan dengan VCC meskipun fitur ADC tidak digunakan. Apabila fitur ADC digunakan, maka pin AVCC harus dihubungkan dengan VCC melalui low-pass filter seperti yang terlihat pada Gambar 2.4. (pin

7)

AREF : Pin yang digunakan sebagai masukan tegangan referensi untuk ADC. (pin 21).

Gambar 2.11 Koneksi AVCC dengan VCC melalui low-pass filter (ATMEL, 2011)

2.5 LCD (Liquid Crystal Display)

LCD adalah suatu dispalay dari bahan cairan kristal yang pengoperasiannya menggunakan sistem dot matriks. LCD banyak digunakan

STIKOM

(34)

sebagai display dari alat-alat elektronika seperti kalkulator, multitester digital, jam

digital, dan sebagainya.

Gambar 2.12 LCD 2x16 karakter (Adrianto, 2008)

Pengaksesan LCD dilakukan dengan mengirimkan kode perintah seperti bentuk kursor, operasi kursor dan bersih layar dan mengirimkan kode data yang merupakan kode ASCII (American Standard Code for Information Interchange)

dari karakter yang akan ditampilkan.

Pengaksesan LCD dari microcontroller menggunakan jalur alamat dan data. Terdapat dua jalur alamat input yang digunakan, yaitu sebagai instruction input dan data input.

Beberapa LCD memiliki pin-out yang berbeda-beda, tetapi mempunyai deskripsi pin yang sama. Pin-pin tersebut adalah sebagai berikut :

STIKOM

(35)
[image:35.595.83.553.122.726.2]

Tabel 2.8 Pin dan fungsi dari LCD Pin Name Function

1 VSS Ground voltage

2 VCC +5V

3 VEE Contrast voltage

4 RS

Register select 0 = Instruction register

1 = Data register 5 R/W

Read/write, to choose write or read mode 0 = Write mode

1 = Read mode 6 E

Enable

0 = Start to lacht data to LCD character 1 = Disable

7 DB0 Data bus (LSB) 8 DB1 Data bus 9 DB2 Data bu 20s 10 DB3 Data bus 11 DB4 Data bus 12 DB5 Data bus 13 DB6 Data bus 14 DB7 Data bus (MSB) 15 BPL (+) Back plane light (+)

16 BPL (-) / GND Back plane light (-) / Ground voltage

(Sumber : andrianto, 2008)

Instruksi-instruksi dalam pengoperasian LCD dapat dilihat pada Tabel 2.9 dibawah ini :

Tabel 2.9 Instruksi-instruksi dalam pengoperasian LCD

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 Instruksi 0 0 0 0 1 DL N F X X Function set 0 0 0 0 0 0 0 1 I/D S Entry mode set 0 0 0 0 0 0 1 D C B Display on/off

cursor 0 0 0 0 0 0 0 0 0 1 Clear display 0 0 0 0 0 1 S/C R/L X X Cursor display

shift 0 0 0 0 0 0 0 0 1 X Cursor home 1 Data Data write

(Sumber : andrianto, 2008)

STIKOM

(36)

Keterangan :

a. X : Don‟t care.

b. DL digunakan untuk mengatur lebar data. DL = 1, lebar data interface 8 bit (DB7 s/d DB0) DL = 0, lebar data interface 4 bit (DB7 s/d DB4)

Ketika menggunakan lebar data 4 bit, data harus dikirimkan dua kali. c. N digunakan untuk mengaktifkan baris.

N = 0, 1 baris N = 1, 2 baris

d. F digunakan untuk menentukan ukuran font karakter. F = 0, 5x7

F = 1, 5x8

e. I/D digunakan untuk meng-increment dari alamat DDRAM dengan 1, ketika kode karakter dituliskan ke DDRAM.

I/D = 0, Decrement

I/D = 1, Increment

f. S digunakan untuk menggeser keseluruhan display kekanan dan kekiri. S = 1, geser kekiri atau kekanan bergantung pada I/D

S = 0, display tidak bergeser

g. D digunakan untuk mengatur display.

D = 1, Display is ON D = 0, Display is OFF

h. C digunakan untuk menampilkan kursor.

STIKOM

(37)

C = 1, kursor ditampilkan C = 0, kursor tidak ditampilkan

i. B : Karakter ditujukan dengan kursor yang berkedip. B = 1, kursor blink

j. S/C dan R/L : Menggeser posisi kursor atau display kekanan atau kekiri tanpa menulis atau baca data display. Fungsi ini digunakan untuk koreksi atau pencarian display.

Tabel 2.10 Keterangan dari fungsi S/C dan R/L S/C R/L Note

0 0 Shift cursor position to the left 0 1 Shift cursor position to the right 1 0 Shift the entire display to the left 1 1 Shift the sentire display to the right

2.6 Keypad

Keypad adalah penghubung antara user dengan alat pengendali yang

dibuat. Keypad yang dipakai mempunyai 12 buah tombol yang tersusun dalam bentuk matriks 3x4. Tombol-tombol ini dipakai untuk menjalankan berbagai fungsi pengendalian seperti misalnya untuk on/off dan pilihan menu. Metode pengaksesan keypad ini menggunakan metode scanning baris (andrianto, 2008).

STIKOM

(38)

Gambar 2.13 Keypad 3x4 (Andrianto, 2008)

2.7 Driver Motor L298

L298 adalah driver motor yang berbentuk IC. L298 ini memiliki dua

H-bridge, sehingga memungkinkan untuk mengendalikan dua motor DC dengan

[image:38.595.43.541.86.746.2]

menggunakan satu IC L298. L298 juga mempunyai kemampuan dikendalikan dengan menggunakan tegangan TTL.

Gambar 2.14 Blog diagram L298 (ATMEL, 2011)

STIKOM

(39)

Dari Gambar 2.14 dapat dilihat bahwa di dalam L298 terdapat dua H-bridge yaitu A dan B. H-bridge A memiliki input in1 (pin 5), in2 (pin 7), dan EnA (pin 6). Sedangkan keluaran dari H-bridge A adalah out1 (pin 2) dan out2 (pin 3). Pada H-bridge B memiliki jumlah output dan input yang sama dengan H-bridge

A. masukan yang terdapat pada H-bridge B adalah in4 (pin 12), in3 (pin13) dan out 4 (pin14). Berikut merupakan Gambar pin konfigurasi driver motor L298.

Gambar 2.15 Pin Konfigurasi Driver Motor L298 (ATMEL, 2011)

Pada Gambar 2.15 dapat dilihat pin konfigurasi yang terdapat pada L298. Pada setiap pin L298 memiliki fungsi-fungsi yang khusus (ATMEL, 2011).

2.7.1 Fungsi-fungsi Kaki (Pin)

Current sensing A : Pin yang berfungsi sebagai untuk mengontrol

keluaran arus yang mengalir pada H-bridge A.

Output 1 : Pin yang digunakan sebagai keluaran H-bridge A,

dan keluaran arus yang mengalir pada pin ini dikontrol oleh pincurrent sensing A.

STIKOM

(40)

Output 2 : Pin yang digunakan sebagai keluaran H-bridge A, dan keluaran arus yang mengalir pada pin dikontrol

pincurrent sensing A.

Supply Voltage Vs : Tegangan yang digunakan sebagai tegangan output

H-bridge A maupun H-bridge B.

Input 1 : Pin ini digunakan sebagai input H-bridge A dan pin

ini mampu menerima sinyal TTL.

Enable A : Pin enable A digunakan untuk mengaktifkan dan

menonaktifkan H-bridge.

Input 2 : Pin ini digunakan sebagai input H-bridge A dan pin

ini mampu menerima sinyal TTL.

GND : Ground pada power supply dihubungkan dengan pin

ini.

VSS : Pin logic supplyvoltage digunakan sebagai inputan

power supply untuk logic block.

Input 3 : Pin ini digunakan sebagai input H-bridge B dan pin

ini mampu menerima sinyal TTL.

Enable B : Pin enable B digunakan untuk mengaktifkan dan

menonaktifkan H-bridge.

Input 4 : Pin ini digunakan sebagai input H-bridge B dan pin

ini mampu menerima sinyal TTL.

STIKOM

(41)

Output 4 : Pin yang digunakan sebagai keluaran H-bridge B, dan keluaran arus yang mengalir pada pin ini dikontrol pincurrent sensing B.

Current sensing : Pin yang berfungsi sebagai untuk mengontrol

keluaran arus yang mengalir pada H-bridge B.

2.8 Motor DC

Motor DC merupakan motor arus searah yang berfungsi mengubah tenaga listrik arus searah (lisrik DC) menjadi tenaga gerak atau mekanik (Sumanto, 1984). Motor DC banyak ditemukan pada peralatan rumah tangga seperti mixer, blender, pemutar tape,dll. Selain itu motor DC juga digunakan dalam industri misalkan untuk mengaduk adonan, memutar konveyor, dll.

Motor DC memerlukan suplai tegangan yang searah pada kumparan medan untuk diubah menjadi energi mekanik. Kumparan medan pada motor dc disebut stator (bagian yang tidak berputar) dan kumparan jangkar disebut rotor (bagian yang berputar). Jika terjadi putaran pada kumparan jangkar dalam pada medan magnet, maka akan timbul tegangan (GGL) yang berubah-ubah arah pada setiap setengah putaran, sehingga merupakan tegangan bolak-balik. Prinsip kerja dari arus searah adalah membalik phasa tegangan dari gelombang yang mempunyai nilai positif dengan menggunakan komutator, dengan demikian arus yang berbalik arah dengan kumparan jangkar yang berputar dalam medan magnet. Bentuk motor paling sederhana memiliki kumparan satu lilitan yang bisa berputar bebas di antara kutub-kutub magnet permanen seperti pada Gambar 2.16.

STIKOM

(42)

Gambar 2.16 Motor DC Sederhana (Sumanto, 1994)

Catu tegangan DC dari baterai menuju ke lilitan melalui sikat yang menyentuh komutator, dua segmen yang terhubung dengan dua ujung lilitan. Kumparan satu lilitan pada gambar di atas disebut rotor dinamo. Rotor dinamo adalah sebutan untuk komponen yang berputar di antara medan magnet.

[image:42.595.47.554.112.679.2]

Jika arus lewat pada suatu konduktor, timbul medan magnet di sekitar konduktor seperti pada Gambar 2.17. Arah medan magnet ditentukan oleh arah aliran arus pada konduktor.

Gambar 2.17 Medan magnet yang membawa arus mengelilingi konduktor (Djati, 2010)

STIKOM

(43)

Aturan Genggaman Tangan Kanan bisa dipakai untuk menentukan arah garis fluks di sekitar konduktor. Genggam konduktor dengan tangan kanan dengan jempol mengarah pada arah aliran arus, maka jari-jari anda akan menunjukkan arah garis fluks. Gambar 2.18 menunjukkan medan magnet yang terbentuk di sekitar konduktor berubah arah karena bentuk U. Pada motor listrik konduktor berbentuk U disebut angker dinamo.

Gambar 2.18 Konduktor Berbentuk U (Djati, 2010)

[image:43.595.33.560.172.717.2]

Jika konduktor berbentuk U (angker dinamo) diletakkan di antara kutub uatara dan selatan yang kuat medan magnet konduktor akan berinteraksi dengan medan magnet kutub seperti yang ditunjukkan pada gambar 2.19.

Gambar 2.19 Reaksi garis Fluks (Djati, 2010)

STIKOM

(44)

Lingkaran bertanda A dan B pada gambar 2.19 merupakan ujung konduktor yang dilengkungkan (looped conductor). Arus mengalir masuk melalui ujung A dan keluar melalui ujung B. Medan konduktor A yang searah jarum jam akan menambah medan pada kutub dan menimbulkan medan yang kuat di bawah konduktor. Konduktor akan berusaha bergerak ke atas untuk keluar dari medan kuat ini. Medan konduktor B yang berlawanan arah jarum jam akan menambah medan pada kutub dan menimbulkan medan yang kuat di atas konduktor. Konduktor akan berusaha untuk bergerak turun agar keluar dari medan yang kuat tersebut. Gaya-gaya tersebut akan membuat angker dinamo berputar searah jarum jam.

Mekanisme kerja untuk seluruh jenis motor secara umum : a. Arus listrik dalam medan magnet akan memberikan gaya.

b. Jika kawat yang membawa arus dibengkokkan menjadi sebuah lingkaran /

loop, maka kedua sisi loop, yaitu pada sudut kanan medan magnet, akan mendapatkan gaya pada arah yang berlawanan.

c. Pasangan gaya menghasilkan tenaga putar / torque untuk memutar kumparan.

d. Motor-motor memiliki beberapa loop pada dinamonya untuk memberikan tenaga putaran yang lebih seragam dan medan magnetnya dihasilkan oleh susunan elektromagnetik yang disebut kumparan medan.

Pada motor DC, daerah kumparan medan yang dialiri arus listrik akan menghasilkan medan magnet yang melingkupi kumparan jangkar dengan arah tertentu. Konversi dari energi listrik menjadi energi mekanik (motor) maupun

STIKOM

(45)

sebaliknya berlangsung melalui medan magnet, dengan demikian medan magnet disini selain berfungsi sebagai tempat untuk menyimpan energi, sekaligus sebagai tempat berlangsungnya proses perubahan energi, daerah tersebut dapat dilihat pada Gambar 2.20.

Gambar 2.20 Prinsip kerja motor DC (Djati, 2010)

Agar proses perubahan energi mekanik dapat berlangsung secara sempurna, maka tegangan sumber harus lebih besar daripada tegangan gerak yang disebabkan reaksi lawan. Dengan memberi arus pada kumparan jangkar yang dilindungi oleh medan maka menimbulkan perputaran pada motor.

Dalam memahami sebuah motor, penting untuk mengerti apa yang dimaksud dengan beban motor. Beban dalam hal ini mengacu kepada keluaran tenaga putar / torque sesuai dengan kecepatan yang diperlukan. Beban umumnya dapat dikategorikan ke dalam tiga kelompok :

a. Beban torque konstan adalah beban dimana permintaan keluaran energinya bervariasi dengan kecepatan operasinya namun torquenya tidak bervariasi.

STIKOM

(46)

Contoh beban dengan torque konstan adalah conveyors, rotary kilns, dan pompa displacement konstan.

b. Beban dengan variabel torque adalah beban dengan torque yang bervariasi dengan kecepatn operasi. Contoh beban dengan variabel torque adalah pompa sentrifugal dan fan (torque bervariasi sebagai kuadrat kecepatan). c. Beban dengan energi konstan adalah beban dengan permintaan torque yang

berubah dan berbanding terbalik dengan kecepatan. Contoh untuk beban dengan daya konstan adalah peralatan-peralatan mesin.

Untuk menentukan arah putaran motor digunakan kaedah Flamming

tangan kiri. Kutub-kutub magnet akan menghasilkan medan magnet dengan arah dari kutub utara ke kutub selatan. Jika medan magnet memotong sebuah kawat penghantar yang dialiri arus searah dengan empat jari, maka akan timbul gerak searah ibu jari. Gaya ini disebut gaya Lorentz, yang besarnya sama dengan F.

Prinsip motor adalah aliran arus di dalam penghantar yang berada di dalam pengaruh medan magnet akan menghasilkan gerakan. Besarnya gaya pada penghantar akan bertambah besar jika arus yang melalui penghantar bertambah besar.

2.9 Rotary encoder

Rotary encoder adalah device elektromekanik yang dapat memonitor

gerakan dan posisi. Rotary encoder umumnya menggunakan sensor optik untuk menghasilkan serial pulsa yang dapat diartikan menjadi gerakan, posisi, dan arah. Sehingga posisi sudut suatu poros benda berputar dapat diolah menjadi informasi

STIKOM

(47)

berupa kode digital oleh rotary encoder untuk diteruskan oleh rangkaian kendali.

Rotary encoder umumnya digunakan pada pengendalian robot, motor driver, dsb.

Gambar 2.21 Rotary encoder

STIKOM

(48)

39

Metode penelitian yang digunakan pada pembuatan perangkat keras dan perangkat lunak adalah studi kepustakaan dan penelitian laboratorium. Dengan cara ini penulis berusaha untuk mendapatkan dan mengumpulkan data-data, informasi, konsep-konsep yang bersifat teoretis dari buku, bahan-bahan kuliah, dan referensi dari internet yang berkaitan dengan permasalahan.

Penelitian laboratorium dilakukan dengan perancangan perangkat keras dan perangkat lunak, kemudian melakukan pengujian terhadap perangkat keras dan perangkat lunak. Langkah berikutnya adalah mengambil atau mengumpulkan data hasil percobaan. Langkah terakhir adalah melakukan evaluasi dan analisis terhadap hasil data yang dikumpulkan.

Diagram blok yang digunakan dalam sistem dengan menggunakan kendali PID dan fuzzy untuk optimalisasi kecepatan mobile robot menggunakan komunikasi SPI (Serial Peripheral Interface), dapat dilihat pada Gambar 3.1 :

STIKOM

(49)

Input : jarak dan waktu

Motor kanan

Motor kiri Minimum sistem

slave

Proses PID

Minimum sistem slave

Proses PID Minimum sistem

master

Proses Fuzzy

Feedback kecepatan

Feedback kecepatan spi

spi Feedback

jarak

Sensor jarak

Gambar 3.1 Diagram blok sistem keseluruhan

Dari blok diagram pada Gambar 3.1 dapat dilihat porsi untuk masing-masing sistem kendali PID dan fuzzy. Pada sistem ini memiliki input berupa jarak dan waktu yang kemudian akan menjadi input fuzzy yang diproses oleh

microcontroller ATmega16 sebagai Master. Metode fuzzy yang digunakan adalah

metode Sugeno. Setelah proses fuzzy selesai dilakukan oleh microcontroller

Master, maka microcontroller Master akan mengeluarkan output berupa

kecepatan (dalam satuan rpm) yang kemudian akan dikirim ke dua buah

microcontroller ATmega8 sebagai Slave. Microcontroller Slave pada tugas akhir

STIKOM

(50)

kali ini berfungsi sebagai pengontrol motor kanan dan motor kiri yang satu sama lain tidak berkomunikasi secara langsung.

Pada microcontroller Slave dilakukan proses kendali PID yang digunakan untuk mengontrol motor kanan dan motor kiri. Di mana proses PID mendapatkan

input berasal dari microcontroller Master yang mengirimkan kecepatan yang

selalu berubah-ubah sesuai dengan outputfuzzy yang dihasilkan.

3.1 Perancangan Perangkat Keras 3.1.1 Perancangan Mekanik Robot

Robot yang digunakan penulis terdiri atas 2 buah roda disertai motor yang terletak disisi kiri dan kanan bagian base robot digunakan untuk menjalankan robot. Berikut arsitektur robot secara detail adalah sebagai berikut.

Ukuran dimensi

Ukuran Robot : 500 mm x 600 mm x 100 mm

Struktur Material

Bahan Material yang digunakan : a. Bagian Rangka

1. Aluminium Profile. 2. Aluminium Sheet. 3. Bearing.

4. Mur dan Baut.

b. Bagian dari Penggerak Robot : 1. Motor DC 12 Volt.

2. Aluminium.

STIKOM

(51)

3. Roda dari karet Silikon. 4. Roda Bebas.

5. Belt. 6. Gear.

Berikut arsitektur robot secara detail adalah sebagai berikut :

Gambar 3.2 Desain robot keseluruhan

3.1.2 Perancangan Minimum System

Rangkaian minimumsystem dibuat untuk mendukung kerja dari microchip

ATmega dimana microchip tidak bisa berdiri sendiri melainkan harus ada rangkaian dan komponen pendukung seperti halnya rangakaian catu daya, kristal dan lain sebagainya yang biasanya disebut minimum system.

STIKOM

(52)

Microchip berfungsi sebagai otak dalam mengolah semua instruksi baik

input maupun output seperti halnya pemroses data input fuzzy maupun PID yang

kemudian menghasilkan output yang digunakan untuk menjalankan motor.

Minimum system yang dirancang penulis dalam tugas akhir kali ini

menggunakan minimum system dengan komunikasi SPI (Serial Peripheral

Interface) yang terdiri dari satu buah microcontroller ATmega16 sebagai

microcontroller Master dan dua buah ATmega8 sebagai microcontroller Slave.

Dalam komunikasi SPI terdapat satu Minimum system sebagai Master dan dua

minimumsystem sebagai Slave.

Pada rangkaian minimum system ini penulis memberikan pin VCC masukan tegangan operasi berkisar antara 4,5 Volt sampai dengan 5 Volt. pin reset berfungsi untuk masukan reset program secara otomatis atau manual. Sedangkan pin MOSI (Master Output Slave Input), MISO (Master Input Slave

Output), dan SCK (Signal Clock) digunakan untuk keperluan pemrograman

microcontroller dan sebagai komunikasi antara Master dan Slave (komunikasi

SPI), sedangkan pin SS (Slave Select) digunakan oleh Master sebagai selektor antara Slave 1 dan slave 2. Untuk melakukan proses downloading program dari komputer ke microcontroller harus dilakukan secara terpisah antara Master dan

Slave.

STIKOM

(53)

Minimum sistem master (Proses fuzzy) Minimum sistem slave (proses PID) Minimum sistem slave (proses PID) SPI SPI Driver motor Driver motor Motor DC Motor DC Rotary encoder Rotary encoder Rotary encoder

Gambar 3.3 Diagram blok rancangan Minimum system keseluruhan

[image:53.595.49.529.124.703.2]

A. Minimum System Master

Gambar 3.2 Rangkaian skematik minimum systemMaster

cap 100u ss ATMega16 1 2 3 4 5 6 7 8 9 12 13 14 15 16 17 18 19 20 21 10 11 31 33 34 35 36 37 38 39 40 22 23 24 25 26 27 28 29 30 32 PB0/(XCK/T0) PB1/(T1) PB2/(INT2/AIN0) PB3/(OC0/AIN1) PB4/(SS) PB5/(MOSI) PB6/(MISO) PB7/(SCK) RESET XTAL2 XTAL1 PD0/(RXD) PD1/(TXD) PD2/(INT0) PD3/(INT1) PD4/(OC1B) PD5/(OC1A) PD6/(ICP) PD7/(OC2) VC C GN D GN D PA7/(ADC7) PA6/(ADC6) PA5/(ADC5) PA4/(ADC4) PA3/(ADC3) PA2/(ADC2) PA1/(ADC1) PA0/(ADC0) PC0/(SCL) PC1/(SDA) PC2/(TCK) PC3/(TMS) PC4/(TDO) PC5/(TDI) PC6/(TOSC1) PC7/(TOSC2) AVCC AREF cap 10uF/16v R 330 reset cry stal 11.0952.000 ss1 5v DIODE 5v T1 M pus hbut ton 5v mosi f use 1 2 sck R 10k cap 30pf reset LED R 100 2200uF/25v miso 12v regulator LM7805 1 2 3 VI GN D VO 12v 470uf /16v cap 30pf sumber tegangan 12v

1 2

5 V

STIKOM

(54)

Minimum system Master menggunakan microcontroller ATmega16 yang mempunyai 40 pin I/O dan salah satunya terdapat fasilitas untuk berkomunikasi antar microcontroller yaitu komunikasi SPI. Dalam komunikasi SPI minimum

system Master merupakan salah satu komponen penting, dimana dalam tugas

akhir ini Minimum system Master digunakan sebagai pemroses fuzzy yang mempunyai input berupa jarak dan waktu seperti yang telah digambarkan pada blok diagram dan akan menghasilkan output berupa kecepatan yang akan dikirimkan ke minimumsystemSlave. Tabel di bawah ini merupakan pin I/O yang digunakan penulis dalam pembuatan tugas akhir pada minimumsystemMaster.

Tabel 3.1 Pin I/O Minimum systemMaster

Pin I/O Fungsi Vcc Power 5v Gnd Ground PA0-PA7 LCD

PB2 Sebagai slave select (selektor) ke microcontrollerkontroler

slave 1

PD2 Sebagai slave select (selektor) ke microcontrollerkontroler

slave 2

T1/PB1 Sebagai counter 16 bit nilai jarak dari rotary encoder

Mosi/PB5 Masterout, slave in (digunakan dalam komunikasi SPI) Miso/PB6 Masterin, salve out (digunakan dalam komunikasi SPI) Sck/PB7 Serial Clock (digunakan dalam komunikasi SPI)

Reset Mereset program

PC0-PC7 Digunakan sebagai keypad

STIKOM

(55)

B. Minimum System Slave

Gambar 3.3 Rangkaian skematik Minimum systemslave

Pada Gambar 3.3 merupakan rangkaian skematik minimum system slave,

minimum system Slave disini menggunakan microcontroller ATmega8 yang

mempunyai 28 pin I/O dan salah satunya terdapat fasilitas untuk berkomunikasi antar microcontroller yaitu komunikasi SPI. Dalam komunikasi SPI minimum

system Slave merupakan salah satu komponen penting, dimana dalam tugas akhir

ini Minimum system Slave digunakan sebagai pemroses kendali PID yang

mempunyai input berupa kecepatan yang berasal dari minimumsystemMaster dan menghasilkan output berupa PWM yang akan digunakan untuk mengendalikan motor DC. Tabel di bawah ini merupakan pin I/O yang digunakan penulis dalam pembuatan tugas akhir pada minimumsystemSlave.

miso LED 12v pu s hb ut ton 100 reset 12v Cap 2200uF/25v pwm1 cap 30 pF

R 10k sck DIODE reset IC4 ATmega8 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 PC6 (RESET) PD0 (RxD) PD1 (TxD) PD2 (INT0) PD3 (INT1) PD4 (XCK/T0) VCC GND PB6 (XT1/TOSC1) PB7 (XT2/TOSC2) PD5 (T1) PD6 (AIN0) PD7 (AIN1)

PB0 (ICP) (OC1A) PB1 (SS/OC1B) PB2 (OC2/MOSI) PB3 (MISO) PB4 (SCK) PB5 AVCC AREF AGND (ADC0) PC0 (ADC1) PC1 (ADC2) PC2 (ADC3) PC3 (SDA/ADC4) PC4

(SCL/ADC5) PC5 5v

Cap 470uf /16v

miso Regulator LM7805 1 2 3 VI GN D VO mosi cry stal 11.0592 Mhz 5v sck cap 100u reset sumber tegangan 12V

1 2

konektor f use

1 2 5v 5 V R 330 T0 S1 5v downloader 1 2 3 4 5 6 mosi ss Cap 10uF/16v dir1 dir2 cap 30 pF

STIKOM

(56)
[image:56.595.69.556.122.667.2]

Tabel 3.2 Pin I/O Minimum systemslave

Pin I/O Fungsi Vcc Power 5v Gnd Ground

PB1/OR1A Sebagai output pwm 8 bit atau 10 bit

T0/PC4 Sebagai counter 8 bit nilai rpm dari rotary encoder

Mosi/PB3 Masterout, slave in (digunakan dalam komunikasi SPI) Miso/PB4 Masterin, salve out (digunakan dalam komunikasi SPI) Sck/PB5 Serial clock (digunakan dalam komunikasi SPI)

Reset Mereset program

PB2/SS Sebagai Slave select dari microcontrollerkontroler Master

3.1.3 Perancangan Driver Motor L298

Driver motor merupakan salah satu komponen terpenting dalam

pengerjaan tugas akhir kali ini, di mana driver motor digunakan sebagai pengendali motor DC. Dalam konteks tugas akhir kali ini driver motor yang digunakan penulis adalah driver motor L298.

Driver motor L298 diparalel agar mendapatkan arus yang besar untuk

menjalankan motor DC. Driver motor L298 mempunyai dua channel output

motor, dalam satu channel mempunyai arus sebesar 2A, sedangkan untuk menjalankan motor DC yang ada pada robot, penulis membutuhkan arus yang lebih besar guna menstabilkan motor pada robot. Maka solusi yang tepat adalah memparalel dua channel output driver motor tersebut agar menjadi satu untuk mendapatkan arus sebesar 4A. Berikut gambar rangkaian driver motor yang telah diparalel.

STIKOM

(57)

Gambar 3.4 Rangkaian driver motor L298

3.1.4 Program kendali Fuzzy

Program kendali fuzzy terdiri atas fuzzification, evaluasi aturan, mekanisme pengambilan keputusan metode Sugeno. Keluaran pada proses mekanisme pengambilan keputusan metode Sugeno merupakan hasil dari proses kendali fuzzy secara keseluruhan untuk mendapatkan nilai tegasnya yaitu sinyal kontrol (rpm). Blok diagram program kendali fuzzy diperlihatkan pada Gambar 3.9. miso LED 12v pu s hb ut ton 100 reset 12v Cap 2200uF/25v pwm1 cap 30 pF

R 10k sck DIODE reset IC4 ATmega8 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 PC6 (RESET) PD0 (RxD) PD1 (TxD) PD2 (INT0) PD3 (INT1) PD4 (XCK/T0) VCC GND PB6 (XT1/TOSC1) PB7 (XT2/TOSC2) PD5 (T1) PD6 (AIN0) PD7 (AIN1)

PB0 (ICP) (OC1A) PB1 (SS/OC1B) PB2 (OC2/MOSI) PB3 (MISO) PB4 (SCK) PB5 AVCC AREF AGND (ADC0) PC0 (ADC1) PC1 (ADC2) PC2 (ADC3) PC3 (SDA/ADC4) PC4

(SCL/ADC5) PC5 5v

Cap 470uf /16v

miso Regulator LM7805 1 2 3 VI GN D VO mosi cry stal 11.0592 Mhz 5v sck cap 100u reset sumber tegangan 12V

1 2

konektor f use

1 2 5v 5 V R 330 T0 S1 5v downloader 1 2 3 4 5 6 mosi ss Cap 10uF/16v dir1 dir2 cap 30 pF

STIKOM

(58)

Gambar 3.5 Flowchart Logika Fuzzy

STIKOM

(59)

Pada gambar 3.5 dapat dijelaskan sebagai berikut :

1. Input fuzzy diperoleh dari penekanan keypad berupa nilai jarak dan waktu. Adapaun program penekanan keypad sebagai berikut.

unsigned int tekan_keypad(unsigned char tanda) {

unsigned int itung = 0,x = 6; //Deklarasi variabel

unsigned int hasil; unsigned char buffer;

unsigned char temp_hasil[3],temp_hasil1[5]; while(1){

buffer = '-';

colom1 = 1; //output keypad

colom2 = 0; //output keypad

colom3 = 1; //output keypad

colom4 = 1; //output keypad

if (!row1) {buffer = '#',waiting();} //input keypad

else if (!row2) {buffer = '9',waiting();}//input keypad

else if (!row3) {buffer = '6',waiting();}//input keypad

else if (!row4) {buffer = '3',waiting();}//input keypad

delay_ms(50); colom1 = 1; colom2 = 1; colom3 = 0; colom4 = 1;

if (!row1) {buffer = '0',waiting();} else if (!row2) {buffer = '8',waiting();} else if (!row3) {buffer = '5',waiting();} else if (!row4) {buffer = '2',waiting();} delay_ms(50);

colom1 = 1; colom2 = 1; colom3 = 1; colom4 = 0;

if (!row1) {buffer = '*',waiting();} else if (!row2) {buffer = '7',waiting();} else if (!row3) {buffer = '4',waiting();} else if (!row4) {buffer = '1',waiting();} if(tanda == 0) {

lcd_gotoxy(x,0); lcd_putchar('_'); }

if (tanda == 1){ Lcd_gotoxy(x,1); Lcd_putchar('_'); }

if (buffer == '#')goto exit; //keluar dari fungsi tekan

//keypad

if (buffer != '-'){ if (tanda == 0 ){

temp_hasil[itung++] = buffer; lcd_gotoxy(x++,0);

lcd_putchar(buffer);

STIKOM

Gambar

Gambar 2.3, terlihat bahwa kurva reaksi berubah naik setelah selang waktu L.  STIKOM SURABAYA
Tabel 2.2 Penalaan parameter PID dengan metode Cohen-Coon
Gambar 2.9 Blok diagram ATmega8 ( ATMEL, 2011)
Tabel 2.5 Fungsi alternatif port B
+7

Referensi

Dokumen terkait

Infeksi leptospira terjadi karena kondisi lingkungan pemukiman yang ditemukan tikus sehingga apabila terjadi kontaminasi oleh urin tikus yang terinfeksi bakteri leptospira

Kajian berkaitan budaya dalam puisi-puisi Muhammad Haji Salleh oleh pengkaji diharap dapat memberi inspirasi kepada mahasiswa dan mahasiswi untuk turut serta

Ada banyak bentuk pelanggaran yang terjadi selama jalannya Pemilu Presiden dan Wakil Presiden tahun 2014, mulai dari pelanggaran seperti beredarnya majalah obor

Sakit Umum Daerah Provinsi Kepulauan Bangka Belitung belum tercantum dalam Peraturan Daerah Provinsi Kepulauan Bangka Belitung Nomor 2 Tahun 2011 tentang Retribusi Jasa

Pada zaman yang sekarang ini kinestetik anak masih terbatas dan upaya meningkatkannya belum terprogram terutama melalui sebuah bentuk permainan dan pelaksanaan

Wisata Selong Belanak-Desa Bonder, Dusun Jurang Are, Desa Bonder, Kecamatan Praya Barat, Kabupaten Lombok Tengah, Provinsi Nusa Tenggara Barat, Kode Pos. RE Martadinata

Berdasarkan hasil tabel uji analisis koefisien determinasi, menunjukan nilai koefisien determinasi dari Rsquare yaitu sebesar 0,575 atau sama dengan 57,5%, angka

Berdasarkan uji hipotesis yang telah dilakukan, dapat disimpulkan bahwapersepsi pelanggan terkait implementasi prinsip etika bisnis islam berpengaruh positif dan