Perangkat Lunak Microcontroller Perancangan dan Realisasi Perangkat Lunak

16

3.3.1. Perangkat Lunak Microcontroller

Pada bagian ini akan dijelaskan mengenai perancangan perangkat lunak microcontroller yang meliputi bagian controller, bagian pengiriman data ke user interface, dan bagian penerimaan data updaterdari user interface. Gambar 3.4 menunjukkan diagram alir progam yang diimplementasikan pada microcontroller. Start Inisialisasi Sistem Ambil data dari HC-SR04 Cek apakah ada metode kendali yg digunakan dari user interface? Tidak Prosess Kontroll dengan on-off PID Fuzzy YA Kirim data Actual ke userinterface dengan serial Gambar 3.4. Diagram alir Sistem pada Microcontroller Program controller melakukan pengambilan data sensor HC-SR04, konversi data ke jarak dalam satuan cm, melakukan proses kontrol dengan metode on-off PID Fuzzy. Berikut adalah penjelasan diagram alir tersebut: 17  Inisialisasi sistem yang meliputi parameter PID yang digunakan Kp, Ki, Kd, dan setpoint yang diambil dari EEPROM, serta inisialisasi Timer yang digunakan untuk pewaktuan time sampling PID dilakukan.  Diambil data dari sensor HC-SR04 yang berupa waktu dalam mikrodetik yang kemudian akan di konversi ke satuan cm  Sistem akan melakukan cek metode kendali yang digunakan, sistem akan menerima data dari user interface dan kemudian akan melakukan perhitungan bedasarkan metode tersebut.Pada bagian penerimaan data ini terdapat 5 data yang dikirimkan dari user interface yaitu setpoint, Kp, Ki, Kd, dan mode kendali yang digunakan.  Jika metode on – off yang dipilih maka hanya akan terjadi 2 kondisi yaitu on saat nilai aktual setpoint dan off saat nilai aktual setpoint  Jika metode PID yang dipilih maka akan dilakukan kalkulasi PID dan dilakukan penghitungan error, yaitu error = set point - aktual. Kemudian error yang didapatkan digunakan untuk menghitung ut, sehingga didapatkan ut = Kp error + Ki sum of error + Kd error – last error.  Jika metode Fuzzy yang dipilih maka akan dibuat himpunan – himpunan fuzzy seperti pada Gambar 3.11 di bawah. Himpunan input adalah himpunan error yang dibagi menjadi 4 himpunan yaitu untuk error kecil sekali, error kecil, error besar, dan error besar sekali. Proses perhitungan fuzzy dilakukan berdasarkan metode fuzzy yang diterapkan oleh Sugeno. Dipilih metode Sugeno karena metode ini karena perhitungan lebih efisienoutput sistem berupa himpunan tegas bukan himpunan fuzzy. µerror Kecil Sekali Kecil Besar Besar Sekali -0. 3 1 2 3 4 5 Input Variabel error 18 Kemudian akan dilakukan perhitungan derajat keanggotaan masing – masing himpunan tersebut.Perhitungan dilakukan seperti di bawah: 1. Himpunan error kecil sekali � error = { − error . jika �� � − . jika − . �� � jika �� � 2. Himpunan error kecil � �� � = { jika �� � �� � + . . jika �� � jika �� � − �� � jika �� � jika �� � 3. Himpunan error besar � �� � = { jika �� � �� � − jika �� � jika error − �� � jika � �� jika �� � 4. Himpunan error besar sekali � error = { error − jika �� � jika �� � jika �� � Dari Himpunan – himpunan tersebut ditetapkan nilai yang akan mengatur kecepatan pompa air, nilai tersebut adalah nilai PWM sebagai berikut: Kecil sekali = nilai PWM 70 Kecil = nilai PWM 180 Besar = nilai PWM 200 Besar Sekali = nilai PWM 255 Kemudian dilakukan proses defuzzyfikasi dengan menggunakan rumus rata-rata berbobot yaitu = ∑ �. � �= ∑ � �= dimana: n=jumlah data Xi=data ke i Wi=derjat keanggotaan data ke i 19  Berdasarkan perancangan fuzzy diatas maka jika seandainya error adalah 0.9 maka ia akan berada diantara 2 himpunan yaitu kecil sekali dan kecil maka akan dilakukan perhitungan derajat keanggotaan untuk himpunan kecil sekali dan kecil . Untuk himpunan kecil sekali maka nilai derajat keanggotaannya adalah 1- 0.91.3 dan di dapat nilai 0.076. Untuk himpunan kecil maka nilai derajat keanggotaannya adalah 0.9+0.31.3 dan di dapat nilai 0.924. Maka akan dilakukan proses defuzzifikasi untuk menentukan nilai PWM seperti dibawah: � = . × + . × + × + × . + . + + = . Maka nilai PWM saat error 0.9 adalah 171.64  Terdapat 7 data yang dikirimkan ke user interface yaitu nilai setpoint, sensor, output pwm, Kp, Kd ,Ki, dan error, data tersebut dikirim dalam bentuk string yang diakhiri dengan pergantian baris untuk memudahkan dibaca di program user interface

3.3.2. Perangkat Lunak User interface