Ошибка получаемая в проекте 6 видео урока Jeremy Bluma

grey-vsm
grey-vsm аватар
Offline
Зарегистрирован: 01.12.2016

Приветствую всех форумчан!

Я недавно начал изучать arduino и просматривал видео уроки Jeremy Blum. Когда я дошол до 6 урока и попробовал повторить его проекты из этого урока, у меня все получилось кроме последнего где он показывал как сливать серво буфер, чтоб не выводить лишний мусор. Код я повторил полностью но это не заработало. написаный мной скетч:

// Определить контакты
int ledPin=13;

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

void loop() {
  // Ардуино ждет пока на входе не появится сигнал
  while(Serial.available()==0);
  // Чтение ввода
  int val=Serial.read()-'0';
  if(val==1)
   {
    Serial.println("Led is On");
    digitalWrite(ledPin,HIGH);
    }
  else if(val==0)
         {
          Serial.println("Led is Off");
          digitalWrite(ledPin,LOW);
         }
       else
         {
          Serial.println("Invalid!");
         }
  Serial.flush();
  
}

И если я ввожу "452" то на картинке показано что возвращается три слова "Invalid!", хотя у Jeremy показано что должно возвращяться только одно слово.

В чем моя ошибка

b707
Offline
Зарегистрирован: 26.05.2017

не понял, у кого сколько слов возвращается. В приведенном скетче должен приходить инвалид на каждую введенную цифру.

grey-vsm
grey-vsm аватар
Offline
Зарегистрирован: 01.12.2016

b707 пишет:

не понял, у кого сколько слов возвращается. В приведенном скетче должен приходить инвалид на каждую введенную цифру.

Я копировал код с 6 видео урока Jeremy Blum. И по сути написал полностью как у него

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Никаких ашипок-шмашибок нет. Все так и должно быть.

Три цифры ввел - три слова получил, Четыре цифры - 4 слова. А если слово xyz, или похожее напечатаешь, то сколько ответов получишь?

Учись, мой сын!

Наука сокращает нам опыты быстротекущей жизни

   А.С. Пушкин - наше всё ;)

grey-vsm
grey-vsm аватар
Offline
Зарегистрирован: 01.12.2016

Ну а как я тогда должен убирать лишние слова "Invalid!" при например случайном вводе нескольких неправельных символов

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Не буду глумиться, это и правда гимор. Блум писал свои видео ОЧЕНЬ ДАВНО.

Вот смотри:

Если не понял, то flush НЕ очищает буфер приема ажно с версии 1.0.

Ясно?

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

grey-vsm пишет:

Ну а как я тогда должен убирать лишние слова "Invalid!" при например случайном вводе нескольких неправельных символов

миллион способов, прими всю строку или всё число. Почитай все хелпы по моей ссылке.

попробуй, для простоты не read, а parseInt - вводит целое. Короче Могу только снова Пушкина процитировать, Алексан-Сергееча.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

grey-vsm пишет:

Я недавно начал изучать arduino и просматривал видео уроки Jeremy Blum.

....

В чем моя ошибка

В том, что задали этот вопрос здесь, а не вот здесь.