求助 总是不定时触发中断,怎么解?附程序
想用Arduino主板做一个求助器,功能,按一下按钮灯闪蜂鸣器闪,再按一次停止工作。现在问题是一会儿能实现,一会儿又不能。不定时自动触发中断,有时还没碰到按钮他就自己触发中。
按钮是自弹式。哪位大侠指点下。
程序如下:
int ledPin = 10;
int button = 2;
int beep=7;
float sinVal;
volatile int state=LOW;
int toneVal;
void setup()
{
pinMode(ledPin, OUTPUT);
pinMode(button, INPUT); //按钮设置为输入模式
pinMode(beep, OUTPUT);// 蜂鸣器引脚设置
attachInterrupt(0,blink,RISING);
Serial.begin(9600);
}
void loop()
{
for(int x=0;x<3;x++){
digitalWrite(ledPin,state); //设置LED 为开
delay(150); //延时150毫秒
digitalWrite(ledPin,LOW); //设置LED 为关
delay(100); //延时100毫秒
}
if(state==HIGH)
{for(int x=0; x<180; x++)
{
//将sin函数角度转化为弧度
sinVal = (sin(x*(3.1412/180)));
//用sin函数值产生声音的频率
toneVal = 2000+(int(sinVal*1000));
//给引脚8一个
tone(beep, toneVal);
delay(2);
}
}
else
{noTone(beep);}
}
void blink()
{
state=!state;
}
建议加一段按钮的去噪算法。
页:
[1]