Arduino и обмен данными с программой на Visual Basic

При работе с платой Arduino и отладке скетча очень полезным бывает монитор последовательного порта, встроенный в среду разработки Arduino IDE. Но иногда возможностей последовательного порта не хватает из-за его слишком простого интерфейса. Если вам нужно довольно быстро и просто создать приложение на компьютере, которое бы без проблем взаимодействовало с платой Arduino через последовательный порт и обладало удобным визуальным интерфейсом, то можете воспользоваться возможностями языка Visual Basic.

https://alashed-media.s3.eu-north-1.amazonaws.com/wiki/digitrode/430-arduino-i-obmen-dannymi-s-programmoy-na-visual-basic/images/arduino-i-obmen-dannymi-s-programmoy-na-visual-basic-1.jpg

В этом материале будет показано, как можно создать простую программу на Visual Basic, с помощью которой можно было бы включать и выключать светодиод, подсоединенный к плате Arduino. В данном случае использовалась среда Visual Basic 2008 Express.

Для того чтобы запрограммировать Aruino, скопируйте приведенный ниже скетч в Arduino IDE и загрузите его в Arduino. Этот скетч позволяет Arduino принимать от компьютера инструкции, которые, по сути, представляют собой символы в коде ASCII. Скорость передачи данных по последовательному порту установлена на 9600 бод. Светодиод, который будет управляться с приложения на Visual Basic подключен к цифровому порту D13 платы Arduino. Скетч для Arduino:

void setup() {
 pinMode (13,OUTPUT);
 Serial.begin(9600);
}

void loop() {
  int val;
  if(Serial.available()){
    delay(100);
    while(Serial.available() >0){
      val=Serial.read();
      if(val=='1'){digitalWrite(13,HIGH);}
      else if (val=='0') {digitalWrite (13,LOW);
      }
    }
  }
}

Теперь в среде VB2008 Express нужно создать проект варианта Visual Basic Windows Forms и поместить на форму две кнопки с названиями btnOn и btnOff, которые будут отвечать за включение и выключение светодиода соответственно. Вся суть программы на Visual Basic сводится к настройке последовательного порта и отправке символа «1» в качестве команды для включения светодиода и символа «0» в качестве команды для выключения светодиода. Код программы на Visual Basic представлен ниже.

Imports System.IO
Imports System.IO.Ports
Imports System.Threading

Public Class Form1

    Shared _continue As Boolean
    Shared _serialPort As SerialPort

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        SerialPort1.Close()
        SerialPort1.PortName = "com3" 'change com port to match your Arduino port
        SerialPort1.BaudRate = 9600
        SerialPort1.DataBits = 8
        SerialPort1.Parity = Parity.None
        SerialPort1.StopBits = StopBits.One
        SerialPort1.Handshake = Handshake.None
        SerialPort1.Encoding = System.Text.Encoding.Default
    End Sub

    Private Sub btnOn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOn.Click
        SerialPort1.Open()
        SerialPort1.Write("1")
        SerialPort1.Close()
    End Sub

    Private Sub btnOff_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOff.Click
        SerialPort1.Open()
        SerialPort1.Write("0")
        SerialPort1.Close()
    End Sub
End Class

Учтите, что скорее всего вам нужно будет изменить номер COM-порта на свой вариант. Это делается в переменной SerialPort1.PortName.