实验任务是:
labview发送4位数的密码给Arduino控制器,如果这个密码与Arduino控制器设定的密码一致,则指示灯常亮。密码不对,则蜂鸣器发出刺耳的报警声,同时指示灯闪烁。
Labview框图程序如图:
Arduino程序:
//变量声明
byte thousand;
byte hundred;
byte ten;
byte one;
int speak = 3; //蜂鸣器模块接于数字口3
int led = 9; //指示灯模块接于数字口9
boolean speak_state = false;
boolean flag = false;
//初始化
void setup()
{
Serial.begin(9600); //串口波特率设置
pinMode(speak, OUTPUT); //设置为输出模式
digitalWrite(speak,HIGH); //初始化让喇叭不响
pinMode(led, OUTPUT);
digitalWrite(led,HIGH);//初始化让灯不亮
}
//由参数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
delayMicroseconds(10);
}
}
//主程序
void loop()
{
//如果查询上位机通过串口已经发来有四个字节的密码
if(Serial.available()==4)
{
flag= true;
thousand=Serial.read(); //读取千位
hundred=Serial.read();//读取百位
ten=Serial.read();//读取十位
one=Serial.read();//读取个位
}
if(flag == true)
{
int sum;//总数
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);
}
}