2016-09-20 88 views
0

大約一個小時前,我已經將我的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

我想你應該使用'Serial.parseInt()'而不是'read()'讀取一個字符。如果你用LED快速移動,你可以看到閃爍(落後),那麼它不是「完全亮度」。 – KIIV

+0

謝謝!這解決了它。 –

回答

0

據的代碼的Serial.parseInt()其餘應該被用來代替由Serial.read()讀取一個字符。