2012-10-24 121 views
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次,每次在它们之间具有一秒的延迟。所以我基本上只需要延迟就可以增加。

回答

2

而不是延迟毫秒数为毫秒(1000)的延迟,这是i的函数,例如delay(1000*(10-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)); 
    } 
} 
+0

啊,这样我就可以用我的for循环。我给了它一个快速的拍摄,但它似乎没有工作,当我尝试它。哎呀,是的,那应该是我> 0。谢谢! – Cleverbird

+0

是的 - '我'是一个变量,可以在任何时候访问,就像一个正常的变量。你甚至不必在for循环中声明它(尽管通常更可取)。 它以前没有工作的原因可能是因为你也使用我的内部循环 - 所以我会永远是500的延迟时间。 –