Anda di halaman 1dari 13

LAPORAN PRAKTIKKUM KENDALI AKUISISI DATA

MEMBUAT PROGRAM SEDERHANA KENDALI FUZZY DENGAN MICROSOFT VISUAL STUDIO


2017

Dosen Pengampu : Dr. phil. Didik Hariyanto, S.Pd.T, MT

Disusun Oleh :
Faris Alfianto 1918241039

PROGRAM STUDI PENDIDIKAN TEKNIK MEKATRONIKA


JURUSAN PENDIDIKAN TEKNIK ELEKTRO
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA
2022
A. TOPIK
Pengenalan dan membuat program sederhana kendali fuzzy dengan microsoft visual studio
2012
B. TUJUAN
Setelah melakukan praktik ini mahasiswa dapat memahami dan menggunakan Visual C# untuk
membuat program sederhana. Adapun sub kompetensi dari topic praktik ini adalah:
1. Mengetahui mengenai dasar-dasar pemrograman dengan Visual C#,
2. Memahami cara memprogram serial port (COM) dengan komponen serial Port
3. Dapat melakukan interfacing VC# dengan virtual term dan serial monitor Arduino via
serial port (emulator)
4. Dapat melakukan pemrograman VC# untuk mengirim dan menerima data dengan
serial port.
5. Dapat membuat kendali dengan fuzzy tsukamoto
C. DASAR TEORI
Menurut (Nurhadi, Indrayuni, & Sinnun, 2015)“Basis Data secara umum berarti
kumpulan informasi yang disimpan di dalam komputer secara sistematik sehingga dapat
diperiksa menggunakan suatu program komputer untuk memperoleh informasi dari basis
data tersebut”.
Menurut (Hendini, 2016) dalam Asrianda dalam Urva, Gellysa ”Database adalah
sekumpulan tabel-tabel yang saling berelasi, relasi tersebut bisa ditunjukkan dengan kunci
dari tiap tabel yang ada. Satu database menunjukkan satu lingkup perusahaan atau instansi”.
Berdasarakan pengertian diatas dapat disimpulkan bahwa basis data atau database
adalah suatu tempat berkumpulanya informasi yang saling berelasi yang ditunjuk berdasarkan
kunci dari tiap tabel sehingga program yang menggunakan basis data atau database dapat
memeperoleh informasi dari basis data atau database tesebut.

D. ALAT DAN BAHAN


1. Komputer atau laptop dengan sudah terpasang software Visual Studio
2. Software Virtual Serial
3. Software Proteus
E. KESEHATAN DAN KESELAMTAN KERJA
1. Pastikan anda tangan dan kaki tidak kondisi basah.
2. Duduk di kursi komputer dengan baik dan benar, minimal jarak antara mata anda
dengan layar komputer 30 cm. Memakai kacamata lebih baik.
3. Pergunakan komputer atau laptop dengan langkah-langkah yang baik dan benar,
Ketika menghidupkan, menggunakan dan mematikan

F. LANGKAH DAN HASIL PRAKTIKUM


Setting Virtual Serial
1. Mengunduh lalu menginstall software com0com. Setelah selesai software dibuka

2. Merubah nama com pada virtual port pair dengan nama COM1 dan COM2. Setelah itu
apply
Setting Visual Studio
1. Membuka program visual studio lalu membuat project baru

2. Pilih Create new project (bisa juga lewat menu File).


3. Pastikan pilih Windows Desktop lalu pilih Windows Forms App (.NET Framework) Beri
nama aplikasi. Psatikan lokasi penyimpanan. Lalu klik OK.

4. Mulai membuat tampilan sederhan. Menambahkan komponen yang diperlukan seperti


button, graph dan textbox di menu toolbox

