Arduino 警报声

问题描述 投票:0回答:2

我正在尝试使用 Arduino 制作一个警报系统。我希望连接到系统的警报器能够输出两种不同类型的声音。我知道如何发出低沉的“嘟嘟”声音,但我不知道如何使用tone命令或tone命令的变体或类似命令让Arduino发出“whoop whoop”声音命令。

关于这个主题,我将如何使用 Arduino 驱动更高功率的警报器/喇叭?我可以像驱动 12v LED 一样使用 MOSFET 晶体管吗?

非常感谢任何帮助。谢谢:-)

编辑:

这是我发出噪音的主循环:

void loop() {
  int i = 200; // The starting pitch
  while(i < 800) {
    i++;
    tone(buzzer, i); // Emit the noise
    delay(5);
  }
  delay(100); // A short break in between each whoop
}

每次发出噪音时,都会发出一些(大约 3-4 次)小“爆裂声”,就像失真一样。对于直接连接到 Arduino 的小压电器件来说,它并不是很明显,但我怀疑当我使用更大的发声器和放大器时,它会更明显。

arduino alarm
2个回答
4
投票

我为此为愚人节笑话编写了一些代码,如下:

void loop {
  // Whoop up
  for(int hz = 440; hz < 1000; hz++){
    tone(speakerPin, hz, 50);
    delay(5);
  }
  noTone(speakerPin);

  // Whoop down
  for(int hz = 1000; hz > 440; hz--){
    tone(speakerPin, hz, 50);
    delay(5);
  }
  noTone(speakerPin);
} // Repeat

其中

speakerPin
是连接到扬声器的引脚。

希望这有帮助。


0
投票

稍微修改一下 交替哀号警报。 ;)

#define speakerPin 11
void setup()
{
  pinMode(speakerPin,OUTPUT);
}
void loop()
{
  // Whoop up
  for(int hz = 300; hz < 1000; hz++)
  {
    if((hz/100)%2)
    tone(speakerPin, hz, 50);
    else
    tone(speakerPin, hz+150, 50);
    delay(6);
  }
  noTone(speakerPin);

  // Whoop down
  for(int hz = 1000; hz > 300; hz--){
    if(!((hz/100)%2))
    tone(speakerPin, hz, 50);
    else
    tone(speakerPin, hz+150, 50);
    delay(6);
  }
 noTone(speakerPin);
} // Repeat
© www.soinside.com 2019 - 2024. All rights reserved.