Teknik Antar Muka
-
Upload
ulpha-diphayuni -
Category
Documents
-
view
66 -
download
10
description
Transcript of Teknik Antar Muka
BAB VIII
DATA LOGGING TEGANGAN MELALUI KOMUNIKASI SERIAL
A. Tujuan
Mahasiswa mampu menggunakan mengantarmukakan serial port PC dengan
mikrokontroller.
Mahasiswa mampu membuat aplikasi menggunakan Borland Delphi untuk
komunikasi serial.
Mahasiswa mampu membuat data logging melalui komunikasi serial.
B. Dasar Teori
Data logging adalah pengukuran dan pencatatan dari parameter fisika atau elektrik
selama periode waktu tertentu. Data yang diukur dan dicatat dapat berupa temperatur,
tekanan, pergeseran, aliran, tegangan, arus, resistansi, daya dan banyak parameter yang lain.
Cakupan produk yang dapat dikategorikan sebagai data logger sangat luas, mulai dari
perangkat sederhana yang hanya dapat melakukan satu buah pengukuran sampai dengan
perangkat yang kompleks yang memberikan fungsi analisis dan display terintegrasi.
Beberapa komponen yang harus dimiliki oleh setiap data logger meliputi:
Hardware untuk mendigitalkan parameter yang dicatat, meliputi sensor, pengkondisi
sinyal dan perangkat keras pengkonversi dari analog ke digital.
Long-term data storage, umumnya berupa memori atau sebuah PC
Perangkat lunak Data-logging untuk akuisisi data, analisis, dan presentasi
C. Alat dan Bahan
1 buah modul mikrokontroller
1 buah downloader mikrokontroller
1 buah kabel serial
1 unit catu daya
D. Prosedur Percobaan
Prosedur Percobaan 1 (Membaca Tegangan)
Buat Program untuk Mikrokontroller
a. Hubungkan modul Mikrokontroller dengan modul I/O dan potensiometer seperti
gambar 3.
b. Hubungkan modul downloader dengan modul Mikrokontroller dan PC
c. Atur setting komunikasi serial dan ADC.
d. Ketik, compile dan donwload program
e. Jalankan system kemudian
f. Amati dan catat hasilnya
Buat Program untuk PC
1. Buatlah program seperti berikut :
2. Komponen/Objek yang digunakan dan pengaturan propertiesnya adalah :
Komponen Properti Nilai Properti
Label1 Caption Tegangan
Label2 Caption 0 V
Button1 Caption Start
Button2 Caption Setting
3. Masukkan perintah-perintah pada kejadian/event disetiap komponen di bawah ini.
Nama
Komponen
Event Perintah
Form1 onCreate procedure TForm1.FormClose(Sender: TObject; varAction: TCloseAction);begincomport1.Close;end;
Button1 onClick Procedure TForm1.Button1Click(Sender: TObject);begincomport1.Open;end;
Button2 onClick procedure TForm1.Button2Click(Sender: TObject);begincomport1.ShowSetupDialog;end;
Comport1 onRxChar procedure TForm1.ComPort1RxChar(Sender:TObject; Count: Integer);var str5: string;var teg : real;begincomport1.ReadStr(str5,count);teg:=strtoint(str5)*5/255;label2.Caption:=floattostr(teg)+' V';end;
4. Jalankan system kemudian beri masukan pada edit1 sesuai dengan tabel.
Tekan button Kirim.
No Karakter di ADC0 Tampilan di Label3
1 1 V
2 2 V
3 3 V
4 4 V
5 5 V
Prosedur Percobaan 2 (Data Logging Tegangan)
Buat Program untuk Mikrokontroller
a. Hubungkan modul Mikrokontroller dengan modul I/O dan seperti gambar 3.
b. Hubungkan modul downloader dengan modul
c. Atur setting komunikasi serial dan ADC.
d. Ketik, compile dan donwload program
e. Jalankan system kemudian
f. Amati dan catat hasilnya
Buat Program untuk PC
1. Buatlah program seperti berikut :
2. Masukkan komponen berikut :
Form Nama Komponen Group
Form1 Label1 Standard
Label2 Standard
Label3 Standard
Label4 Standard
Button1 Standard
Button2 Standard
Mainmenu Standard
Chart Additional
Timer System
Opendialog Dialog
Savedialog Dialog
Comport Cpotrlib
Form2 F1Book activeX
3. Buatlah menu dengan cara double click pada komponen Mainmenu kemudian
masukkan menu berikut ini .
4. Komponen/objek yang digunakan dan pengaturan propertiesnya adalah :
Nama Komponen Properti Nilai Properti
Label1 Caption Nilai ADC
Label2 Caption 0
Label3 Caption Tegangan
Label4 Caption 0
Button1 Caption Start
Button2 Caption Stop
Chart Serieslist Tambahkan series 1 (klik tombol add)
Timer Interval 100
Enable False
5. Masukkan perintah pada kejadian/event disetiap komponen propertiesnya adalah :
Nama
Komponen
Event Perintah
Form1 onCreate
procedure TForm1.FormCreate(Sender: TObject);beginShellExecute(Handle, 'open',PAnsiChar('regsvr32.exe'), PAnsiChar('/s VCF132.OCX'),nil, SW_HIDE);end;
File ==> Open
onClick
procedure TForm1.FormClose(Sender: procedure TForm1.Open1Click(Sender: TObject);var ftype: smallint;beginOpenDialog1.InitialDir:=ExtractFilePath(Application.ExeName);if OpenDialog1.Execute thenbegin
form2.f1book1.Read(opendialog1.FileName,ftype);form2.Visible:=true;end;i:=1;while form2.F1Book1.TextRC[i,1]<>'' dobeginkeluaran:=strtofloat(form2.F1Book1.TextRC[i,1]);series1.AddXY(i,keluaran,'',clTeeColor);i:=i+1;end; end;
File ==> Save
onClick
procedure TForm1.Save1Click(Sender: TObject);beginSaveDialog1.InitialDir:=ExtractFilePath(Application.ExeName);if savedialog1.Execute thenbeginform2.F1Book1.Write(savedialog1.FileName,1);end;end;
File ==> Exit
onClick
procedure TForm1.Exit1Click(Sender: TObject);begincomport1.Close;close;end;
Setting onClick
procedure TForm1.Setting1Click(Sender: TObject);begincomport1.ShowSetupDialog;end;
Timer1 ontimer
procedure TForm1.Timer1Timer(Sender: TObject);begincomport1.WriteStr('A');end;
Button1 onClick
procedure TForm1.Button1Click(Sender: TObject);begincomport1.Open;timer1.Enabled:=true;i:=1;end;
Button2 onClick
procedure TForm1.Button2Click(Sender: TObject);
begintimer1.Enabled:=false;end;
Comport1 onRxchar
procedure TForm1.ComPort1RxChar(Sender: TObject;Count: Integer);var str5: string;var teg: real;begincomport1.ReadStr(str5,count);label2.Caption:='';label2.Caption:=str5;teg:=strtoint(label2.Caption)*5/255;label4.Caption:=floattostr(teg);series1.AddXY(i,teg,'',clTeeColor);form2.F1Book1.TextRC[i,1]:=Label4.Caption;i:=i+1;end;
6. Jalankan system kemudian atur tegangan pada masukkan ADC0 sesuai dengan tabel.
Amati tampilan program.
No Tegangan di ADC0 Tampilan di Label2 Tampilan di Label4
1 1 V
2 2 V
3 3 V
4 4 V
5 5 V
E. Hasil dan Pembahasan
1. Kode Program
a. Percobaan 1
Kode Program pada Code Vision AVR
Analisa Program :
- Header file yang digunakan pada program ini adalah #include <mega8535.h> ,
#include <delay.h> dan #include <stdio.h>
- Header file mega8535.h digunakan untuk mengaktifkan modul mikrokontroler,
delay.h digunakan untuk memberi delay atau waktu pada nyala LED dan stdio.h
digunakan untuk perintah masukan (input) scanf dan keluaran (output) printf.
- Tipe data yang digunakan yaitu integer dan character. Integer digunakan untuk
memasukkan data berupa angka dan char digunakan untuk memasukkan karakter
berupa huruf alfabet, angka, tanda baca, operator aritmatik (+, -, /, *) dan karakter
khusus (@, &, $, #, dll).
- Unsigned int read_adc; merupakan deklarasi variabel data yang akan dimasukkan
yaitu data dengan tipe int pada konversi ADC.
- Unsigned char Z; merupakan deklarasi variabel data yang akan dimasukkan yaitu
data dengan tipe char.
- Pada script #define ADC_VREF_TYPE 0x40 merupakan suatu konstanta.
Instruksi ini digunakan untuk men-setting ADC.
- ADCSRA|=0x40; untuk memulai mengkonversi ADC.
- ADMUX=adc_input | (ADC_VREF_TYPE & 0xff); untuk memberi inisialisasi
pada register ADMUX. Register ini yang mengatur tegangan referensi yang
digunakan oleh ADC.
- ADCSRA |= 0x10; untuk memberi inisialisasi pada register ADCSRA. ADCSRA
merupakan register 8 bit yang berfungsi untuk melakukan manajemen sinyal
control dan status pada ADC.
- SFIOR&=0x0F; untuk memberi inisialisasi pada register SFIOR. SFIOR adalah
register 8 bit yang mengatur sumber pemicu ADC. Jika bit ADATE pada register
ADCSRA bernialai 0 maka ADTS0-2 tidak akan berfungsi.
- // USART Mode: Asynchronous menunjukkan komunikasi data serial yang
digunakan adalah Asynchronous.
- // USART Baud Rate: 19200 menunjukkan kecepatan transmisi (baudrate) yang
digunakan adalah 19200. Pada baud rate 19200, jarak transmisi maksimumnya
adalah 15 m. Apabila kita menggunakan bitrate dan jarak yang lebih besar, maka
akan rentan terhadap data error saat transmisi.
- read_adc(0); untuk mengambil hasil konversi dari inputan.
- Settingan sudah benar apabila pada //USART Receiver : On dan //USART
Transmitter : On
- Printf (“%d”, (int) Z); digunakan untuk menampilkan program dan juga agar data
dapat dikirim lagi ke komputer.
- delay_ms (100); merupakan waktu atau jeda tampilan suatu program yaitu 100
ms.
Kode Program pada Delphi 7 ;
Analisa Program :
- Untuk mengirim data pada program ini menggunakan variabel dengan tipe integer
- Untuk memulai proses pengiriman data maka com serial harus dibuka atau
dikoneksikan terlebih dahulu dengan delphinya.
- Comport digunakan untuk menentukan nomor port serial yang akan dipakai.
- comport1.Open; digunakan untuk membuka koneksi delphi dengan com serial
komputer
- comport1.ReadStr(str1,count); digunakan untuk menerima data dari luar dan
dipindahkan ke variabel str1 yang bertipe integer.
- teg:=strToFloat (tamping) *5/255; adalah script yang digunakan untuk
menghitung nilai digital dalam desimal.
b. Percobaan 2
Kode Program pada Code Vision AVR
Analisa Program :
- Header file yang digunakan pada program ini adalah #include <mega8535.h> dan
#include <stdio.h>
- Header file mega8535.h digunakan untuk mengaktifkan modul mikrokontroler
dan stdio.h digunakan untuk perintah masukan (input) scanf dan keluaran (output)
printf.
- Tipe data yang digunakan yaitu integer dan character. Integer digunakan untuk
memasukkan data berupa angka dan char digunakan untuk memasukkan karakter
berupa huruf alfabet, angka, tanda baca, operator aritmatik (+, -, /, *) dan karakter
khusus (@, &, $, #, dll).
- Unsigned int read_adc (unsigned char adc_input) merupakan deklarasi variabel
data yang akan dimasukkan yaitu data dengan tipe int dan char pada konversi
ADC.
- Unsigned char Z; merupakan deklarasi variabel data yang akan dimasukkan yaitu
data dengan tipe char.
- Pada script #define ADC_VREF_TYPE 0x60 merupakan suatu konstanta.
Instruksi ini digunakan untuk men-setting ADC.
- ADCSRA|=0x40; untuk memulai mengkonversi ADC.
- ADMUX=adc_input | (ADC_VREF_TYPE & 0xff); untuk memberi inisialisasi
pada register ADMUX. Register ini yang mengatur tegangan referensi yang
digunakan oleh ADC.
- ADCSRA |= 0x10; untuk memberi inisialisasi pada register ADCSRA. ADCSRA
merupakan register 8 bit yang berfungsi untuk melakukan manajemen sinyal
control dan status pada ADC.
- SFIOR&=0x0F; untuk memberi inisialisasi pada register SFIOR. SFIOR adalah
register 8 bit yang mengatur sumber pemicu ADC. Jika bit ADATE pada register
ADCSRA bernialai 0 maka ADTS0-2 tidak akan berfungsi.
- // USART Mode: Asynchronous menunjukkan komunikasi data serial yang
digunakan adalah Asynchronous.
- // USART Baud Rate: 19200 menunjukkan kecepatan transmisi (baudrate) yang
digunakan adalah 19200. Pada baud rate 19200, jarak transmisi maksimumnya
adalah 15 m. Apabila kita menggunakan bitrate dan jarak yang lebih besar, maka
akan rentan terhadap data error saat transmisi.
- Settingan sudah benar apabila pada //USART Receiver : On dan //USART
Transmitter : On
- read_adc(0); untuk mengambil hasil konversi dari inputan.
- Printf (“%d”, (int) Z); digunakan untuk menampilkan program dan juga agar data
dapat dikirim lagi ke komputer.
Kode Program pada Delphi 7 ;
Analisa Program :
- Untuk mengirim data pada program ini menggunakan variabel dengan tipe string
- Untuk memulai proses pengiriman data maka com serial harus dibuka atau
dikoneksikan terlebih dahulu dengan delphinya.
- comport1.Open; digunakan untuk membuka koneksi delphi dengan com serial
computer.
- teg:=strtoint (label2.caption) *5/255; adalah script yang digunakan untuk
menghitung nilai digital dalam desimal.
- Timer diatur 100ms atau 0.1 sekon, agar ada delay/jeda waktu dalam
menjalankan program.
2. Tampilan pada Delphi 7
a. Percobaan 1
Tabel Hasil Percobaan
No Karakter di ADC0 Tampilan di Label3
1 1 V 1.078
2 2 V 2.078
3 3 V 3.058
4 4 V 4.019
5 5 V 5
- Ketika 1 Volt - Ketika 2 Volt
- Ketika 3 Volt - Ketika 4 Volt
- Ketika 5 Volt
Analisa Tampilan pada Delphi 7 ;
Untuk mengirim data, program ini menggunakan variabel dengan tipe integer.
Apabila kita mengirimkan data berupa integer pada program Delphi 7 yang telah
dibuat, maka data yang dikirim dengan data yang diterima akan mengalami
perubahan/tidak sesuai dengan data yang dikirim karena ada potensiometer. Dalam
program ini kita menginput tegangan sebesar 1 Volt, outputan yang dihasilkan pada
program Delphi adalah 1.078 Volt. Perbedaan yang terjadi tidak terlalu besar.
b. Percobaan 2
- Ketika 1 Volt
Analisa Tampilan pada Delphi 7 ;
Untuk mengirim data, program ini menggunakan variabel dengan tipe integer.
Apabila kita mengirimkan data berupa integer pada program Delphi 7 yang telah
dibuat, maka data yang dikirim dengan data yang diterima akan mengalami
perubahan/tidak sesuai dengan data yang dikirim karena ada potensiometer. Dalam
program ini kita menginput tegangan sebesar 1 Volt, outputan yang dihasilkan pada
program Delphi adalah 1.07843137254902 Volt. Perbedaan yang terjadi tidak terlalu
besar.
F. Kesimpulan
Pada percobaan kali ini komunikasi data serial yang digunakan adalah
Asynchronous. Kabel USB mengurangi derau dan distorsi selama data dikirim, sehingga
data dapat diterima dengan sedikit kesalahan. Kali ini program yang digunakan adalah
program Delphi 7 dan Code Vision AVR. Pembuatan program interface untuk
komunikasi serial dapat dilakukan dengan menggunakan Delphi 7 sebagai GUI nya.
Delphi 7 tidak mempunyai package serial sehingga package untuk komunikasi serial
perlu di-install terlebih dahulu. Salah satu komponen/package komunikasi serial untuk
delphi adalah Cport. Untuk memulai proses pengiriman data maka com serial harus
dibuka atau dikoneksikan terlebih dahulu dengan delphinya.
IC UART berfungsi untuk mengubah data parallel menjadi data serial dan
menerima data serial yang kemudian diubah kembali menjadi data parallel. Pada UART,
kecepatan pengiriman data (baudrate) dan fase clock pada sisi transmitter dan pada sisi
receiver harus sinkron. Untuk itu diperlukan diperlukan sinkronisasi antara transmitter
dan receiver. Hal ini dilakukan oleh bit ‘Start’ dan bit ‘Stop’.
G. Daftar Rujukan
Digiwarestore.com. Antarmuka Mikrokontroler. (http://www.digiwarestore.com/file/AN
33.pdf), diakses 10 April 2014.
Widiantao, Eko Didik. 2011. Antarmuka Serial Standar.
(http://eprints.undip.ac.id/32648/1 /TSK304-Kuliah6-InterfaceSerial.pdf), diakses 10
April 2014.
Ovi.blogspot.com. 2013. SERIAL PORT. (http://ovi.blog.student.eepis-
its.edu/2013/03/19/serial-port/), diakses 10 April 2014.