我正在制作烟雾探测器。 当它检测到烟雾时,iz应该用蜂鸣器发出警报。 有没有什么方法可以让它永远嗡嗡声,直到外部中断,如重启针? 或者我可以从tone()函数中删除时间。 这是我使用的代码。
int sensorValue;
int digitalValue;
int green = 8;
int red = 7;
void setup(){
Serial.begin(9600);
pinMode( 0, INPUT);
pinMode(green, OUTPUT);
pinMode(red, OUTPUT);
}
void start(){
digitalWrite(green, HIGH);
}
void loop() {
sensorValue = analogRead(0);
digitalValue = digitalRead(0);
Serial.println(sensorValue,DEC);
Serial.println(digitalValue,DEC);
delay(2000);
if(analogRead(0) < 100){
tone(9,200,1000);
digitalWrite(red,HIGH);
}
}
答案 0 :(得分:1)
播放声音&#34;永远&#34;很简单:
if(analogRead(A0) < 100 ) {
tone(9,2000); // once triggered, will play the sound forever
}
要关闭它,您似乎喜欢RESET按钮。所以没有必要打电话
noTone(9);
BTW:阅读reference怎么样?
答案 1 :(得分:0)
有很多方法:
更改激活蜂鸣器的逻辑。
while (analogRead(0) < 100){
tone(9,200,1000);
}
只需使用无限循环:
while (1) {
tone(9,200,1000);
}
重置Arduino以摆脱无限循环。
对此的一种变体是用检查引脚退出循环或读取传感器的代码替换(1)
。
答案 2 :(得分:0)
如果您真的想使用中断 您没有指定正在使用的板,但是 对于2个3引脚,它们可以作为中断连接,仅触发关闭音调的功能 看看这个: attachinterrupt