Проблема с Serial-портом

Тема в разделе "Arduino & Shields", создана пользователем Sergey.di, 24 июл 2014.

  1. Sergey.di

    Sergey.di Нуб

    Здравствуйте,
    Помогите пожалуйста разобраться с заданием: управление светодиодом через Serial-порт (http://arduino.cc/en/Tutorial/Dimmer )
    Когда отправляю значения в Serial-порт от 0-255 светодиод загорается, но не изменяет яркости:
    const int ledPin = 9;

    void setup()
    {
    Serial.begin(9600);
    pinMode(ledPin, OUTPUT);
    }

    byte brightness;
    void loop()
    {
    if (Serial.available()) {
    brightness = Serial.read();
    Serial.println (brightness)
    analogWrite(ledPin, brightness);
    }
    }

    А отправив в Serial-порт числа 10, 100, 200 получаю такое на выходе (скрин Снимок экрана 2014-07-24 в 22.44.14.png ):
     
  2. попробуй диапазон значений чуть по больше, 30, 200
     
  3. Sergey.di

    Sergey.di Нуб

    Яркость светодиода не изменяется
     
  4. Sergey.di

    Sergey.di Нуб

    Разобрался, считывать данный с сериал порта нужно через Serial.parseInt();
    Хотя возможно есть более правильное решение?
     
  5. NR55RU

    NR55RU Гик

    Если вы совсем начинающий в этом деле, можете почитать эту серию статеек, она поможет вам получше понять что же у вас происходило между монитором порта и ардуином, и почему вам потребовался parseInt :)
     
    Sergey.di нравится это.
  6. Sergey.di

    Sergey.di Нуб

    Спасибо :)
     
  7. Sergey.di

    Sergey.di Нуб

    Какая разница между этими двумя строками:
    if(Serial.available()>0)
    и
    if(Serial.available())
     
  8. fr0ster

    fr0ster Гик

    никакой