2016-09-20 11 views
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 */ 
    } 
+0

私は 'read()'で1文字読み込むのではなく、 'Serial.parseInt()'を使うべきだと思います。あなたがLEDで速く動いて、ちらつき(トレイル)が見える場合、それはその「完全な明るさ」ではありません。 – KIIV

+0

ありがとう!それはそれを修正した。 –

答えて

0

残りのコードによるとSerial.parseInt()Serial.read()で1つの文字を読んでの代わりに使用する必要があります。

関連する問題