Anda dapat menggunakan kontrol komunikasi serial di VB (Visual Basic) untuk berkomunikasi dengan board Arduino. Ini memungkinkan seseorang untuk membuat antarmuka yang lebih formal ke Board.
Kontrol komunikasi serial ditemukan di project/component/Microsoft Comm Control 6.0 di studio visual VB. Memilihnya menambahkannya ke kotak alat. Itu kemudian dapat diseret ke form. Simbolnya terlihat seperti telepon.
Dalam contoh ini Board Arduino mengendalikan motor listrik melalui rangkaian jembatan H. Input ke rangkaian bridge berasal dari pin 4, 5, 6, dan 7 dari board Arduino.
Dalam kode VB di bawah ini, antarmuka serial diatur saat memuat form. Dan empat tombol ditambahkan: maju, mundur, berhenti, dan keluar.
Saat memilih tombol, ia mengirimkan sinyal ke board yang pada gilirannya mengeluarkan sinyal ke pasang pin ke transistor di jembatan H. Antarmuka yang lebih praktis akan memiliki kode untuk menanyakan kepada pengguna port komunikasi mana yang akan dihubungkan. ' VB 6 -motor control via Arduino UNO/Mega 2560
Private Sub Form_Load()
MSComm1.RThreshold = 3
MSComm1.Settings = "9600,n,8,1"
MSComm1.CommPort = 6 'use the one IDE uses
MSComm1.PortOpen = True
MSComm1.DTREnable = False
Text1.Text = ""
End Sub
Private Sub FORWARD_Click()
Text1.Text = "FORWARD DIRECTION WAS SELECTED"
MSComm1.Output = "f"
End Sub
Private Sub REVERSE_Click()
Text1.Text = "REVERSE DIRECTION WAS SELECTED"
MSComm1.Output = "r"
End Sub
Private Sub STOP_Click()
Text1.Text = "STOP WAS SELECTED"
MSComm1.Output = "s"
End Sub
Private Sub EXIT_Click()
MSComm1.Output = "s" 'make sure motor is stopped
Unload Me
End Sub
Di sisi board kode Arduino menunggu sinyal serial kemudian mengatur atau menghapus output sesuai kebutuhan.
// this program receives commands via the visual basic program running on the pc.
//based on: zentronic.co.id (c) 2023
//outputs to the four transistors in the
// H bridge controling the motor
int pin7 = 7;
int pin6 = 6;
int pin5 = 5;
int pin4 = 4;
void setup()
{
Serial.begin(9600);
pinMode(pin7, OUTPUT);
pinMode(pin6, OUTPUT);
pinMode(pin5, OUTPUT);
pinMode(pin4, OUTPUT);
//all low/off = stopped
digitalWrite(pin4,LOW);
digitalWrite(pin5,LOW);
digitalWrite(pin6,LOW);
digitalWrite(pin7,LOW);
}
void loop()
{
if (Serial.available())
{
int command = Serial.read();
//all low/off = stopped
digitalWrite(pin4,LOW);
digitalWrite(pin5,LOW);
digitalWrite(pin6,LOW);
digitalWrite(pin7,LOW);
if (command=='f') //forward
{
digitalWrite(pin7,HIGH);
digitalWrite(pin4,HIGH);
}
if(command=='r') //reverse
{
digitalWrite(pin5,HIGH);
digitalWrite(pin6,HIGH);
}
//we initialize to stop with all LOWs above
if(command=='s') command = 's'; //dummy statement
}//end if(serial)
}//end Loop()