Top Banner
Tutorial Antarmuka Mikrokontroler dan Komputer dengan Visual Basic (Interface Microcontroller and Computer with Visual Basic) Visual Basic dapat digunakan untuk aplikasi akuisisi data dengan database dan chart, absen, menerima dan mengirim data, yang semuanya terhubung dengan port serial. Sebelum mengembangkan aplikasi lebih jauh, sekarang saya akan memberikan tutorial cara menampilkan data yang diterima pada port serial dengan Visual Basic. Data dikirimkan melalui mikrokontroler ke port serial komputer melalui IC MAX232 yang berfungsi sebagai pengubah level tegangan TTL dari mikrokontroler menjadi level tegangan RS232 pada port serial komputer, dan sebaliknya untuk mengubah dari tegangan RS232 menjadi tegangan TTL mikrokontroler. Rangkaiannya seperti ini: Untuk pemrograman mikrokontroler saya menggunakan Bascom AVR, untuk mengirimkan data serial perintahnya adalah print, jika menggunakan CodeVision perintahnya adalah printf. Hal paling penting yang harus diperhatikan pada komunikasi serial ini adalah besarnya Baud Rate yang digunakan, biasanya adalah 9600 bps. Listing program dengan Bascom AVR yang akan ditampilkan pada Visual Basic ini sbb:
21

Tutorial Antarmuka Mikrokontroler Dan Komputer Dengan Visual Basic

Dec 26, 2015

Download

Documents

Selamat Lestari

free
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Tutorial Antarmuka Mikrokontroler Dan Komputer Dengan Visual Basic

Tutorial Antarmuka Mikrokontroler dan Komputer dengan Visual Basic (Interface Microcontroller and Computer with Visual Basic)

Visual Basic dapat digunakan untuk aplikasi akuisisi data dengan

database dan chart, absen, menerima dan mengirim data, yang semuanya

terhubung dengan port serial. Sebelum mengembangkan aplikasi lebih

jauh, sekarang saya akan memberikan tutorial cara menampilkan data

yang diterima pada port serial dengan Visual Basic. 

Data dikirimkan melalui mikrokontroler ke port serial komputer melalui

IC MAX232 yang berfungsi sebagai pengubah level tegangan TTL dari

mikrokontroler menjadi level tegangan RS232 pada port serial komputer,

dan sebaliknya untuk mengubah dari tegangan RS232 menjadi tegangan

TTL mikrokontroler. Rangkaiannya seperti ini:

Untuk pemrograman mikrokontroler saya menggunakan Bascom AVR,

untuk mengirimkan data serial perintahnya adalah print, jika

menggunakan CodeVision perintahnya adalah printf. Hal paling penting

yang harus diperhatikan pada komunikasi serial ini adalah besarnya

Baud Rate yang digunakan, biasanya adalah 9600 bps.

Listing program dengan Bascom AVR yang akan ditampilkan pada Visual

Basic ini sbb:

'=======================================

'Tes Port Serial

'Wahyu Rahmaniar

'Technologination

'=======================================

Page 2: Tutorial Antarmuka Mikrokontroler Dan Komputer Dengan Visual Basic

$regfile = "m32def.dat"

$crystal = 11059200

$baud = 9600

Do

Print "Tes Port Serial"

Wait 1

Print "By Technologination"

Wait 1

Print "Wahyu Rahmaniar"

Wait 1

Loop

Sebelum dicoba ke Visual Basic, jika rangkaian sudah siap maka kita

ujicoba terlebih dahulu ke Hyperterminal. Buka Start --> All Programs --

> Accessories --> Communications --> HyperTerminal. Maka akan tampil

seperti ini:

Beri nama bebas, misalnya "Serial". 

Tetapi jika pada komputer Anda HyperTerminal baru pertama kali

digunakan, maka yang akan muncul adalah form pengaturan

HyperTerminal, kemudian isi Country/region dan Area code bebas.

Selanjutnya setelah klik OK, tampil pengaturan koneksi sbb:

