Arduino控制器的程序:
/*程序任务:震动传感器摇动,则摇摇铃工作
再咬传感器,则摇摇铃停止工作,以此往复*/
int ledPin = 9; //摇摇铃工作,则灯亮,否则灯熄
//摇摇铃在上位机Labview前面板上
//val是Arduino控制器上传给Labview的“摇摇铃工作”标识符变量
byte val=0x00;
boolean flag=false;//摇摇铃是否工作标志
int interupt_number=0;//中断计数值
void setup() {
Serial.begin(9600); //串口波特率设置
//震动传感器连在数字接口2,输出信号,引发中断
//数字接口2为外部中断0,当有下降沿触发的时候调用YoYo_ring函数
attachInterrupt(0, YoYo_ring, FALLING);
pinMode(ledPin, OUTPUT);//设置LED为输出
digitalWrite(ledPin,HIGH);//熄灭LED
}
void loop()
{
if(interupt_number!=0)//如果震动传感器引发的中断次数不为0
flag=!flag;//则摇摇铃是否工作标志
//如果“摇摇铃是否工作标志”为true
if(flag==true)
{ interupt_number=0;//中断计数值清零
digitalWrite(ledPin, LOW);//点亮LED
val=0xff;
Serial.print(val,BYTE);//向上位机LABVIEW上传摇摇铃工作标志
}
//如果“摇摇铃是否工作标志”为false
else if(flag==false)
{ interupt_number=0;//中断计数值清零
digitalWrite(ledPin,HIGH);//熄灭LED
val=0x00;
Serial.print(val,BYTE);//向上位机LABVIEW上传摇摇铃停止标志
}
delay(400);//
}
void YoYo_ring()
{ //进入中断子程序,则中断计数值加1
interupt_number++; }
这是不是就是传说中的“互动媒体技术”,如果是,那么Labview和Arduino也可以做出很多这样的作品。