6098| 1
|
[求助] 求助 总是不定时触发中断,怎么解?附程序 |
想用Arduino主板做一个求助器,功能,按一下按钮灯闪蜂鸣器闪,再按一次停止工作。 现在问题是一会儿能实现,一会儿又不能。不定时自动触发中断,有时还没碰到按钮他就自己触发中。 按钮是自弹式。哪位大侠指点下。 程序如下: [mw_shl_code=cpp,true]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; }[/mw_shl_code] |
© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed