實驗任務(wù)是:Labview發(fā)送4位數(shù)的密碼給Arduino控制器,如果這個密碼與Arduino控制器設(shè)定的密碼一致,則指示燈常亮。密碼不對,則蜂鳴器發(fā)出刺耳的報警聲,同時指示燈閃爍。 Labview框圖程序如圖: Arduino程序: //變量聲明 byte thousand; byte hundred; byte ten; byte one; int speak = 3; //蜂鳴器模塊接于數(shù)字口3 int led = 9; //指示燈模塊接于數(shù)字口9 boolean speak_state = false; boolean flag = false; //初始化 void setup() { Serial.begin(9600); //串口波特率設(shè)置 pinMode(speak, OUTPUT); //設(shè)置為輸出模式 digitalWrite(speak,HIGH); //初始化讓喇叭不響 pinMode(led, OUTPUT); digitalWrite(led,HIGH);//初始化讓燈不亮 } //由參數(shù)t形成不同的頻率 void Alarm(int t) { int i,j; for(int i=0;i<200;i++) { speak_state=!speak_state; digitalWrite(speak,speak_state); for(j=0;j } } //主程序 void loop() { //如果查詢上位機通過串口已經(jīng)發(fā)來有四個字節(jié)的密碼 if(Serial.available()==4) { flag= true; thousand=Serial.read(); //讀取千位 hundred=Serial.read();//讀取百位 ten=Serial.read();//讀取十位 one=Serial.read();//讀取個位 } if(flag == true) { int sum;//總數(shù) sum=thousand*1000+hundred*100+ten*10+one; //如果密碼正確 if (sum ==5768) { digitalWrite(led,LOW); //讓燈亮 digitalWrite(speak,HIGH); //讓喇叭不響 } //如果密碼不正確 else { //讓燈閃爍,讓喇叭報警 digitalWrite(led,LOW); Alarm(90); Alarm(140); digitalWrite(led,HIGH); Alarm(90); Alarm(140); } } |