цифровая электроника
вычислительная техника
встраиваемые системы

 

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

Автор: Mike(admin) от 27-10-2016, 08:10

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


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

В этом материале будет показано, как можно создать простую программу на 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.




© digitrode.ru


Теги: Arduino, Visual Basic



   Благодарим Вас за интерес к информационному проекту digitrode.ru.
   Если Вы хотите, чтобы интересные и полезные материалы выходили чаще, и было меньше рекламы,
   Вы можее поддержать наш проект, пожертвовав любую сумму на его развитие.


Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

Оставить комментарий
Цитата
  • Группа: Гости
  • ICQ:
  • Регистрация: --
  • Статус:
  • Комментариев: 0
  • Публикаций: 0
^
Несколько вопросов по статье "Arduino и обмен данными с программой на Visual Basic"

Автор: Mike(admin) от 27-10-2016, 08:10

Пытаюсь повторить. Возникли проблемы с VB. (У меня Visual Studio 13). Не принимает: Shared _continue As Boolean
Shared _serialPort As SerialPort
Не принимает:
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
Убираю "1" с SerialPort1, вроде бы признает, но программа не запускается, выдает, что это ошибка.

Скетч в Ардуино тоже не желает заливаться. С третьей попытки "залил", из-за VB работать отказывается.

Если возможно - подскажите, в чем недоработка у меня?
Цитата
  • Salex

  • 24 октября 2017 11:30
  • Группа: Посетители
  • ICQ:
  • Регистрация: 24.10.2017
  • Статус: Пользователь offline
  • Комментариев: 1
  • Публикаций: 0
^
Ардуино контролирует нагрев куба по термосопротивлению. Нагрев включаю отсылая "1" с кнопки на VB. При работающем нагреве (пин 12, реле) включаю "Монитор порта" Ардуино, или "Плоттер", чтобы наблюдать рост температуры или график ее - пин 12 отключается!
Как сделать так, чтоб и нагрев был и Монитор или плоттер наблюдать можно было?

С уважением
Salex