我是使用Arduino的初學者,我試圖用LED指示二進制數。二進制計數器在Arduino中使用循環LED指示燈
我的代碼是:
int ledPins[] = {2,3,4,5,6,7,8,9};
{
int delaytime = 500;
int x;
int mod;
int index;
int remain;
for (x=0; x<512; x++)
{
if(x%2 == 1)
{
digitalWrite(2,HIGH);
}
else
{
digitalWrite(2,LOW);
}
for (index=1, mod=4, remain=1; index<8; index++, mod*=2, remain+=4)
{
if(x%mod>remain)
{
digitalWrite(ledPins[index],HIGH);
}
else {
digitalWrite(ledPins[index], LOW);
}
}
delay(delaytime);
}
}
我想要的LED開啓,當x%MOD>保持。 (例如7%4> 1,所以LED 3將打開)
請有人幫助我。非常感謝你。
我該如何讓他們做我想讓他們做的事?我希望mod可以乘以2並保持增加4 –
@GregHewgill謝謝。我認爲這樣做會起作用,但由於某種原因,現在第一個LED仍然亮着,之後還有其他一些LED亮起。即使當我把代碼恢復到原來的狀態時,也會發生這種情況。 –
那麼您可能需要查看確定應點亮哪些LED的算法。我不太確定你的'x%mod>剩餘'條件實際上應該檢查,但它似乎沒有進行位提取。我會用'&'和'<<'等運算符重寫那個循環(搜索「二進制打印數」或類似的更多細節)。 –