arduino与上位机VB串口通信
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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
}