You are on page 1of 2

#include <Fuzzy.

h>

// Inisialisasi sensor tegangan 1


const int sensor1Pin = A0;
const float sensor1Scale = 50.0; // 1V = 50kV
const float sensor1Low = 0.0;
const float sensor1Medium = 2.8;
const float sensor1High = 3.6;

// Inisialisasi sensor tegangan 2


const int sensor2Pin = A1;
const float sensor2Scale = 0.44; // 1V = 0.44mA
const float sensor2Low = 0.0;
const float sensor2Medium = 1.0;
const float sensor2High = 2.0;

// Inisialisasi pin trigger digital


const int triggerPin = 2;

// Inisialisasi objek Fuzzy


Fuzzy fuzzy;

// Inisialisasi variabel keanggotaan Fuzzy


FuzzySet voltage1Low, voltage1Medium, voltage1High;
FuzzySet voltage2Low, voltage2Medium, voltage2High;

void setup() {
Serial.begin(9600);

// Inisialisasi sensor tegangan 1


fuzzy.begin();
voltage1Low = fuzzy.createSet(sensor1Low, sensor1Medium, sensor1Medium);
voltage1Medium = fuzzy.createSet(sensor1Low, sensor1High, sensor1Low,
sensor1Medium);
voltage1High = fuzzy.createSet(sensor1Medium, sensor1High, sensor1High);

// Inisialisasi sensor tegangan 2


voltage2Low = fuzzy.createSet(sensor2Low, sensor2Medium, sensor2Medium);
voltage2Medium = fuzzy.createSet(sensor2Low, sensor2High, sensor2Low,
sensor2Medium);
voltage2High = fuzzy.createSet(sensor2Medium, sensor2High, sensor2High);

// Inisialisasi pin trigger digital


pinMode(triggerPin, INPUT);
}

void loop() {
// Membaca nilai sensor tegangan
float voltage1 = analogRead(sensor1Pin) * (5.0 / 1023.0) * sensor1Scale;
float voltage2 = analogRead(sensor2Pin) * (5.0 / 1023.0) * sensor2Scale;

// Menentukan status tegangan dari sensor 1


fuzzy.setInput(voltage1, voltage1Low, voltage1Medium, voltage1High);

// Menentukan status tegangan dari sensor 2


fuzzy.setInput(voltage2, voltage2Low, voltage2Medium, voltage2High);

// Menjalankan inferensi Fuzzy


fuzzy.fuzzify();
// Mengambil nilai keluaran Fuzzy
float output = fuzzy.defuzzify();

// Mengecek trigger digital


int trigger = digitalRead(triggerPin);

// Menampilkan hasil
Serial.print("Sensor 1 Voltage: ");
Serial.print(voltage1);
Serial.print(" kV, Sensor 2 Voltage: ");
Serial.print(voltage2);
Serial.print(" mA, Anomaly Score: ");
Serial.print(output);
Serial.print(", Trigger: ");
Serial.println(trigger);

delay(1000);
}

You might also like