By | 07/06/2020

Hello temen-temen anakkendali.com.
Pada kesempatan kali ini saya akan menulis artikel tentag Arduino, Tutorial Fuzzy Logic Controller dengan Arduino (Fuzzifikasi). Fuzzy Logic Controller juga termasuk bagian dari AI ( artificial intelligence ) atau kecerdasan buatan, dilihat dari hasil algoritma fuzzy ini sangat mirip dengan pola pikir manusia. pada tutorial ini kita akan membuat implementasi fuzzy pada arduino

Tutorial Lengkap Fuzzy Mamdani dengan Arduino baca di Tutorial Lengkap Fuzzy Logic Arduino Mamdani

Jika komputer hanya memiliki dua keadaan yaitu 0 atau 1, benar atau salah, true or false maka fuzzy ini dibuat untuk mencari nilai antara 0 dan 1 nya,

Contoh logika fuzzy dalam kehidupan sehari hari antara lain :

  • saat manusia mengendarai sepeda motor
  • saat manusia mengendarai mobil
  • dan banyak sekali contoh lainya yang di terapkan oleh manusia itu sendiri.

dan salah satu contoh logika fuzzy yang diterapkan pada hardware atau mesin yaitu :

Mesin Cuci Fuzzy
AC Fuzzy
Vaccum Cleaner Fuzzy
dan sebagainya.

Arti fuzzy itu sendiri menurut bahasa adalah Samar / Kabur dan adapun lawan dari fuzzy adalah Crisp yang berarti Tegas.
pada artikel ini saya akan menjelaskan tahap awal dalam membuat fuzzy controller dengan menggunakan mikrokontroler yang sangat populer yaitu Arduino. tahap awal membuat Logika Fuzzy adalah Fuzzifikasi. dimana kita akan menentukan dua variable satu Input satu Output dimana keduanya akan kita cari terlebih dahulu nilai keanggotaanya.

contoh dalam artikel ini kita menggunakan Parameter SUHU (Input) dan Motor DC (Output)
dimana parameter suhu ini memiliki variable linguistik Dingin, Hangat dan Panas. sedangkan untuk varibel dari parameter Motor DC yaitu Lambat, Sedang dan Cepat.
lihat gambar dibawah ini :

Tutorial Fuzzy Logic Controller Arduino (Fuzzifikasi)

      Variable Dingin akan di anggap benar benar dingin saat nilai keanggotaanya (u)= 1. pada gambar diatas nilai u=1 saat suhu <= 30 dan 30 – 45 nilai kenggotaanya di tentukan dengan rumus pada di gambar. begitu juga untuk variable Hangat, dan Panas.   untuk membuat code dari rumus rumus yang didapatkan diatas seperti ini contoh codenya :  

unsigned char suhuDingin(){
  if (suhu <= 30){dingin =1;}
  else if (suhu >=30 && suhu <=45){dingin=(45-suhu)/15;}
  else if (suhu >= 45){dingin =0;}
  return dingin;
}
unsigned char suhuHangat(){
  if (suhu <= 30){hangat =0;}
  else if (suhu >=30 && suhu <=45){hangat=(suhu-30)/15;}
  else if (suhu >=45 && suhu <=60){hangat=(60-suhu)/15;}
  else if (suhu >= 60){hangat =0;}
  return hangat;
}
unsigned char suhuPanas (){
  if (suhu <=45 ){panas =0;}
  else if (suhu >=45 && suhu <=60){panas=(suhu-45)/15;}
  else if (suhu >= 60){panas =1;}
  return panas;
}

gambar diatas adalah gambar keanggotaan untuk masing masing variable linguistik dari parameter PWM.

Tutorial Fuzzy Logic Controller Arduino (Fuzzifikasi)

dan berikut contoh program nya berdasarkan gambar diatas :

unsigned char pwmLambat(){
  if (pwm <= 100){Lambat =1;}
  else if (pwm >=100 && pwm <=150){Lambat=(150-pwm)/50;}
  else if (pwm >= 150){Lambat =0;}
  return Lambat;
}
unsigned char pwmSedang(){
  if (pwm <= 100){Sedang =0;}
  else if (pwm >=100 && pwm <=150){Sedang=(pwm-100)/50;}
  else if (pwm >=150 && pwm <=200){Sedang=(200-pwm)/50;}
  else if (pwm >= 200){Sedang =0;}
  return Sedang;
}
unsigned char pwmCepat (){
  if (pwm <= 100){Lambat =1;}
  else if (pwm >=150 && pwm <=200){Cepat=(pwm-150)/50;}
  else if (pwm >= 200){Cepat =0;}
  return Cepat;
}

Code Fuzzy Logic (Fuzzyfikasi)

Dan berikut adalah program Arduino untuk bagian FUZZIFIKASI pada tutorial FUZZY LOGIC CONTROLLER.

