Arduino英菲尼迪音

时间:2018-05-23 06:37:53

标签: arduino

我正在制作烟雾探测器。 当它检测到烟雾时,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);
  }
 }

3 个答案:

答案 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