• Tidak ada hasil yang ditemukan

Laporan praktikum mikrokontroler dan indonesia

N/A
N/A
Protected

Academic year: 2018

Membagikan "Laporan praktikum mikrokontroler dan indonesia"

Copied!
16
0
0

Teks penuh

(1)

PRAKTIKUM MIKROKONTROLER

LAPORAN PRAKTIKUM

Oleh

Fahmi Ulin Nuha

NIM E32151173

PROGRAM STUDI TEKNIK KOMPUTER

JURUSAN TEKNOLOGI INFORMASI

(2)

Laporan praktikum mikrokontroler perlu menyiapkan bahan bahan yang akan digunakan :

Pendahuluan:

1. Deskripsi Singkat

Visual C# merupakan sebuah alat bantu pemrograman desktop yang berorientasi

objek yang dibuat oleh Microsoft Corporation. Visual C# dapat digunakan untuk

membuat program berbasis grafis dengan menggunakan bahasa pemrograman yang

mirip dengan C++.

Bahan dan aplikasi :

1.

Arduino board

2.

Laptop

3.

Csharpdevlop

4.

Shield arduino uno

1.

Patrikum pertama

Pada praktikum pertama (praktikum 2 P1 dan P2) yaitu mencoba

mengkomunikasikan antara arduino ono dengan port serial lalu menghidupakan led

pada board arduino

Pelaksanakan

Untuk percobaan pertama membuka csharpdevlop dan mulai membuat desain dan

masukan coding agar bisa terkonneksi dengan arduino

Gambar 1 desain pada csharpdevlop

using System;

using System.Collections.Generic; using System.Drawing;

(3)

maksut dalam program diatas adalah menggunakan library yang ada pada csharpdevlop dan yang dibutuhkan di komunikasi serial