float suhu;
float dingin,hangat,panas;
float pwm;
float Lambat,Sedang,Cepat;
unsigned char suhuDingin(){
  if (suhu <= 30){dingin =1;}
  else if (suhu >=30 && suhu <=45){dingin=(45-suhu)/15;}
  else if (suhu >= 45){dingin =0;}
  return dingin;
}
unsigned char suhuHangat(){
  if (suhu <= 30){hangat =0;}
  else if (suhu >=30 && suhu <=45){hangat=(suhu-30)/15;}
  else if (suhu >=45 && suhu <=60){hangat=(60-suhu)/15;}
  else if (suhu >= 60){hangat =0;}
  return hangat;
}
unsigned char suhuPanas (){
  if (suhu <=45 ){panas =0;}
  else if (suhu >=45 && suhu <=60){panas=(suhu-45)/15;}
  else if (suhu >= 60){panas =1;}
  return panas;
}
unsigned char pwmLambat(){
  if (pwm <= 100){Lambat =1;}
  else if (pwm >=100 && pwm <=150){Lambat=(150-pwm)/50;}
  else if (pwm >= 150){Lambat =0;}
  return Lambat;
}
unsigned char pwmSedang(){
  if (pwm <= 100){Sedang =0;}
  else if (pwm >=100 && pwm <=150){Sedang=(pwm-100)/50;}
  else if (pwm >=150 && pwm <=200){Sedang=(200-pwm)/50;}
  else if (pwm >= 200){Sedang =0;}
  return Sedang;
}
unsigned char pwmCepat (){
  if (pwm <= 100){Lambat =1;}
  else if (pwm >=150 && pwm <=200){Cepat=(pwm-150)/50;}
  else if (pwm >= 200){Cepat =0;}
  return Cepat;
}
void fuzzifikasi(){
  suhuDingin();
  suhuHangat();
  suhuPanas();
  pwmLambat();
  pwmSedang();
  pwmCepat();
}
void setup() {
  // put your setup code here, to run once:
Serial.begin(9600);
suhu = 54; // contoh kita memasukan nilai suhu 54 derajat
pwm = 104; // contoh kita memasukan nilai pwm 104
fuzzifikasi(); // memanggil fungsi fuzzifikasi untuk menghitung keanggotaan masing2 variable
Serial.print("dingin : ");
Serial.print(dingin);
Serial.print("t");
Serial.print("hangat : ");
Serial.print(hangat);
Serial.print("t");
Serial.print("panas : ");
Serial.println(panas);
Serial.print("lambat : ");
Serial.print(Lambat);
Serial.print("t");
Serial.print("sedang : ");
Serial.print(Sedang);
Serial.print("t");
Serial.print("cepat : ");
Serial.println(Cepat);
}
void loop() {
  // put your main code here, to run repeatedly:
}
Arduino, Tutorial Fuzzy Logic Controller dengan Arduino (Fuzzifikasi)

silahkan ditunggu untuk tutorial FUZZY LOGIC selanjutnya.  karena terlelu banyak jika di jelaskan dalam satu artikel. semoga bermanfaat dan jangan lupa untuk mengikuti anakkendali.com
Bagikan artikel ini dan jangan lupa berkomentar.

Selanjutnya Tutorial Fuzzy Logic Controller dengan Arduino (Rule)

Keyword

  1. Tutorial Fuzzy logic controller
  2. Fuzzy Logic Controller Mamdani
  3. Cara Mendesain Fuzzyfikasi
  4. Mendesain Keanggotaan Fuzzy
  5. Implementasi Fuzzy Arduino

12 Replies to “Tutorial Fuzzy Logic Controller Arduino (Fuzzifikasi)”

  1. fuzy

    maaf ka mw nanyain gimna cara buat nodemcu yang bisa otomatis dan manual pake android,yang memakai algoritma fuzzy logic. minta pencerahaanya makasih

    Reply
    1. herul Post author

      silahkan berkonsultasi dengan nomer wa 083821113634, terimakasih

      Reply
      1. surya

        saya sudah save nomernya, kok tidak ada dikontak wa ya ? apakah nomernya masih aktif ?

        Reply
        1. admin Post author

          langsung aja mas, klik tombol wa yang ada di bawah kanan.

          Reply
  2. junior

    assalamualaikum bang, ingin bertanya kalau untuk suhu rumus else if (suhu >=30 && suhu <=45){dingin=(45-suhu)/15;} yang 15nya dapet dari mana ya? sama yang pwm juga 50nya dapet dari mana ya? mksh bang

    Reply
  3. cibox

    assalamualaikum min. kalau untuk metode mamdani gmna min? dari segi code apanya yang berbeda?

    Reply
      1. Mathias

        Adakah nomor yang bisa dihubungi untuk konsultasi?

        Reply
  4. teuku muhammad syaref

    kalo untuk penyiram tanaman otomatis perintah outputnya bagai mana ya mas? dan nama variabelnya itu apa yah mas?
    terimakasih

    Reply
  5. evan

    apakah mikrokontroler harus connect ke port terlebih dahulu baru bisa dirun pada arduino ide?

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *