我編寫了這個程序,它從串口讀取信息並將值寫入6個LED。我不覺得這是最簡單或最快的方式,而這正是我真正需要的。我的代碼如下所示:從串口讀取字節
boolean enable = false;
void setup()
{
for (int i = 2; i < 8; i++)
{
pinMode(i, OUTPUT);
}
}
void loop()
{
if (Serial.available() > 0)
{
enable = true;
}
if (enable)
{
while (Serial.available() > 0)
{
byte b = Serial.parseInt();
b = constrain(b, 0, 63);
byte val = b;
for (int i = 7; i >= 2; i--)
{
if (pow(2, (i-2)) <= val)
{
digitalWrite(i, HIGH);
val -= pow(2, (i-2));
}
else
{
digitalWrite(i, LOW);
}
}
}
enable = false;
}
delay(100);
}
一個有效的代碼示例會很好。我嘗試過使用PORTD,但它不起作用。
的'使='位無用的混亂(除非你打算做更多的事情它)。更簡單的做'while(Serial.available()> 0)'並且在那裏管理你的LED狀態。 – 2013-02-28 18:38:47
我是,但我發現比使用while循環和布爾「啓用」更好的解決方案。不管怎樣,謝謝你。 – 2013-03-01 07:15:29