5. Mengetikkan program sesuai tiap komponen dan membuat rumus untuk fuzzynya yang
sudah dimasukkan pada halaman desain.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication3
{
public partial class Form1 : Form
{
string data;
double a, b, nilai1, nilai2, BA, BB;
public Form1()
{
InitializeComponent();
radioButton1.Checked = true;

private void button1_Click(object sender, EventArgs e)


{
serialPort1.Open();
//serialPort1.WriteLine("Open");
}

private void button2_Click(object sender, EventArgs e)


{
serialPort1.Close();
}

private void textBox1_TextChanged(object sender, EventArgs e)


{

private void button3_Click(object sender, EventArgs e)


{
serialPort1.Write(textBox1.Text);
}

private void button5_Click(object sender, EventArgs e)


{
timer1.Enabled = true;
}

private void button4_Click(object sender, EventArgs e)


{
timer1.Enabled = false;
}
private void timer1_Tick(object sender, EventArgs e)
{
try
{
b = 0;
data = serialPort1.ReadLine();

textBox1.Text = data;

char[] spearator = { '-' };


String[] strlist = data.Split(spearator);

foreach (String s in strlist)


{
b++;
if (b == 1)
{
richTextBox1.Text = s + Environment.NewLine +
richTextBox1.Text;
nilai1 = Convert.ToDouble(s);
}
if (b == 2)
{
richTextBox2.Text = s + richTextBox2.Text;
nilai2 = Convert.ToDouble(s);
}
}
if (checkBox1.Checked == true )
{
string nama_file = "H:\\data_19518241017.txt" ;
System.IO.StreamWriter TulisFile ;
TulisFile = new System.IO.StreamWriter (nama_file , append : true
);
TulisFile.Write ( data );
TulisFile.Close ( );
TulisFile = null;
}
a++;
axMathworks_Strip1.AddXY(0, a, nilai1);
axMathworks_Strip2.AddXY(0, a, nilai2);

if (radioButton2.Checked == true)
{
//fuzzifikasi variabel 1 - tingkat kelembaban
double uRendah, uTinggi;
{
BB = double.Parse(textBox3.Text);
BA = double.Parse(textBox2.Text);
uRendah = rumus.turun(BB, BA, nilai1);
uTinggi = rumus.naik(BB, BA, nilai1);
}
//fuzzifikasi variabel 2 - tingkat pencahayaan
double uRedup, uTerang;
{
BB = double.Parse(textBox5.Text);
BA = double.Parse(textBox6.Text);
uRedup = rumus.turun(BB, BA, nilai2);
uTerang = rumus.naik(BB, BA, nilai2);
}

double pelan, kencang;


pelan = double.Parse(textBox7.Text);
kencang = double.Parse(textBox8.Text);
double p1, p2, p3, p4, z1, z2, z3, z4, z;
//inferensi R1
p1 = Math.Min(uRendah, uRedup);
z1 = kencang - ((kencang - pelan) * p1);
//inferensi R2
p2 = Math.Min(uRendah, uTerang);
z2 = kencang - ((kencang - pelan) * p2);
//inferensi R3
p3 = Math.Min(uTinggi, uRedup);
z3 = pelan + ((kencang - pelan) * p3);
//inferensi R4
p4 = Math.Min(uTinggi, uTerang);
z4 = pelan + ((kencang - pelan) * p4);
//defuzzifikasi
z = ((p1 * z1) + (p2 * z2) + (p3 * z3) + (p4 * z4)) / (p1 + p2 + p3 +
p4);
textBox9.Text = z.ToString();

if (z >= 600)
{
textBox4.BackColor = Color.Green;
serialPort1.WriteLine("1");
}
else
{
textBox4.BackColor = Color.Red;
serialPort1.WriteLine("0");
}

}
}
catch { }
}

private void label1_Click(object sender, EventArgs e)


{

private void radioButton1_CheckedChanged(object sender, EventArgs e)


{

private void Form1_Load(object sender, EventArgs e)


{

private void button8_Click(object sender, EventArgs e)


{
BA = Convert.ToDouble(textBox2.Text);
}

private void button9_Click(object sender, EventArgs e)


{
BB = Convert.ToDouble(textBox3.Text);
}

private void button6_Click(object sender, EventArgs e)


{
if ((serialPort1.IsOpen) & (radioButton1.Checked == true))
serialPort1.WriteLine("1");

private void button7_Click(object sender, EventArgs e)


{
if ((serialPort1.IsOpen) & (radioButton1.Checked == true))
serialPort1.WriteLine("0");
}

private void label2_Click(object sender, EventArgs e)


{

}
}
public partial class rumus
{
//BB:Batas Bawah , BA:Batas Atas
public static double turun(double BB, double BA, double input)
{
double u;
if (input <= BB) { u = 1; }
else if (input >= BA) { u = 0; }
else { u = (BA - input) / (BA - BB); }
return u;
}
public static double naik(double BB, double BA, double input)
{
double u;
if (input <= BB) { u = 0; }
else if (input >= BA) { u = 1; }
else { u = (input - BB) / (BA - BB); }
return u;
}
}
}

6. Menambahkan fungsi serial untuk komunikasi. Mengatur COM dan baudratenya


menyesuaikan komunikasi yang digunakan.

7. Menambahkan fungsi timer agar ada jeda interval setiap komunikasi

Setting Proteus
1. Membuka proteus, lalu new project untuk membuat project baru.
2. Menambahkan komponen yang dibutuhkan seperti arduino uno, compim dan pothg lalu.
Menghubungkan setiap komponen yang sudah ditambahkan tersebut.

3. Pada komponen compim memilih port COM4 dan baudrate yang sama pada visual studio
4. Masuk ke arduino ide untuk memprogram arduino. Program arduinonya adalah sebagai
berikut ini.
void setup() {
Serial.begin(9600);
pinMode(4,OUTPUT);
}
void loop() {
int sensorValue1 = analogRead(A0);
int sensorValue2 = analogRead(A1);
Serial.print(sensorValue1);
Serial.print("-");
Serial.println(sensorValue2);
delay(100);
while (Serial.available())
{
char i = Serial.read();
if (i == '1') digitalWrite(4,HIGH);
if (i == '0') digitalWrite(4,LOW);
}
}

8. Memilih board arduino uno pada menu tools. Lalu pilih export compiled binary pada menu
skeetch maka ada file hex pada folder

9. Memasukkan file type hex tersebut ke arduino pada proteus dengan cara double klik lalu
pilih file yang tadi
G. HASIL

H. KESIMPULAN
Pada praktikum kali ini dapat disimpulkan bahwa komunikasi antara Arduino dengan visual
studio dapat digunakan untuk pengunaan program fuzzy logic.

Anda mungkin juga menyukai