Aplikasi Perancangan Kontrol Cahaya Lampu dengan Logika Fuzzy pada Arduino dan
Matlab
OLEH:
HENDRIANO DWI PUTRA
LOGIKA FUZZY
Logika fuzzy mempunyai nilai yang kontinu., Fuzzy dinyatakan dalam derajat dari
suatu keanggotaan dan derajat dari kebenaran. Oleh sebab itu sesuatu dapat dikatakan
sebagian benar dan sebagian salah pada waktu yang sama.
Pada tugas kali ini yaitu mengenai pengontrolan bola lampu dengan inputan
potensiometer yang ditejemahkan dalam logika fuzzy.
1. Perancangan Kontroler dengan Logika Fuzzy pada Matlab
Pada perancangan ini , Pertama dilakukan sebuah design logika fuzzy dimana dalam
perancangan, kami menggunakan basic fuzzy rulenya adalah jenis Sugeno, sehingga
outputannya lebih sederhana dan mudah dibaca.
Kemudian Perancangan ini menggunakan satu input, yang mana inputnya adalah
potensiometer dengan jumlah rule sebanyak 5 buah. Ini artinya, fungsi keanggotaan input
potensiometer (Suhu) dibuat sebanyak 5 buah. Pada fuzzy Suhu terdapat 3 fungsi
keanggotaan berbentuk segitiga , yaitu LM, Mid, dan HM, dan 2 fungsi keanggotaan
berbentuk trapezoid yaitu Low dan High. Rentang semesta pembicaraan dari Suhu diset
bernilai 0 sampai 5.
Sedangkan apabila Suhu 1.5, maka lampu akan mati dan Suhu 3.5, lampu akan terang.
int sensorValue = 0;
float bacaSuhu = 0;
int outssr = 3;
float cahaya = 0;
int pinSuhu = A0;
float totalZW, totalW;
int W[5] = {0, 0, 0, 0, 0};
int Z[5] = {0, 0, 0, 0, 0};
}
float Suhu PB(float Suhu) {
if (Suhu < 3) return 0;
if (Suhu >= 3 && Suhu <= 3.5) return (Suhu - 3.5) / (0.5);
if (Suhu > 3.5) return 1;
}
float mati(float output) {
if (output >= 0 && output <= 1)return 255;
}
float redup(float output) {
if (output >= 0 && output <= 1)return 150;
}
float terang(float output) {
if (output >= 0 && output <= 1)return 0;
}
void setup() {
Serial.begin (9600);
pinMode (outssr, OUTPUT);
}
void inferensi () {
W[0] = SuhuLow(bacaSuhu);
W[1] = SuhuLM(bacaSuhu);
W[2] = SuhuMid(bacaSuhu);
W[3] = SuhuHM(bacaSuhu);
W[4] = SuhuHigh(bacaSuhu);
Z[0] = mati(W[0]);
Z[1] = redup(W[1]);
Z[2] = redup(W[2]);
Z[3] = redup(W[3]);
Z[4] = terang(W[4]);
sensorValue = analogRead(pinSuhu);
Gambar 11. Keadaan dimana lampu tidak menyala dengan nilai Suhu = 0
Daftar Pustaka
Zaini, 2015. Aplikasi Kecerdasan Buatan dengan Matlab dan Arduino.Padang : Andalas
University Press