Page 3: Tutorial Antarmuka Mikrokontroler Dan Komputer Dengan Visual Basic

Pilih COM Port atau Connect using yang digunakan, jika menggunakan

DB9 biasa COM1 atau COM2, dan jika menggunakan kabel konverter

DB9 to USB maka cek port yang digunakan pada Device Manager.

Setelah itu klik OK, maka akan tampil form pengaturan COM Properties:

Isi pengaturan sesuai dengan gambar diatas, yaitu Bits per second atau

Baud rate 9600, Data bits 8, Parity None, Stop Bits 1, dan Flow control

None.

Klik Apply atau OK, jika koneksi sudah benar maka akan ditampilkan

data yang dikirimkan dari mikrokontroler sbb:

Page 4: Tutorial Antarmuka Mikrokontroler Dan Komputer Dengan Visual Basic

Koneksi port serial sudah beres, selanjutnya kita buat tampilan Visual

Basic nya, buka software Visual Basic, dan pilih Standar EXE kemudian

Open, maka akan tampil form utama VB seperti ini:

Kemudian letakkan satu Label, dua ComboBox, satu TextBox, dua

CommandButton, dan satu Timer pada Form1 tsb.

Page 5: Tutorial Antarmuka Mikrokontroler Dan Komputer Dengan Visual Basic

              

   

Pada Visual Basic 6 ini, untuk mengakses port serial dengan

menggunakan MSCOMM yang dapat ditambahkan dengan cara, klik

kanan pada ToolBar dan pilih Components:

Kemudian cari Microsoft Comm Control 6, dan klik Apply:

Page 6: Tutorial Antarmuka Mikrokontroler Dan Komputer Dengan Visual Basic

dan tambahkan MsComm tersebut pada Form1:

Kemudian susun semua komponen pada Form1 tersebut menjadi seperti

ini:

Page 7: Tutorial Antarmuka Mikrokontroler Dan Komputer Dengan Visual Basic

Lakukan pengaturan pada properties sbb:

- Untuk mengubah warna background, klik pada Form1 dan pilih

Properties --> BackColor.Untuk mengganti tulisan ganti Caption,

misalnya menjadi Tes Port Serial.

- Pada properties Label, isi tulisan Caption menjadi Tes Port Serial,

Alignment --> Centre, BackStyle --> 0-Transparent. Pada tampilan ini

saya menggunakan Font --> MS Sans Serif --> regular --> 14.

- Pada Combo1 ganti Text menjadi 9600, dan pada Combo2 ganti Text

menjadi COM1.

- Pada TextBox, hapus tulisan pada Text, pilih Multiline --> True,

ScrollBars --> 2-Vertical, dan agar tulisannya seperti Hyperterminal,

ganti Font menjadi Terminal --> Regular --> 14.

- Pada Command1, ganti (Name) --> cmdConnect dan Caption --

>Connect. Pada Command2, ganti (Name) --> cmdDisconnect dan

Page 8: Tutorial Antarmuka Mikrokontroler Dan Komputer Dengan Visual Basic

Caption --> Disconnect. Font yang saya gunakan adalah MS Sans Serif --

> Regular --> 10.

- Pada Timer1 beri nilai interval 1000, yang berarti 1000 milisecond atau

1 detik.

Biasakanlah untuk memberi nama CommandButton dengan awalan cmd,

Label dengan awalan lbl, dan TextBox dengan awalan txt, tujuannya

untuk mempermudah pengenalan jika program yang dibuat terdiri dari

banyak CommandButton, Label, dan TextBox. 

Kemudian simpan dengan pilih, File --> Save Project AS.

Jika pengaturan sudah selesai, maka tampilan Form1 menjadi seperti ini:

Klik pada bagian dalam Form yang berwarna, sehingga muncul tulisan

sbb:

Page 9: Tutorial Antarmuka Mikrokontroler Dan Komputer Dengan Visual Basic

Kemudian isikan dengan listing program berikut:

Private Sub Form_Load()

