2

私は現在、Arduino 用のスロット マシンに取り組んでいます。私が実現したいことの 1 つは、ユーザーがレバーを「引く」と、時間の経過とともに遅くなる音が聞こえることです。

これは私がこれまでに持っているものですが、カウントダウンで遅延変数を作成する方法がわかりません。

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);
    }
}

これはおそらく最善の方法ではありませんが、1 秒間隔で 10 回ブザーが鳴ることはわかっています。したがって、基本的には、その遅延を増やす必要があります。

4

1 に答える 1

2

一定のミリ秒数 (1000) を遅延させる代わりに、delay(1000*(10-i))i が減少しているためなど、i の関数であるミリ秒数だけ遅延させます。

また、より大きなループは決して実行されるべきではありません - 本当i>0ですか?

また、2 つのループに 2 つの異なる変数名を使用する必要があります。

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 に答える