namespace fahmi_uln_nuha_E32151173 { public partial class MainForm : Form {

public MainForm() {

}

void RadioButton1CheckedChanged(object sender, EventArgs e) {

program diatas menujukan suatu fungsi , fungsi timer untuk menujukan status terhubung dan mengirimkan data pada arduino untuk bisa terkonneksi

}

void Btn3Click(object sender, EventArgs e) {

serialPort1.PortName= cb1.SelectedItem.ToString();

serialPort1.BaudRate= Convert.ToInt32(cb2.SelectedItem.ToString()); serialPort1.Open();

}

fungsi diatas sebagai pembacaan komunikasi serial jika di klik maka ia kan membaca serialport lalau menconvertnya

void Btn4Click(object sender, EventArgs e) {

serialPort1.Close(); }

fungsi diatas menunjukan pemutusan komunikasi serial

void Btn1Click(object sender, EventArgs e) {

(4)

fungsi diatas memunjukan pengiriman data dengan tipe data karakter “on”

void Btn2Click(object sender, EventArgs e) {

serialPort1.WriteLine("off"); }

fungsi diatas menunjukan pengiriman data dengan tipe data karakter “off” selanjutnya pada arduinonya

String dataTerima; // membuat variable dataTerima

void setup() { // untuk inisialaisasi pin // put your setup code here, to run once: Serial.begin(9600); //mengatifkan serialmonitor

pinMode(13, OUTPUT); // inisialisasi port 13 sebagai output }

void loop() { // pemanggilan program yang akan di ulang // put your main code here, to run repeatedly:

if (Serial.available()>0) // jika ada data serial masuk {

dataTerima= Serial.readStringUntil('\n');} // dibacakan pada tipe data string if (dataTerima == "on") // jika data serial “on”

{

digitalWrite(13, HIGH); //led hidup selama 1 detik delay(1000);

digitalWrite(13, LOW); // led mati selama 1 detik delay(1000);

Serial.println("hidup");

}else

if (dataTerima== "off") jika data “off” {

digitalWrite(13, LOW); // led mati Serial.println("mati");

} }

Program diatas menunjukan led akan hidup jika ada data serial dari csharpdevelop “on” selama 1 detik dan akan mati selama 1 detik lalu akan di ulang lagi , namun akan mati jika

data yang diterima “off”

(5)

Praktikum kedua ini (praktikum ke 3 P1 dan P2) yaitu melakukan komunikas serial antara sharpdevlop dengan arduino board untuk menghidupkan beberapa led dengan bantuan project board.

Pelaksanaan

Pelakasaan praktikum pertama yang dilakukan yaitu menambah button pada desain

sharpdevlop L1 ON , L2 ON, L3 ON, L4 ON, L1 OFF, L2 OFF, L3 OFF dan L4 OFF seperti gambar di bawah

Lalu isi button dengan program untuk mengirim data serial pada arduino , berikut programnya :

void Button1Click(object sender, EventArgs e) {

serialPort1.WriteLine("A"); }

void Button2Click(object sender, EventArgs e) {

serialPort1.WriteLine("B"); }

void Btn7Click(object sender, EventArgs e) {

serialPort1.WriteLine("C"); }

void Btn8Click(object sender, EventArgs e) {

serialPort1.WriteLine("D"); }

void Btn9Click(object sender, EventArgs e) {

serialPort1.WriteLine("a"); }

void Btn10Click(object sender, EventArgs e) {

serialPort1.WriteLine("b"); }

void Btn11Click(object sender, EventArgs e) {

(6)

}

void Btn12Click(object sender, EventArgs e) {

serialPort1.WriteLine("d"); }

Pada program tersebut merupak program untuk mengirimkan data serial yang berupa A,B,C,D,a,b,c dan d , data tersebut dikirim ke arduino board lalu akan di baca sebagai input pada arduino , argar mendapat reaksi dan dapat membac data serialnya maka perlu program pada arduinonya , programnya seperti berikut :

String dataTerima;

digitalWrite(13, 1); delay(nDelay); digitalWrite(13, 0); delay(nDelay); Serial.println(nDelay);

if(dataTerima == "A"){digitalWrite(9, HIGH); Serial.println("led 1 hidup");} if(dataTerima == "B"){digitalWrite(10, HIGH);}

if(dataTerima == "C"){digitalWrite(11, HIGH);} if(dataTerima == "D"){digitalWrite(12, HIGH);}

if(dataTerima == "a"){digitalWrite(9, LOW);Serial.println("led 1 mati");} if(dataTerima == "b"){digitalWrite(10, LOW);}

if(dataTerima == "c"){digitalWrite(11, LOW);} if(dataTerima == "d"){digitalWrite(12, LOW);} }

void loop() {

// put your main code here, to run repeatedly: if(Serial.available()>0)

{

dataTerima = Serial.readStringUntil('\n'); led();

(7)

Program arduino yang di masukan diatas yaitu program untuk membaca kiriman data serial, untuk inisialisasi pin pada arduino lalu reaksi yang akan dilakukan ketika ada inputan data serial , contohnya jika ada inputan “A” maka pin 9 akan aktif dan berlogika satu maka akan

hidup pada let pertama jika ada inputan “a” maka pin sembilan akan berlogika 0 dan amati

pada led pertama.

Prktikum selanjutnya ya itu membuat led berkedip sesuai delay yang di berikan melalui data serial

Pelaksaan

Pertama tambahkan scrolbar dan lalu atur range pada desain seperti gambar berikut

Lalu tambahkan bahkan program pada scrolbarnya

void Scr1Scroll(object sender, ScrollEventArgs e) {

label1.Text= "NILAI:" + scr1.Value.ToString(); }

program menunjukan data serial yang terdapa pada scrolbar

selanjutnya isi program pada arduino , program yang saya masukan seperti ini :

String dataTerima = "off"; int pwm;

int nDelay = 1000; void setup() {

// put your setup code here, to run once: Serial.begin(9600);

pinMode(13, OUTPUT); }

void loop() {

(8)

dataTerima=Serial.readStringUntil('\n');} pwm = dataTerima.toInt();

nDelay = dataTerima.toInt();

analogWrite(13, digitalRead(13)^1); delay (ndelay)

// put your main code here, to run repeatedly: }

Program ini menunjukakan delay yang deberikan sesuai inputan data seria yang di terima dari sharpdevlop

3. Praktitum ke tiga

Praktikum ke tiga (praktikum 4 P1 dan P2)

Praktikum ini dilakukan untuk meredeupkan dan mencerahkan led dengan pwm namun pwmnya di tentukan melauli data serial yang dikirim .

Pelaksaan

Tambahkan timer dan label untuk mengatur tempo dan menampilkan data serial nantinya seperti berikut :

(9)

private void Timer2Tick(object sender, EventArgs e) {

serialPort1.WriteLine(scr1.Value.ToString());

//string dataKirim = "A" + scr1.Value.ToString() + "B" + scr2.Value.ToString() + "C" + scr3.Value.ToString() + "D";

//tx3.Text= dataKirim;

//serialPort1.WriteLine(dataKirim);

}

program tersebut menunjukakan pembacaa data serial pada scrol bar dan mengirimkan data serial nantiny pada arduino board

lalu tambahkan program pada scrol bar dan edit value pada scrol bar

void Scr1Scroll(object sender, ScrollEventArgs e) {

label1.Text= "NILAI:" + scr1.Value.ToString(); }

menampilkan nilai data serial pada label 1

jadi nanti ketika dijalankan akan berdampak redup terangnya led menggunakan pwm yang dikirim melului serial.

Prakktikum selanjutnya yaitu menambah lednya dan lalu menambah program namun dampak yang dilakukan sama dengan yang dilakukan sebelumnya

Pelaksanan

Tambahkan crolbar chekbox dan label yang berfungsi nanti ketika program di jalankan seperti gambar berikut

(10)

Yang pertama pada scrolbar program yang di isi dalam beberapa scrolbar pada sharpdevlop Berikut progrm yang ada :

void Scr1Scroll(object sender, ScrollEventArgs e) {

label1.Text= "NILAI:" + scr1.Value.ToString(); }

void Scr2Scroll(object sender, ScrollEventArgs e) {

label2.Text= "NILAI:" + scr1.Value.ToString(); }

void Scr3Scroll(object sender, ScrollEventArgs e) {

label3.Text= "NILAI:" + scr1.Value.ToString(); }

program diatas memanpilkan data serial pada label

pada timer

private void Timer2Tick(object sender, EventArgs e) {

//serialPort1.WriteLine(scr1.Value.ToString());

string dataKirim = "A" + scr1.Value.ToString() + "B" + scr2.Value.ToString() + "C" + scr3.Value.ToString() + "D";

tx3.Text= dataKirim;

serialPort1.WriteLine(dataKirim); }

data serial yang dikirim yaitu dalam satu data dan di pisahkan dengan huruf abcd , lalu dikirim sebgai variable dataKirim, dataKirim yaitu sebagai variable global

pada chekbox

void CheckBox1CheckedChanged(object sender, EventArgs e) {

(11)

String dataTerima; int nA,nB,nC,nD;

String pwm1,pwm2,pwm3; int npwm1,npwm2,npwm3;

void setup() {

// put your setup code here, to run once: Serial.begin(9600);

pinMode(9, OUTPUT); pinMode(10, OUTPUT); pinMode(11, OUTPUT);

}

void loop() {

if(Serial.available()>0) {

dataTerima = Serial.readStringUntil('\n'); }

nA = dataTerima.indexOf("A"); nB = dataTerima.indexOf("B"); nC = dataTerima.indexOf("C"); nD = dataTerima.indexOf("D");

pwm1= dataTerima.substring(nA+1,nB); pwm2= dataTerima.substring(nB+1,nC); pwm3= dataTerima.substring(nC+1,nD);

npwm1 = pwm1.toInt(); npwm2 = pwm2.toInt(); npwm3 = pwm3.toInt();

analogWrite(9,npwm1); analogWrite(10,npwm2); analogWrite(11,npwm3);

// put your main code here, to run repeatedly:

}

Program arduino ini berfungsi sama dengan praktikum sebelumnya yaitu mambaca serial untuk dijadikan pwm sebagai redup terangnya led

4. Praktikum ke empat

Pada praktikum (praktikum ke 5 P1 da P2) yaitu memapilkan nama pada label dengan komunikasi serial

Pelaksanaan

Tambahkan label dan serial port

(12)

void SerialPort1DataReceived(object sender, SerialDataReceivedEventArgs e) {

dataTerima = serialPort1.ReadLine(); setText(dataTerima);

dataTerima=""; }

program tersebut untuk meneriam data serial yang dikirim

void setText(string data) {

if(this.labelDataSerial.InvokeRequired) {

stringInvoke d = new stringInvoke (setText); this.Invoke(d, new object[] {data});

} else {

this.labelDataSerial.Text=data; }

}

data serial yang akan dikirim

lalu tambahakn variable dataTerima pada variable global di bagian atas

string dataTerima;

delegate void stringInvoke(string text);

lalu tambhakan lagi program terakhir yaitu program arduinonya

void setup() {

// put your setup code here, to run once: Serial.begin(57600);

}

void loop() {

// put your main code here, to run repeatedly: Serial.println("E32151173");

delay(1000);

Serial.println("fahmi ulin nuha"); delay(1000);

}

Program tersebut untuk mengirimkan data serial pada sharp devlop , akan di tampilkan pada interface sharp devlop

(13)

Pelaksanaan

Pertama tambahakann 6 gambar yang dimasukan pada 6 picturebox tambahakn lalu timpa gambar 1 sama yang lain

Lalu tambahkan program berikut pada timer1

if(labelDataSerial.Text.Substring(0,1) =="1") //if(scr1.Value<=74)

program di atas dijalankan untuk cheng gambar jika logika satu benar maka gambar 1 tampil jika 0 salah maka gambar 2 yang akan tampil , begitu seterusnya samapai gambar 6

lalu program ini ke arduino

(14)

}

void coba() {

int pinA0 = digitalRead(14); int pinA1 = digitalRead(15); int pinA2 = digitalRead(16);

if (pinA0 == LOW )

Serial.println("0"); }

else {

Serial.println("1"); }

delay(500); }

void loop() { coba();}

program diatas mengirim data sesuai inputan yang di lakukan , data yang dikirim berupa data serial yang kan dikirim pada interface dan dibaca sebagi input untuk mengubah gambar

5. Praktikum ke lima

Praktikum yang ke lima (praktikum 6 P1 dan P2 ) yaitu membaca data analog pada shield arduino

(15)

Pasang shield pada arduino lalu bacakan datanya sebagi imputan untuk menyalakan scrolbral berjalan sesuai imputan yang dibaca , lalu ubah value sesuai max masukan nilai

Lalu untuk program dari interface untuk membaca seperti berikut :

int nA = labelDataSerial.Text.IndexOf("A"); int nB = labelDataSerial.Text.IndexOf("B"); int nC = labelDataSerial.Text.IndexOf("C"); int nD = labelDataSerial.Text.IndexOf("D");

label1.Text= "Nilai: " + labelDataSerial.Text.Substring(nA +1, nB - nA-1); label2.Text= "Nilai: " + labelDataSerial.Text.Substring(nB +1, nC - nB-1); label3.Text= "Nilai: " + labelDataSerial.Text.Substring(nC +1, nD - nC-1);

int d1 = Convert.ToInt32(labelDataSerial.Text.Substring(nA +1, nB - nA-1)); int d2 = Convert.ToInt32(labelDataSerial.Text.Substring(nB +1, nC - nB-1)); int d3 = Convert.ToInt32(labelDataSerial.Text.Substring(nC +1, nD - nC-1));

scr1.Value= d1; scr2.Value= d2; scr3.Value= d3;

di atas adalah program untuk membaca data serial dan memetakan nilai yang akan di baca

sementara program transmiter serialnya seperti berikut

maksut program diatas adalah mengirimkan nilai serial yaitu Abil1Bbil2Cbil3D

6. Praktikum ke enam

Pada praktikum ke enam (praktikum 7 P1 dan P2) Yaitu menampilkan data dan menyimpannya

Pelaksanaan

(16)

void Timer3Tick(object sender, EventArgs e) {

string dataRecord;

System.DateTime localDate= System.DateTime.Now;

dataRecord = localDate.ToString() + ":" + scr3.Value.ToString(); lbx1.Items.Add(dataRecord);

program tersebut yaitu berfungsi untuk menampilkan data pada lisbox

berikut program untuk memulai record

void Cx1CheckedChanged(object sender, EventArgs e) {

if (cx1.Checked == true) {

timer3.Enabled=true; }

else {

timer3.Enabled=false; }

Gambar

Gambar 1 desain pada csharpdevlop
gambar 1 sama yang lain

Referensi

Dokumen terkait

Sehingga secara khusus penelitian ini bertujuan untuk mempelajari pengaruh ukuran diameter dan tinggi benda uji terhadap nilai kuat tarik belah pasir yang distabilisasi dengan

Belum digunakan SPM, Indikator Kinerja, Analisis Standar Belanja dan juga Standar Satuan Harga, dalam perencanaan anggaran belanja bantuan sosial di Kabupaten

Dalam kaitannya dengan perdagangan internasional, maka produk pangan yang diperdagangkan harus memenuhi persyaratan yang berlaku di negara tujuan ekspor, antara lain

Berdasarkan paparan di atas bahwa peristiwa yang paling banyak mengandung data nilai-nilai pendidikan karakter di temukan di dalam adegan film Alangkah

Petani juga dapat mengetahui manfaat penggunaan pupuk kompos ke tanaman yaitu kompos dapat memperbaiki struktur tanah berlempung sehingga menjadi ringan, memperbesar daya

Berdasarkan uraian diatas dapat disimpulkan bahwa kemampuan berkomunikasi interpersonal pada pasangan suami istri mempunyai pengaruh yang cukup besar bagi

Komisi Yudisial bukan pula dibentuk untuk maksud memberantas mafia peradilan, karena mafia peradilan sudah termasuk kategori kejahatan dan pelanggaran hukum yang

Ekskresi pada 48 jam setelah penyuntikan menunjukkan bahwa sekitar 94,5 % komplek 153Gd_DTPA sudah diekskresikan baik lewat ginjal/urin (79, 4 %) maupun lewat feces ( 15,1 %) dan