Anda di halaman 1dari 10

# SISTEM CERDAS

Aplikasi Perancangan Kontrol Cahaya Lampu dengan Logika Fuzzy pada Arduino dan
Matlab

OLEH:
HENDRIANO DWI PUTRA

## JURUSAN TEKNIK ELEKTRO

FAKULTAS TEKNIK
UNIVERSITAS ANDALAS
2015

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.

## Gambar 1. Design Logika Fuzzy

didesain kedalam fuzzy rule jenis sugeno.

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.

## Gambar 2 : Fungsi Keanggotaan Input Suhu

Untuk outputnya (cahaya) diset dengan tiga keadaan, yaitu dimulai dari keadaan mati
dengan nilai PWM 0, keadaan redup dengan nilai PWM 150, dan terang dengan nilai PWM
255. Maksudnya yaitu, ketika nilai PWM 0, maka lampu akan mati, dan pada saat nilai PWM
150, maka lampu akan redup, dan ketika nilai PWM dari cahaya adalah 255, maka lampu
akan sempurna terangnya, karena dalam arduino nilai 255 merupakan nilai maksimal dari
PWM nya.

## Gambar 4. Rule yang dihasilkan

arduino, yang mana telah di set apabila

## 1.5 < Suhu < 3.5, maka lampu akan redup.

Sedangkan apabila Suhu 1.5, maka lampu akan mati dan Suhu 3.5, lampu akan terang.

## Gambar 5. Fungsi logika untuk set Rule

Gambar di atas merupakan rules yang telah di set di Fuzzy berdasarkan nilai keanggotaan.
2. Implementasi Logika Fuzzy ke dalam Program arduino

int sensorValue = 0;
float bacaSuhu = 0;
int outssr = 3;
float cahaya = 0;
int pinSuhu = A0;
float totalZW, totalW;
int W = {0, 0, 0, 0, 0};
int Z = {0, 0, 0, 0, 0};

## float Suhu NB(float Suhu) {

if (Suhu < 1.5) return 1;
if (Suhu >= 1.5 && Suhu <= 2) return (2 - Suhu) / (0.5);
if (Suhu > 2) return 0;
}
float Suhu NS(float Suhu) {
if (Suhu < 1.5 && Suhu > 2.5)return 0;
if (Suhu >= 1.5 && Suhu <= 2) return (Suhu - 1.5) / (0.5);
if (Suhu > 2 && Suhu <= 2.5)return (2.5 - Suhu) / (0.5);
}
float Suhu Z(float Suhu) {
if (Suhu < 2 && Suhu > 3)return 0;
if (Suhu >= 2 && Suhu <= 2.5) return (Suhu - 2) / (0.5);
if (Suhu > 2.5 && Suhu <= 3)return (3 - Suhu) / (0.5);
}
float Suhu PS (float Suhu) {
if (Suhu < 2.5 && Suhu > 3.5)return 0;
if (Suhu >= 2.5 && Suhu <= 3) return (Suhu - 2.5) / (0.5);
if (Suhu > 3 && Suhu <= 3.5)return (3.5 - Suhu) / (0.5);

}
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 = SuhuLow(bacaSuhu);
W = SuhuLM(bacaSuhu);
W = SuhuMid(bacaSuhu);
W = SuhuHM(bacaSuhu);
W = SuhuHigh(bacaSuhu);
Z = mati(W);
Z = redup(W);
Z = redup(W);
Z = redup(W);
Z = terang(W);

## bacaSuhu = 6 * sensorValue / 1023;

analogWrite(outssr, cahaya);
}
void defuzzifikasi() {
totalZW = (W * Z) + (W * Z) + (W * Z) + (W * Z) + (W *
Z);
totalW = (W + W + W + W + W);
cahaya = totalZW / totalW;
Serial.print("dcPWM: ");
Serial.println(cahaya);
}
void loop() {
inferensi ();
defuzzifikasi ();
Serial.print("Desimal =");
Serial.println(sensorValue);
Serial.print("Vinput =");
Serial.println(bacaSuhu);
delay(1000);
}
3. Pengujian alat
Pada percobaan ini, alat yang digunakan yaitu, SSR, Lampu AC 15 watt,
Arduino Uno, dan sebagai input digunakan Potensiometer(sebagai pengganti sensor
suhu). Percobaan dilakukan dengan tiga kondisi yang telah ditentukan, yang pertama
menguji dari Suhu bernilai 0 hingga Suhu bernilai 255.
Pada saat Suhu bernilai 5, lampu terang sempurna. Sedangkan nilai PWM=nya
bernilai 0. Hal ini dikarenakan nilai PWM pada arduino uno yang mana nilai

## Gambar 6. Serial monitor inputan maksimum pada arduino

Gambar pada serial monitor arduino untuk mengetahui nilai Suhu dan nilai DcPWM.

## Gambar 7. keadaan saat lampu terang dengan nilai Suhu maksimum

Pada saat 1.5 < Suhu < 3.5, maka lampu akan redup. Percobaan dilakukan pada saat Suhu
bernilai 2, dab dapat dilihat lampu tidak terang sempurna (redup).

## Gambar 9. saat keadaan redup dengan nilai Suhu = 2

Dan pada saat Suhu benilai 0, maka lampu tidak menyala. Dan dapat dilihat PWM-nya
bernilai 255.

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

### Dapatkan aplikasi gratis kami

Hak cipta © 2022 Scribd Inc.