-1
我正在寫一個程序,它與我的麪包板上連接的LED相互作用,可以模擬上下彈跳的「球」。一切正常工作,直到反彈的高度遞減(模擬動量損失)爲止。 LED保持點亮,超過第9個LED並開始表演奇怪。Arduino增量運算符不影響變量?
存在的問題在這行代碼出現了:
digitalWrite(ledPin[activeLED], HIGH);
activeLED += dir;
if (activeLED == bounceLimit){
dir = -1;
bounceLimit--;
}
if (activeLED == 0) {
dir = 1;
}
的activeLED是LED被點亮時,在連續的頂光,直至碰到bounceLimit變量,它改變方向和燈向下直到零並重新開始。問題在於,在下一次升高時,bounceLimit應該設置爲8(然後是7,6等),但是它似乎沒有設置得更低,並且LED繼續點亮到頂部並且然後開始行動怪異。
我設法通過增加另一個條件
if (activeLED == bounceLimit && dir = 1){
dir = -1;
bounceLimit--;
}
但爲什麼額外的條件需要解決?無論如何,只有當方向向上時(1)才能擊中限制嗎?
您應該查看'else'語句...或檢查您的變量值是什麼。 –