arduino 上位机测试实验 修改1
本帖最后由 445814907 于 2013-1-24 02:57 编辑一直想用上位机控制arduino。计划用方案1用C++编,但是发现网上的视频大部分直接就教编串口调试助手这个软件,完全跟不上视频的步骤啊,方案2用labview软件,但是labview里面的串口例子也是串口调试助手这个例子啊,我总不能直接就用吧,G语言编的,看的我头大啊,这么改都不知道。最后的最后,我觉得与其把时间浪费在纯上位机的编程上,不如就是能达到我的要求,能和arduino通讯就好。
第一个图片是前面的设计,第二个图片是代码窗口,别看就这几句代码,好用就行啊,哈哈,我插上arduino,显示的是COM3,所以在
第一栏的代码框里Comm3.PortOpen = True,打开COM3口,
第二栏
Private Sub Command2_Click()
Comm3.Output = "a"
End Sub
使com3 发送数据a
第三栏
Private Sub Command3_Click()
Comm3.PortOpen = fase
End Sub
使com3 关闭
Private Sub Command4_Click()
Comm3.Output = "b"
End Sub
使com3 发送数据b
编完之后F5运行就可以了,这时要注意不能打开arduino的COM工具,
图片2是代码窗口的截图。
下面的是arduino的代码,我要实现的功能是点击上位机led按钮,arduino的led灯亮,点击led1按钮arduino的led1亮。思路就是串口发送"a", arduino 读到a,进行led 部分的工作。同理于“b”
int led=2; //把LED连在Arduino数字端口2
int led1 = 3; //把LED连在Arduino数字端口3
//初始化
void setup()
{
Serial.begin(9600); //启动串行通讯,波特率为9600b/s
pinMode(led,OUTPUT);
pinMode(led1,OUTPUT);
digitalWrite(led,HIGH);
digitalWrite(led1,HIGH);
}
//主程序
void loop()
{
char val;//定义变量val,用于暂存上位机发送来的字符
if(Serial.available()>0)//如果上位机发送来了字符
{
val=Serial.read(); //读取上位机发来的字符,并保存到val
Serial.println(val); //显示接受到的字符
if(val=='a')//如果上位机发送字符'a',
{
digitalWrite(led,LOW); //点亮LED灯
}
if(val=='b')//如果上位机发送字符'b',
{
digitalWrite(led1,LOW);//点亮LED1
}
}
delay(100);//延时100ms
}
测试好用,第一次添加个附件,看看好不好用,哈哈。还有啊,大家要是想试试,看看把自己的arduino的改成COM3.试试好不好用啊,然后告诉我。我觉得应该能还用。水平太差,让大家见笑了啊。还有我的暴力改装arduino。在万用版的下面了,不想把钱花在那些扩展板上,自己动手丰衣足食啊,还有不会传视频啊,怎么传?大家教教我啊。。还的攒钱娶媳妇呢。哈哈
太初级,不实用 哇哦,真人秀哦{:soso_e144:} 挺好的简单宜宜懂 还是没看懂用什么写的 求详细资料 最后到底用的什么呢?没有说清楚呀 我想是用Delphi做的上位机 上位机是VB做的,我实验过了,能用,2个LED正极分别串两个1k电阻后接5v电源,负极分别接数字2,3口,
vb变量写得不够直观。 pan628 发表于 2015-8-28 14:20
上位机是VB做的,我实验过了,能用,2个LED正极分别串两个1k电阻后接5v电源,负极分别接数字2,3口,
vb变 ...
mscomm做了什么设置,能把源码放上来吗? 已经搞懂了,commport设置为3即可,谢谢。
页:
[1]