0
1時間ほど前にArduinoを取り出して、コードの一部を稼働させようとしています。 以下のコードは、シリアルモニタからの入力を待ち、端子9に接続されたLEDを入力値に設定するものとします。 Arduinoは最初に値を読み取りますが、常にledを最大輝度に設定し、「入力無効」を出力しません。 Arduinoは、最初のものの後にも値を読み取っていません。私はそれがルーキーミスだと確信していますが、私はそれが何であるか理解できません。シリアルモニタによるArduinoの通信
int A;
void setup()
{
Serial.begin(9600);
Serial.println("input value");
}
void loop()
{
A = 0; /*reset A */
if (Serial.available() > 0) /* wait for input */
{
A = Serial.read(); /* read input */
if(A >= 0 && A <= 255) /* check for valid input */
{
analogWrite(9, A); /* set value of led */
}
else
{
Serial.println("input invalid");
}
}
delay(100); /* wait 0.1 sec */
}
私は 'read()'で1文字読み込むのではなく、 'Serial.parseInt()'を使うべきだと思います。あなたがLEDで速く動いて、ちらつき(トレイル)が見える場合、それはその「完全な明るさ」ではありません。 – KIIV
ありがとう!それはそれを修正した。 –