السَّلاَمُ عَلَيْكُمْ وَرَحْمَةُ اللهِ وَبَرَكَاتُهُ
Tutorial kita kali ini adalah tentang
how to interfacing Visual Basic 2010 and arduino via Serial Communication,tetapi data yg kita kirim dari VB ke arduino berbentuk char/ASCII yang kemudian diolah melainkan disimpan dulu ke dalam String kemudian diolah. Dengan memanfaatkan library
Serial.readString() atau Serial.readUntil program pada arduino bisa dibuat sesimple mungkin dan seefisien mungkin.
Cara kerjanya yaitu data yang dikirim dari VB ke arduino disimpan dulu kedalam String ret,jika sudah beberapa ms tidak ada data yg dikirim maka data disimpan ke variable String message
String a;
void setup() {
Serial.begin(9600); // opens serial port, sets data rate to 9600 bps
}
void loop() {
if(Serial.available()) {
a= Serial.readString();// read the incoming data as string
Serial.println(a);
}
}
atau bisa menggunakan ini,data akan disimpan di string baca sampai bertemu karakter \n (newline)
String baca;
void setup() {
Serial.begin(9600); // opens serial port, sets data rate to 9600 bps
}
void loop() {
if(Serial.available()) {
char a=Serial.read();
if(a='\n'){
Serial.println(baca);
baca = ""; //clear buffer
}
else{
baca += a;
}
}
}
Serial.println() pada arduino berfungsi untuk mengirim data ke PC disertai dengan karakter \r (carriage return) dan \n (line feed)
Saat menghubungkan arduino ke PC,maka akan mendapatkan port COM,port
COM inilah yang akan digunakan untuk komunikasi antara Visual basic dan
Arduino
Berikut langkah-langkahnya
1. Buat program di VB 2010 seperti ini
Berikut Code VBnya
Imports System.IO
Imports System.IO.Ports
Imports System.Threading
Public Class Form1
Dim myPort As Array 'COM Port yang terdeteksi pada sistem akan disimpan disini
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.Text = "Ismail Lowkey"
'Cek semua com port yang memungkinkan
myPort = IO.Ports.SerialPort.GetPortNames()
'Nilai Baud Rate yang bisa digunakan
ComboBox2.Items.Add(9600)
ComboBox2.Items.Add(19200)
ComboBox2.Items.Add(38400)
ComboBox2.Items.Add(57600)
ComboBox2.Items.Add(115200)
For i = 0 To UBound(myPort)
ComboBox1.Items.Add(myPort(i))
Next
'Atur Com Port pada Port yang pertama terdeteksi
ComboBox1.Text = ComboBox1.Items(0)
'Atur Baud Rate pada Baud yang pertama terdeteksi
ComboBox2.Text = ComboBox2.Items(0)
Button2.Enabled = False
Button3.Enabled = False
End Sub
'tombol connect
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
SerialPort1.PortName = ComboBox1.Text
SerialPort1.BaudRate = ComboBox2.Text
SerialPort1.Open()
Button1.Enabled = False
Button2.Enabled = True
Button3.Enabled = True
End Sub
'tombol disconnect
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
SerialPort1.Close()
Button1.Enabled = True
Button2.Enabled = False
Button3.Enabled = False
End Sub
'tombol send
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
SerialPort1.Write(TextBox1.Text)
End Sub
End Class
2. Berikut code arduinonya
void setup(){
Serial.begin(9600);
Serial.setTimeout(50);
pinMode(13,OUTPUT);
}
String message;
void loop(){
while(Serial.available()){
message=Serial.readString();
}
if(message=="ab"){
digitalWrite(13,1); }
else if(message=="cd"){
digitalWrite(13,0); }
}
3. Hubungkan Pin 13 arduino ke LED
4. Ketik "ab" pada kotak,led 13 akan menyala,kemudian ketik "cd" pada kotak,led 13 akan mati
Good Luck
وَعَلَيْكُمْ السَّلاَمُ وَرَحْمَةُ اللهِ وَبَرَكَاتُهُ