2016-09-20 4 views
0

Я взял мой Arduino из коробки около часа назад, и я пытаюсь получить некоторые фрагменты кода. Приведенный ниже код должен ждать ввода с последовательного монитора и установить светодиод, подключенный на клемме 9, к входному значению. Arduino считывает значение в первый раз, но всегда устанавливает светодиод на полную яркость и никогда не печатает «вход недействителен». 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()'. И если вы быстро двигаетесь со светодиодом, и вы можете видеть мерцание (след), то он не находится на «полной яркости». – KIIV

+0

Спасибо! Это исправило это. –

ответ

0

По остальным коде Serial.parseInt() следует использовать вместо чтения одного символа Serial.read().

Смежные вопросы