Arduino 倒计时延迟

Arduino 倒计时延迟,arduino,Arduino,我目前正在为我的Arduino制作老虎机,我想做的一件事是,当用户“拉动”杠杆时,可以听到叮当声,随着时间的推移,这种声音会变慢 这就是我到目前为止所知道的,但是我不知道如何使延迟变量具有倒计时 void ringading(){ for (int i=10; i>10; i--) { for (int i=0; i<500; i++) { digitalWrite(BUZZER_PIN, HIGH);

我目前正在为我的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);
    }
}
void ringding(){
对于(int i=10;i>10;i--)
{

对于(int i=0;i,而不是将恒定毫秒数(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));
  }
}
void ringding(){
对于(int i=10;i>0;i--)
{

for(int j=0;jAh,所以我可以使用for循环中的I。我快速尝试了一下,但在我尝试它时似乎不起作用。哎呀,是的,应该是I>0。谢谢!是的-
I
是一个可以随时访问的变量,就像普通变量一样。你甚至不必在for循环中声明它(尽管它通常更可取)。它以前不起作用的原因可能是因为内部循环也使用了i,所以在延迟时,i始终是500。