Komunikasi Arduino dengan VB.NET (serial port) - Pemrograman serial port VB.NET

Monday, 31 March 2014 19:49 Mada Jimmy
PDF
User Rating: / 14
PoorBest 
Article Index
Komunikasi Arduino dengan VB.NET (serial port)
Pemrograman serial port VB.NET
All Pages

Seperti yang saya sampaikan sebelumnya, kita akan kendalikan lampu melalui Visual Basic application dan membaca status sebuah tombol pada Arduino.

Buka Visual Studio Express 2012, lalu buat proyek baru. Klik File > New Project.  Pilih template Visual Basic > Windows Form Application, lalu beri nama SerialArduinoControl (atau terserah Anda).  Tentukan lokasi folder lalu klik OK.

Anda dapat lihat sebuah form window kosong dalam modus design.  Komponen standar yang kita gunakan adalah CommandButton, TextBox, ListBox, Label, OvalShape dan jangan lupa SerialPort.  Atur komponen tersebut dan beri nama seperti yang saya contohkan.

 

 

 

Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim ports As String() = IO.Ports.SerialPort.GetPortNames()
' Display each port name to ListBox1
Dim port As String
For Each port In ports
ListBox1.Items.Add(port)
Next port

OvalShapeLED.FillStyle = PowerPacks.FillStyle.Solid
End Sub

Private Sub ButtonConnect_Click(sender As Object, e As EventArgs) Handles ButtonConnect.Click
Try
SerialPort1.PortName = ListBox1.SelectedItem
SerialPort1.BaudRate = 9600
SerialPort1.Open()
LabelConnectionStatus.Text = ListBox1.SelectedItem & " is connected."
Catch ex As Exception
LabelConnectionStatus.Text = ListBox1.SelectedItem & " is not connected."
End Try
End Sub

Private Sub ButtonLEDON_Click(sender As Object, e As EventArgs) Handles ButtonLEDON.Click
If SerialPort1.IsOpen Then
SerialPort1.WriteLine("A")
Else
MsgBox("Serialport is not connected.")
End If
End Sub

Private Sub ButtonLEDOFF_Click(sender As Object, e As EventArgs) Handles ButtonLEDOFF.Click
If SerialPort1.IsOpen Then
SerialPort1.WriteLine("B")
Else
MsgBox("Serialport is not connected.")
End If
End Sub


Private Sub SerialPort1_DataReceived(sender As Object, e As IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
TextBoxReceiver.Invoke(New myDelegate(AddressOf updateTextBox), New Object() {})
End Sub

Public Delegate Sub myDelegate()
Public Sub updateTextBox()

TextBoxReceiver.Text = SerialPort1.ReadLine
If TextBoxReceiver.Text.Length > 3 Then
TextBoxReceiver.Text = Mid(TextBoxReceiver.Text, 1, 3)
End If
If TextBoxReceiver.Text = "L" Then
OvalShapeLED.FillColor = Color.Blue
End If
If TextBoxReceiver.Text = "H" Then
OvalShapeLED.FillColor = Color.Red
End If
End Sub

End Class


Supaya tidak repot mencoba program di atas, jangan lakukan Copy-Paste seluruh program, tapi silakan copy-paste satu per satu sub program.  Nama program dan parameternya jangan Anda ketik, tapi pilihlah method dan event pada editor atau lakukan double click pada object yang bersangkutan saat di modus design.

Catatan mengenai komunikasi serial:

pada contoh pengiriman data pada program ini, kita menggunakan karakter dengan nomor ASCII di bawah 128.  Jika Anda ingin menerapkan pengiriman data yang lebih kompleks, dan membutuhkan karakter dengan nomor ASCII sampai 255, maka kita harus mengkonfigurasi SerialPort dengan menambahkan kode berikut di atas perintah SerialPort.Open()

 

SerialPort1.Encoding = System.Text.Encoding.GetEncoding(1252)

 

 

Selamat mencoba.



Last Updated on Sunday, 04 May 2014 07:44

Dreamstime

Stock Images