Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Отправка массива через порт serial

85K
17 октября 2012 года
dcl1704
1 / / 17.10.2012
Пытаюсь отправить массив данных в сериал порт (отправляю в микрокомпьютер Arduino) но почему-то данные туда не доходят, подскажите правильно ли я все написал? При успешной передаче данных должны зажигаться подключенные к микрокомпьютера три светодиода, но этого почему-то не происходит.

Код:
Imports System.IO
Imports System.IO.Ports
Imports System.Threading
Public Class Form1
    Shared _continue As Boolean
    Shared serialPort1 As New 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 'very important!
    End Sub


    Private Sub Button2_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim recievdata = {1, 1, 1}
        serialPort1.Open()
        serialPort1.Write("recievdata")
       
        serialPort1.Close()
    End Sub


End Class





Это код для приема массива данных на Arduino:

Код:
int ledPin1 = 9; //присвоение переменной ledPin1 целого значения "9"
int ledPin2 = 8;
int ledPin3 = 7;



void setup()
{
  Serial.begin(9600); //открывает последовательный порт, устанавливает скорость 9600 бит/с
  pinMode(ledPin1, OUTPUT); //устанавливает режим работы выхода 9 ардуино как "выход"
  pinMode(ledPin2, OUTPUT);
  pinMode(ledPin3, OUTPUT);
 
}

void loop()

{

int Str[0];



  if (Serial.available() > 2)  
 {  
 for (int i=0; i < 4; i++)
 {
   Str[i] = Serial.read();
 }

int x=Str[0];
int y=Str[1];
int z=Str[2];

// дальше все работает
  if (x == 1) //если переменная val = 1
{
  digitalWrite(ledPin1, HIGH); //подается 5V на ledPin1
}
  if (x == 0) //иначе, если значение переменноц  val = 0
{
  digitalWrite(ledPin1, LOW); //снимается 5V с ledPin1
}
 if (y == 1) //если переменная val = 1
{
  digitalWrite(ledPin2, HIGH); //подается 5V на ledPin1
}
  if (y == 0) //иначе, если значение переменноц  val = 0
{
  digitalWrite(ledPin2, LOW); //снимается 5V с ledPin1
}
 if (z == 1) //если переменная val = 1
{
  digitalWrite(ledPin3, HIGH); //подается 5V на ledPin1
}
  if (z == 0) //иначе, если значение переменноц  val = 0
{
  digitalWrite(ledPin3, LOW); //снимается 5V с ledPin1
}
  }
  }

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог