arduino与vb编写的上位机通讯简单程序

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

上位机

一、回环测试

1.1VB程序

Option Explicit

Private Sub Command1_Click()

MSComm1.Output = Trim(TextSend.Text)

End Sub

Private Sub Command2_Click()

Dim num As String

num = Trim(MSComm1.Input)

If Len(num) = 0 Then

TextRecive.Text = ""

Else

TextRecive.Text = Trim(num) & TextRecive.Text

End If

End Sub

Private Sub Command3_Click()

MSComm1.PortOpen = False

End Sub

Private Sub Form_Load()

MSComm1.PortOpen = True

End Sub

VB窗口

1.2Arduino程序

char val;

void setup() {

int i=0;

for (i=1;i<=13;i++)

pinMode(i,OUTPUT);

Serial.begin(9600);

}

void loop() {

val=Serial.read();

if(-1!=val)

{

delay(100);

Serial.print(val);

}

}

或者另一程序也能满足要求

String comdata = "";

void setup()

{

Serial.begin(9600);

}

void loop()

{

while (Serial.available() > 0)

{

comdata += char(Serial.read());

delay(2);

}

if (comdata.length() > 0)

{

Serial.println(comdata);

comdata = "";

}

}

二、数字传送加工送回

2.1 arduino将浮点型数据变为指定位数字符型数据

void setup() {

Serial.begin(9600);

}

void loop() {

float f=3.1;

char c[6];

dtostrf(f,1,3,c);

Serial.println(c);

delay(10000);

}

2.2 arduino将一个字符型数据转换为浮点型数据加工后再变回为制定位数的字符型数据。这个程序是将字符100变为浮点型数据100,在加30变为130,然后转换为字符型数据

char *a;

float i;

void setup() {

Serial.begin(9600);

}

void loop() {

a= "100";

i = 0.0;

Serial.println(i,2);

i=atof(a)+30;

Serial.println(i,2);

char c[6];

dtostrf(i, 3, 2, c);

Serial.println(c);

delay(1000);

}

2.3 VB上位机发送字符100,经由arduino加上30返回字符130至上位机

2.3.1 arduino程序

String comdata = "";

void setup()

{

Serial.begin(9600);

}

void loop()

{

while (Serial.available() > 0)

{

comdata += char(Serial.read());

delay(2);}

if (comdata.length() > 0)

{

float a=comdata.toFloat();

a=a+30.0;

char c[1];

dtostrf(a, 3, 2, c);

Serial.println(c) ;

delay(1000);

comdata = "";

}

}

2.3.2 VB程序

Option Explicit

Private Sub Command1_Click() MSComm1.Output = Trim(TextSend.Text) End Sub

Private Sub Command2_Click()

Dim num As String

num = Trim(MSComm1.Input)

If Len(num) = 0 Then

TextRecive.Text = ""

Else

TextRecive.Text = Trim(num)

End If

End Sub

Private Sub Command3_Click() MSComm1.PortOpen = False

End Sub

Private Sub Form_Load()

MSComm1.PortOpen = True

End Sub

相关文档
最新文档