原创 我的第一个Labview和Arduino控制器的互动设计

2010-8-2 21:35 2616 4 4 分类: MCU/ 嵌入式

我这个设计用到了两个Arduino核心板,一个是Arduino Duemilanove 2009 ATMEGA328P 互动媒体 AVR单片机,一个是Arduino传感器扩展板V4 含RS485总线/无线数传/蓝牙串口接口。


它们的图片分别如下:


1、Arduino Duemilanove 2009 ATMEGA328P


c080f9f1-9e1f-4b54-84e7-c24a78840bec.jpg


2、Arduino传感器扩展板


33494825-da37-411f-b4f8-324711cd4632.jpg


这两个电路板可以层叠在一起。


先不谈labview,看看我用一个电位器,通过PWM方法给一个LED调光。实验实景图。


c76a2329-0bf5-41bd-91ba-8e512173f859.jpg


Arduino程序如下:


/* PWM方法给LED调光
 这个例子显示如何用analogRead()把电位计的电压值AD转换的数字量读到单片机,
 单片机再把AD转换的数字量正比换算成PWM的输出值,
 analogWrite()函数把PWM的输出值给LED调光*/
int potpin=0;//定义电位计相连的模拟接口0上 
int ledPin = 9;  //LED连在数字接口9上
float fadeValue;
void setup()
{
    pinMode(ledPin,OUTPUT);//设置LED接口为输出接口
    Serial.begin(9600);//连接到串行端口,波特率为9600
}
void loop()
{
    fadeValue=(float)analogRead(potpin)/1023*255;
    analogWrite(ledPin,int(fadeValue));
    Serial.println(int(fadeValue),DEC);
    delay(1000);   
}


然后,不用电位器调光,而是用上位机软件labview,在它的前面板上搞个滑动杆,通过移动滑块,来改变与下位机Arduino控制器相连的LED灯的亮度。


Labview与Arduino控制器是通过COM7串行通信的,波特率9600bps


Labview前面板图:


8173c124-4ddc-4c35-abc3-58b78c64a522.jpg


labview框图程序:


2b246026-069e-4393-9195-c7e7e5b3c3fc.jpg


当然下位机Arduino控制器的程序与上面有电位器的程序有些不同,就是去掉了电位器的输入,加上了下位机读取上位机命令的部分。


 labview控制下的Arduino程序:


/* PWM方法给LED调光
 这个例子说明把上位机软件labview送来数字量直接给PWM的输出值,
 analogWrite()函数把PWM的输出值给LED调光*/


int ledPin = 9;  //LED连在数字接口9上
int fadeValue;
void setup()
{
    pinMode(ledPin,OUTPUT);//设置LED接口为输出接口
    Serial.begin(9600);//连接到串行端口,波特率为9600
}
void loop()
{
    fadeValue=Serial.read();
    analogWrite(ledPin,fadeValue);
    delay(100);   
}


本设计程序打包下载:


 


我给大家推荐个国内外机器人热门网址大全:


 http://www.robotic123.com


 

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
4
关闭 站长推荐上一条 /3 下一条