With Combo1

        .AddItem "COM1"

        .AddItem "COM2"

        .AddItem "COM3"

        .AddItem "COM4"

        .AddItem "COM5"

        .AddItem "COM6"

        .AddItem "COM7"

        .AddItem "COM8"

        .AddItem "COM9"

End With

With Combo2

        .AddItem "2400"

        .AddItem "4800"

        .AddItem "9600"

        .AddItem "19200"

        .AddItem "38400"

        .AddItem "56600"

End With

Timer1.Enabled = False

cmdConnect.Enabled = True

cmdDisconnect.Enabled = False

End Sub

Program diatas berarti akan dijalankan ketika form di load, atau ketika

program VB Tes Port Serial ini dibuka.

Klik pada cmdConnect sehingga muncul tulisan sbb:

Page 10: Tutorial Antarmuka Mikrokontroler Dan Komputer Dengan Visual Basic

dan ketikkan listing program sbb:

Private Sub cmdConnect_Click()

Dim port As Integer

On Error GoTo errcode

Select Case Combo1.ListIndex

Case -1

    port = 1

Case 0

    port = 1

Case 1

    port = 2

Case 2

    port = 3

Case 3

    port = 4

Case 4

    port = 5

Case 5

    port = 6

Case 6

    port = 7

Case 7

    port = 8

Case 8

    port = 9

End Select

If MSComm1.PortOpen = False Then

    MSComm1.CommPort = port

    MSComm1.RThreshold = 1

    MSComm1.InputLen = 40

    MSComm1.Settings = Combo2.List(Combo2.ListIndex) &

Page 11: Tutorial Antarmuka Mikrokontroler Dan Komputer Dengan Visual Basic

",N,8,1"

    MSComm1.PortOpen = True

cmdConnect.Enabled = False

cmdDisconnect.Enabled = True

End If

Exit Sub

errcode:

    MsgBox "Port Salah !", vbOKOnly, "Peringatan"

    Combo1.SetFocus

End Sub

Program diatas akan dijalankan ketika button Connect diklik, yang

berarti jika pemilihan port yang digunakan benar maka port serial akan

terbuka atau True, dan jika salah maka akan tampil peringatan "Port

Salah!". 

InputLen adalah banyaknya data yang diterima port serial pada sekali

pengiriman, diberi nilai semaksimal mungkin, misalnya 40 karakter.

Settings adalah pengaturan komunikasi serial, baud rate didapatkan dari

pemilihan nilai pada Combo2, N adalah Parity None, 8 adalah Data bits,

dan 1 adalah Stop bits, sama seperti pengaturan pada HyperTerminal

yang telah dijelaskan sebelumnya.

Jika port serial sudah terhubung maka cmdConnect disabled dan

cmdDisconnect enabled.

atau bisa juga untuk deteksi port secara otomatis sbb:

Private Sub cmdConnect_Click()

Dim port As Integer

On Error Resume Next

For port = 1 To 20

If MSComm1.PortOpen = False Then

    MSComm1.CommPort = port

    Combo1.ListIndex = (MSComm1.CommPort) - 1

    MSComm1.RThreshold = 1

Page 12: Tutorial Antarmuka Mikrokontroler Dan Komputer Dengan Visual Basic

    MSComm1.InputLen = 40

    MSComm1.Settings = Combo2.List(Combo2.ListIndex) &

",N,8,1"

    MSComm1.PortOpen = True

cmdConnect.Enabled = False

cmdDisconnect.Enabled = True

End If

Next

Exit Sub

End Sub

Kalau deteksi secara otomatis, COM Port tidak perlu dipilih, yang harus

dipilih baud rate nya saja, lalu nanti tampilan Combo Box untuk COM

Port sesuai dengan hasil deteksi.

Klik pada cmdDisconnect dan ketikkan listing program sbb:

Private Sub cmdDisconnect_Click()

If MSComm1.PortOpen = True Then

    MSComm1.PortOpen = False

End If

cmdConnect.Enabled = True

