Jump to content
Electronics-Lab.com Community

Arduino + Visual Basic


HarryA

Recommended Posts

You can use the serial commucations control in VB (Visual Basic) to commucate with an Arduino board. This allows one to make a more formal interface to the board.

1834526680_VBpanel.png.f072a4c7b70a92f64e1583e2e7f4f486.png

The serial comm control is found in project/component/Microsoft Comm Control 6.0 in the VB visual studio. Selecting it adds it to the tool box. It can then be dragged on to the form. Its symbol looks like a telephone.

In this example an Arduino board is controlling an electric motor via an H bridge circuit. The inputs to the bridge circuit are from pins 4, 5, 6, and 7 from the Arduino board.

schematic.png.043af3868587bf77d4f106e8827375d6.png

In the VB code below, the serial interface is setup on loading the form. And four buttons are added: forward, reverse, stop, and exit.

On selecting a button it sends a signal to the board which in turn outputs signals to pairs of pins to the transistors in the H bridge. A more practical interface would have code to ask the user which comm port to connect with.

' 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 = "FORARD 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

On the board side the Arduino code waits for a serial signal then sets or clears the outputs as required.

//this program receives commands via the visual basic program running on the pc
//based on: Patel, Ujash.: "Arduino + Visual Basic 6.0:Make your own software to control Arduino Robot 

//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()

This project is based on Ujash Patel's book:
"Arduino + Visual Basic 6.0: Make your own software to control Arduino Robot" . Amazon.com Kindle Edition.

 

 

 

 

 

Link to comment
Share on other sites


Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
  • Create New...