Arduino и vb.net завтсания на таймере

Нет ответов
Sadd
Offline
Зарегистрирован: 26.04.2016

Здравствуйте, знатоки, подскажите пожалуйста.
Контроллер мега 2560
Код ардуины:
void setup()
{
Serial.begin(9600);
}
void loop()
{
int analog0 = analogRead(A0);
int analog1 = analogRead(A1);
int analog2 = analogRead(A2);
int analog3 = analogRead(A3);
int analog4 = analogRead(A4);
int analog5 = analogRead(A5);
int analog6 = analogRead(A6);
int analog7 = analogRead(A7);
int analog8 = analogRead(A8);
int analog9 = analogRead(A9);
int analog10 = analogRead(A10);
int analog11 = analogRead(A11);
int analog12 = analogRead(A12);
int analog13 = analogRead(A13);
int analog14 = analogRead(A14);
int analog15 = analogRead(A15);
Serial.print(analog0+1000);
Serial.print(" ");
Serial.print(analog1+1000);
Serial.print(" ");
Serial.print(analog2+1000);
Serial.print(" ");
Serial.print(analog3+1000);
Serial.print(" ");
Serial.print(analog4+1000);
Serial.print(" ");
Serial.print(analog5+1000);
Serial.print(" ");
Serial.print(analog6+1000);
Serial.print(" ");
Serial.print(analog7+1000);
Serial.print(" ");
Serial.print(analog8+1000);
Serial.print(" ");
Serial.print(analog9+1000);
Serial.print(" ");
Serial.print(analog10+1000);
Serial.print(" ");
Serial.print(analog11+1000);
Serial.print(" ");
Serial.print(analog12+1000);
Serial.print(" ");
Serial.print(analog13+1000);
Serial.print(" ");
Serial.print(analog14+1000);
Serial.print(" ");
Serial.print(analog15+1000);
Serial.println(" ");
//delay(1000);
}

Код в vb:
Imports System.Text
Imports System.IO.Ports
Public Class Form1
Dim Data, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28 As String
Dim p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28 As Double
Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
SerialPort1 = New SerialPort("COM4", 9600, Parity.None, 8, StopBits.One)
SerialPort1.Open()
Data = SerialPort1.ReadLine()
SerialPort1.Close()
a1 = Mid(Data, 1, 4)
a2 = Mid(Data, 6, 4)
a3 = Mid(Data, 11, 4)
a4 = Mid(Data, 16, 4)
a5 = Mid(Data, 21, 4)
a6 = Mid(Data, 26, 4)
a7 = Mid(Data, 31, 4)
a8 = Mid(Data, 36, 4)
a9 = Mid(Data, 41, 4)
a10 = Mid(Data, 46, 4)
a11 = Mid(Data, 51, 4)
a12 = Mid(Data, 56, 4)
a13 = Mid(Data, 61, 4)
a14 = Mid(Data, 66, 4)
a15 = Mid(Data, 71, 4)
a16 = Mid(Data, 76, 4)
p1 = (Val(a1) - 1000) / 102.3
p2 = (Val(a2) - 1000) / 10.23
'p3 = a3 - 1000
'p4 = a4 - 1000

'p5 = a5 - 1000
'p6 = a6 - 1000
'p7 = a7 - 1000
'p8 = a8 - 1000

'p9 = a9 - 1000
'p10 = a10 - 1000
'p11 = a11 - 1000
'p12 = a12 - 1000

'p13 = a13 - 1000
'p14 = a14 - 1000
'p15 = a15 - 1000
'p16 = a16 - 1000

Label1.Text = p1 & " C*"
Label2.Text = p2 & " кг/см2"
Label3.Text = p3 & " мПа"
Label4.Text = p4 & " ęă/ńě2"
Label5.Text = p5 & " C*"
Label6.Text = p6 & " C*"
Label7.Text = p7 & " ęă/ńě2"
Label8.Text = p8 & " C*"
Label9.Text = p9 & " C*"
Label10.Text = p10 & " C*"
Label11.Text = p11 & " C*"
Label12.Text = p12 & " C*"
Label13.Text = p13 & " C*"
Label14.Text = p14 & " C*"
Label15.Text = p15 & " C*"
Label16.Text = p16 & " C*"
Label17.Text = p17 & " C*"
Label18.Text = p18 & " ęă/ńě2"
Label19.Text = p19 & " ęă/ńě2"
Label20.Text = p20 & " C*"
Label21.Text = p21 & " C*"
Label22.Text = p22 & " C*"
Label23.Text = p23 & " C*"
Label24.Text = p24 & " ęĎŕ"
Label25.Text = p25 & " C*"
Label26.Text = p26 & " C*"
Label27.Text = p27 & " ęă/ńě2*"
Label28.Text = p28 & " ęă/ńě2"
End Sub
Проблема вот в чем
Когда ставлю в коде ардуины delay (1000) на компьютере програмка постепено зависает, дело в таймере который я тоже поставил на 1000, удаляю delay, прога не зависает, но и считает не верно. Получается так что считывание в программе происходит 1 раз в секунду, а данные с ардуины приходят без задержки и по этому каша получается. Подскажите пожалуйста, что можно предпринять? Спасибо.