arduino与上位机VB串口通信

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

用pc控制LED灯

注意红色的LED灯,熄灭的

亮了,程序界面,注意要开启串口才能控制

注意,我的arduino板子占用com3,所以mscomm也要用3口,不要弄错了,这里走过弯路,隔天才发现的,(彩色小点PS加上的,方便

理解)。

下面是源码,方便复制:

--------------------------------------------------------

'vb写的上位机程序

Private Sub Command1_Click()

Comm3.PortOpen = True

End Sub

Private Sub Command2_Click()

Comm3.PortOpen = False

End Sub

Private Sub Command3_Click()

Comm3.Output = "a" '用a表示开灯

End Sub

Private Sub Command4_Click()

Comm3.Output = "b" '用b表示灭灯

End Sub

-----------------------------------------

//arduino程序

//通过电脑开关LED灯(LED灯负极连在arduino uno r3板数字3口,正极串一个1K 电阻后连板子5V电源正极

//

int led1=3; //把LED连在Arduino数字端口3

//初始化

void setup()

{

Serial.begin(9600); //启动串行通讯,波特率为9600b/s pinMode(led1,OUTPUT);

digitalWrite(led1,HIGH); //熄灭LED灯

}

//主程序

void loop()

{

char val;//定义变量val,用于暂存上位机发送来的字符

if(Serial.available()>0)//如果上位机发送来了字符

{

val=Serial.read(); //读取上位机发来的字符,并保存到val Serial.println(val); //显示接受到的字符

if(val=='a')//如果上位机发送字符'a',

{

digitalWrite(led1,LOW); //点亮LED灯}

if(val=='b')//如果上位机发送字符'b',

{

digitalWrite(led1,HIGH);//熄灭LED1 }

}

delay(100);//延时100ms

}

相关文档
最新文档