シリアルから情報を読み取り、バイナリ値を 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 を使用してみましたが、機能しません。