我这个设计用到了两个Arduino核心板,一个是Arduino Duemilanove 2009 ATMEGA328P 互动媒体 AVR单片机,一个是Arduino传感器扩展板V4 含RS485总线/无线数传/蓝牙串口接口。
它们的图片分别如下:
1、Arduino Duemilanove 2009 ATMEGA328P
2、Arduino传感器扩展板
这两个电路板可以层叠在一起。
先不谈labview,看看我用一个电位器,通过PWM方法给一个LED调光。实验实景图。
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前面板图:
labview框图程序:
当然下位机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);
}
本设计程序打包下载:
我给大家推荐个国内外机器人热门网址大全:
文章评论(0条评论)
登录后参与讨论