通过串口监视器进行Arduino通信

通过串口监视器进行Arduino通信

问题描述:

大约一个小时前,我已经将我的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

谢谢!这解决了它。 –

据的代码的Serial.parseInt()其余应该被用来代替由Serial.read()读取一个字符。