cmdDisconnect.Enabled = False

End Sub

Jika port serial terputus, maka cmdConnect enabled, cmdDisconnect

disabled, dan Timer1 non aktif.

Klik pada MsComm1 dan ketikkan listing program sbb:

Private Sub MSComm1_OnComm()

Dim buffer As String

Dim temp As String

buffer = MSComm1.Input

Page 13: Tutorial Antarmuka Mikrokontroler Dan Komputer Dengan Visual Basic

If buffer <> "" Then

With Text1

    .SelStart = Len(.Text)

    .SelText = buffer

End With

End If

End Sub 

Buffer merupakan variabel yang akan menerima data dari port serial

atau MsComm1.Input, jika data tidak kosong atau "", maka pada

Textbox1 ditambahkan baris setiap menerima data.

Klik pada Timer dan ketikkan listing program sbb:

Private Sub Timer1_Timer()

MSComm1_OnComm

End Sub

yang berarti akan memanggil sub program MsComm1_OnComm sebagai

pengambilan data serial, setiap interval waktu timer, yaitu 1 detik.

Pengaturan interval waktu pengambilan data ini bisa dilakukan dengan

program VB dengan timer seperti ini, tetapi bisa juga tidak menggunakan

timer dan menerima interval waktu yang sudah diatur pada

mikrokontroler.

Jika tidak ingin menggunakan Timer dari VB, alias Timer sesuai dengan

data pengiriman mikrokontroler, maka sub program Timer tidak perlu

dipakai.

Sekarang, program antarmuka untuk menampilkan data port serial sudah

selesai, jangan lupa di save. Kemudian lakukan ujicoba, ingat saat ujicoba

jangan mengaktifkan HyperTerminal, karena port serial tidak bisa dipakai

bersamaan.

Jalankan program, pilih COM yang digunakan, misalnya COM1, lalu Baud

rate sesuai dengan program Bascom AVR diatas adalah 9600, dan klik

Connect.

Maka akan tampil data yang dikirimkan dari mikrokontroler tsb sbb:

Page 14: Tutorial Antarmuka Mikrokontroler Dan Komputer Dengan Visual Basic

Jika menerima data dari mikrokontroler ke Visual Basic sudah

dimengerti, sekarang kita coba untuk mengirim data dari visual basic ke

mikrokontroler.

Tambahkan dua buah CommandButton beri nama cmdTes (caption =

"Konfirmas") dan cmdKirim (caption = "Kirim"), dan satu TextBox dengan

nama txtdata, seperti ini:

Page 15: Tutorial Antarmuka Mikrokontroler Dan Komputer Dengan Visual Basic

Tambahkan program berikut pada Private Sub Form_Load():

cmdKirim.Enabled = False

cmdTes.Enabled = False

dan tambahkan program berikut pada Private Sub cmdConnect_Click()

cmdKirim.Enabled = True

cmdTes.Enabled = True

Klik pada cmdTes dan ketikkan:

Private Sub cmdTes_Click()

MSComm1.Output = "X" & Chr$(13)

End Sub

yang berarti, VB akan mengirimkan karakter "X" atau x besar melalui port

serial.

Klik pada cmdKirim dan ketikkan:

Private Sub cmdKirim_Click()

Page 16: Tutorial Antarmuka Mikrokontroler Dan Komputer Dengan Visual Basic

MSComm1.Output = txtdata.Text & Chr$(13)

MSComm1_OnComm

End Sub

yang berarti VB akan mengirimkan tulisan pada TextBox txtdata melalui

port serial.

Program Bascom AVR nya diubah menjadi seperti ini:

'=======================================

'Tes Port Serial

'Wahyu Rahmaniar

'Technologination

'=======================================

$regfile = "m32def.dat"

$crystal = 11059200

$baud = 9600

Dim Char As String * 10

Mulai:

Do

Char = Inkey()

   If Char = "X" Then

      Print "Respon OK"

      Gosub Terima_data

   Else

      Print "Tes Port Serial"

      Wait 1

      Print "By Technologination"

      Wait 1

      Print "Wahyu Rahmaniar"

      Wait 1

   End If

