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:
"m32def.dat"
11059200
9600
=
=
"Tes
Port
"By
"Wahyu
Serial
Rahmaniar
Serial"
1
Technologination"
1
Rahmaniar"
1
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:
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:
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.
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 susun semua komponen pada Form1 tersebut menjadi seperti ini:
Klik pada bagian dalam Form yang berwarna, sehingga muncul tulisan sbb:
"2400"
"4800"
"9600"
"19200"
"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:
",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
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()
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:
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:
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:
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))
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).
Hasilnya seperti ini: