2

我目前正在为我的 Arduino 开发老虎机,而我想要发生的一件事是,当用户“拉”控制杆时,可以听到叮叮声,随着时间的流逝,声音会变慢。

这是我到目前为止所拥有的,但我无法弄清楚如何通过倒计时来制作延迟变量。

void ringading(){
    for (int i=10; i>10; i--)
    {
        for (int i=0; i<500; i++)
        {
            digitalWrite(BUZZER_PIN, HIGH);
            delayMicroseconds(1915);
            digitalWrite(BUZZER_PIN, LOW);
        }
        delay(1000);
    }
}

这可能不是最好的方法,但我知道它现在会发出 10 次嗡嗡声,每次之间都有一秒钟的延迟。所以我基本上只需要增加延迟。

4

1 回答 1

2

不是延迟恒定的毫秒数 (1000),而是延迟若干毫秒,这是 i 的函数,例如delay(1000*(10-i))因为 i 正在减少。

此外,更大的循环不应该运行 - 你确定你不是这个意思i>0吗?

此外,您应该为两个循环使用两个不同的变量名称:

void ringading(){
  for (int i=10; i>0; i--)
    {
      for (int j=0; j<500; j++)
      {
        digitalWrite(BUZZER_PIN, HIGH);
        delayMicroseconds(1915);
        digitalWrite(BUZZER_PIN, LOW);
      }
      delay(1000*(10-i));
  }
}
于 2012-10-24T19:05:15.923 回答