Loop

Terima_data:

Page 17: Tutorial Antarmuka Mikrokontroler Dan Komputer Dengan Visual Basic

Do

Char = Inkey()

Input Char Noecho

Print "Data yang dikirim: " ; Char

If Char = "X" Then

Goto Mulai

End If

Loop

Jika kita meng-klik button Konfirmasi pada VB maka akan dikirimkan

karakter "X", dan diterima oleh bascom dengan perintah inkey(), jika

bascom menerima "X" maka mikrokontroler akan mengirimkan tulisan

"Respon OK" ke VB, jika VB menampilkan "Respon OK" juga maka data

pada TextBox txtdata dapat diisi kemudian klik button Kirim. Data tsb

diterima oleh mikrokontroler dan dikirimkan kembali ke port serial

dengan tulisan "Data yang dikirimkan: " (txtdata). 

Untuk kembali ke program awal menerima data dari mikrokontroler, klik

kembali button Konfirmasi. Hasilnya sbb:

Page 18: Tutorial Antarmuka Mikrokontroler Dan Komputer Dengan Visual Basic

data yang dikirim adalah "ayuchan", kemudian diterima kembali oleh VB

menjadi: "Data yang diterima: ayuchan".

Source code program Bascom AVR dan Visual Basic ini dapat

didownload disini.

Tambahan, cara untuk menampilkan data per textbox dari tiga

parameter.

Caranya, tambahkan sebuah textbox dengan nama Text2.text. Kemudian

di copy dan paste pada form, jika ada peringatan:

"You already have a control name "Text2". Do you want to create a

control array?"

maka pilih yes, dan setiap copy dari Text2 menjadi nilai array berurutan,

perhatikan Properties --> Index.

Biasanya array dimulai dari nilai 0, ambil Text2.Text dengan nilai array 1

sampai 3, kemudian susun seperti ini:

Page 19: Tutorial Antarmuka Mikrokontroler Dan Komputer Dengan Visual Basic

Pada Text2.Text ini font yang saya gunakan sama seperti pada

Text1.Text, yaitu Terminal --> regular --> 14, dengan Alignment --> 2-

Center.

Ubah sub program Mscomm1_OnComm() menjadi:

Private Sub MSComm1_OnComm()

Dim buffer As String

Dim temp As String

Dim pisah() As String

Dim i As Integer

If MSComm1.CommEvent = comEvReceive Then

    buffer = MSComm1.Input

    pisah = Split(buffer, Chr$(13))

Page 20: Tutorial Antarmuka Mikrokontroler Dan Komputer Dengan Visual Basic

On Error Resume Next

If buffer <> " " Then

With Text1

    .SelStart = Len(.Text)

    .SelText = buffer

End With

For i = 1 To 3

    If i < 4 Then

        Text2(i).Text = CStr(pisah(i))

        End If

        Next i

    Else

    buffer = " "

    End If

End If

End Sub

Split berfungsi sebagai pemisah data berdasarkan suatu karakter

tertentu, contoh diatas dipisahkan jika ada chr(13) atau enter, dan setiap

data yang dipisahkan menjadi satu data array, yang kemudian

ditempatkan pada array Text2.Text.

Pada bagian ini : Text2(i).Text = CStr(pisah(i)), jika datanya

string, ubah menjadi string (CSTR), jika double sebaiknya ubah menjadi

double (CDBL), karena akan mempengaruhi penyimpanan data yang

nanti akan dijelaskan pada postingan berikutnya.

Pada program bascom, untuk pengiriman datanya diubah menjadi:

Print "Tes Port Serial"

Print "By Technologination" 

Print "Wahyu Rahmaniar"

Data dikirimkan tanpa delay, agar ditampilkan pada masing-masing array

Text2.Text secara berurutan. Data dikirimkan setiap enter atau chr(13)

alias dipisahkan dengan enter atau chr(13).