Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arduino 阿杜伊诺无限音_Arduino - Fatal编程技术网

Arduino 阿杜伊诺无限音

Arduino 阿杜伊诺无限音,arduino,Arduino,我正在做烟雾探测器。 当检测到烟雾时,iz应使用蜂鸣器发出警报。 有没有办法让它永远嗡嗡响直到外部中断,比如重启pin? 或者我可以从tone()函数中删除计时。 这是我使用的代码 int sensorValue; int digitalValue; int green = 8; int red = 7; void setup(){ Serial.begin(9600); pinMode( 0, INPUT); pinMode(green, OUTPUT); pinMod

我正在做烟雾探测器。 当检测到烟雾时,iz应使用蜂鸣器发出警报。 有没有办法让它永远嗡嗡响直到外部中断,比如重启pin? 或者我可以从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);
  }
 }
int-sensorValue;
整数数值;
绿色整数=8;
int red=7;
无效设置(){
Serial.begin(9600);
pinMode(0,输入);
引脚模式(绿色,输出);
pinMode(红色,输出);
}
void start(){
数码写入(绿色,高);
}
void循环(){
传感器值=模拟读数(0);
digitalValue=digitalRead(0);
串行打印LN(传感器值,DEC);
Serial.println(digitalValue,DEC);
延迟(2000年);
如果(读数(0)<100){
音调(9201000);
数字写入(红色,高);
}
}
有很多方法:

更改激活蜂鸣器的逻辑

while (analogRead(0) < 100){
  tone(9,200,1000);
}
重置Arduino以退出无限循环

另一种方法是将
(1)
替换为检查针脚是否退出回路或读取传感器的代码。

播放“永远”的声音很简单:

if(analogRead(A0) < 100 ) {
  tone(9,2000); // once triggered, will play the sound forever
}

顺便说一句:如果你真的想使用中断,那就阅读一下吧 您没有指定正在使用的板,但是 对于uno,2-3引脚可以作为中断连接,只需触发一个关闭音调的功能 看看这个:

From-持续时间是可选的。若并没有给出持续时间,音调将持续播放,直到调用stop()。是的,但这不是“丑陋的细节”。arduino的官方参考资料位于。在我们讨论的代码中,您没有使用github.com/bhagman库。官方参考文件没有详细说明如果没有持续时间会发生什么。官方的Arduino音调库基于此音调库。我的链接中不应该包含丑陋的细节参考,因为它会让您进入文档的错误部分。相反,使用这个:
if(analogRead(A0) < 100 ) {
  tone(9,2000); // once triggered, will play the sound forever
}
noTone(9);