
我這個設計用到了兩個Arduino核心板,一個是Arduino Duemilanove 2009 ATMEGA328P 互動媒體 AVR單片機,一個是Arduino傳感器擴展板V4 含RS485總線/無線數(shù)傳/藍牙串口接口。
它們的圖片分別如下:
1、Arduino Duemilanove 2009 ATMEGA328P

2、Arduino傳感器擴展板

這兩個電路板可以層疊在一起。
先不談labview,看看我用一個電位器,通過PWM方法給一個LED調(diào)光。實驗實景圖。

Arduino程序如下:
/* PWM方法給LED調(diào)光
這個例子顯示如何用analogRead()把電位計的電壓值AD轉換的數(shù)字量讀到單片機,
單片機再把AD轉換的數(shù)字量正比換算成PWM的輸出值,
analogWrite()函數(shù)把PWM的輸出值給LED調(diào)光*/
int potpin=0;//定義電位計相連的模擬接口0上
int ledPin = 9; //LED連在數(shù)字接口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);
}
然后,不用電位器調(diào)光,而是用上位機軟件labview,在它的前面板上搞個滑動桿,通過移動滑塊,來改變與下位機Arduino控制器相連的LED燈的亮度。
Labview與Arduino控制器是通過COM7串行通信的,波特率9600bps
Labview前面板圖:

labview框圖程序:

當然下位機Arduino控制器的程序與上面有電位器的程序有些不同,就是去掉了電位器的輸入,加上了下位機讀取上位機命令的部分。
labview控制下的Arduino程序:
/* PWM方法給LED調(diào)光
這個例子說明把上位機軟件labview送來數(shù)字量直接給PWM的輸出值,
analogWrite()函數(shù)把PWM的輸出值給LED調(diào)光*/
int ledPin = 9; //LED連在數(shù)字接口9上
int fadeValue;
void setup()
{
pinMode(ledPin,OUTPUT);//設置LED接口為輸出接口
Serial.begin(9600);//連接到串行端口,波特率為9600
}
void loop()
{
fadeValue=Serial.read();
analogWrite(ledPin,fadeValue);
delay(100);
}
本設計程序打包下載:
PWM調(diào)節(jié)LED光(labview).rar
我給大家推薦個國內(nèi)外機器人熱門網(wǎng)址大全:
http://www.
|