<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 測試測量 > 設計應用 > Arduino與LabVIEW互動(dòng)應用

Arduino與LabVIEW互動(dòng)應用

作者: 時(shí)間:2017-01-06 來(lái)源:網(wǎng)絡(luò ) 收藏
Arduino的源代碼如下所示:

#define LED_ON_COMMAND 0x10 //打開(kāi)LED命令字
#define LED_OFF_COMMAND 0x20 //關(guān)閉LED命令字
unsigned int comdata[3]; //定義數組數據,存放串口命令數據
int led = 13; //定義LED連接的管腳
int ON_mark=0; //定義ON 的標志位
int OFF_mark=0; //定義OFF的標志位
void receive_data(void); //接受串口數據
void test_data(void); //測試串口數據是否正確,并更新數據
void do_command(void); //執行更新的數據
void setup()
{
Serial.begin(9600);
pinMode(led, OUTPUT);
}
void loop()
{
while (Serial.available() > 0) //不斷檢測串口是否有數據
{
receive_data(); //接受串口數據
test_data(); //測試數據是否正確并更新數據
do_command(); //執行更新的數據
}
}
void receive_data(void)
{
int i ;
for(i=0;i<3;i++)
{
comdata[i] =(unsigned char)(Serial.read());
//延時(shí)一會(huì ),讓串口緩存準備好下一個(gè)字節,不延時(shí)可能會(huì )導致數據丟失,
delay(2);
}
}
void test_data(void) //驗證命令的正確性
{
if(comdata[0] == 0x55) //0x55和0xAA均為判斷是否為有效命令
{
if(comdata[1] == 0xAA)
{
switch(comdata[2])
{
case LED_ON_COMMAND:
{
ON_mark=1; //ON數據更新位置位
}
case LED_OFF_COMMAND:
{
OFF_mark=1; //OFF數據更新位置位
}
}
}
}
}
void do_command(void) //執行命令
{
if(OFF_mark==1)
{
OFF_mark=0; //復位OFF更新位
digitalWrite(led, LOW); //關(guān)閉LED燈
}
if(ON_mark==1)
{
ON_mark=0; //復位ON 更新位
digitalWrite(led, HIGH); //打開(kāi)LED燈
}
}
2、LabVIEW部分
LabVIEW上位機部分擔任主機,Arduino UNO作為下位機接收上位機發(fā)送的命令,并執行命令。LabVIEW只需要完成命令的發(fā)送,此處僅使用了LabVIEW的串口數據發(fā)送功能。LabVIEW的串口設置見(jiàn)。
LabVIEW程序包括兩個(gè)部分:前面板和程序框圖,前面板如圖6所示,程序框圖如圖7、8、9所示。
圖6LabVIEW前面板
圖7LabVIEW程序框圖1
圖8LabVIEW程序框圖2
圖9LabVIEW程序框圖3
3、實(shí)驗與演示
利用虛擬串口技術(shù),基于Proteus的Arduino UNO與LabVIEW串口通訊控制LED的視頻如下:
基于A(yíng)rduino Leonardo與LabVIEW的實(shí)物演示視頻如下:
4、結束語(yǔ)
利用虛擬串口技術(shù),實(shí)現了Proteus仿真環(huán)境下的Arduino UNO與LabVIEW串口通訊,并自定義了通訊協(xié)議,以保證通訊的可靠性。

上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: ArduinoLabVIEW互動(dòng)應

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>