операторы if else
- Войдите на сайт для отправки комментариев
Ср, 11/09/2019 - 11:26
Доброго времени суток. Только начинаю работать с Arduino. Есть вот такой скетч (для работы через консоль)
byte val;
void setup() {
Serial.begin(9600);
}
void loop() {
if (Serial.available()) {
val = Serial.parseInt();
if (val == 1) {
Serial.println("You enter 1");
} else if (val == 2){
Serial.println("You enter 2");
} else if (val == 3){
Serial.println("You enter 3");
} else if (val == 4){
Serial.println("You enter 4");
} else if (val == 5){
Serial.println("You enter 5");
} else {
Serial.println("Error");
}
}
}
После компиляции при введении в консоль цифры от 1 до 5 имеет вывестись соответствующее сообщение, а если ввести что-то другое то выбьет ошибку. Но в моем случае результат на картинке (оператор else выполняется в любом случае). Буду искренне благодарен за подсказку.
Как я понимаю если быстро вводить нужную цифру то ошибка не выполняется. А если ввести цифру и подождать то освещается "Error". Я понимаю что в функции Loop все выполняется бесконечно. Поэтому скажите это нормальная реакция?
прочитайте соседнюю тему до конца
http://arduino.ru/forum/programmirovanie/ne-mogu-ostanovit-serialreadstringuntil
И вообще хороший тон - это сначала поискать на форуме похожие вопросы, а уже потом постить свой
Не выполняется, если введено число. Чтобы убедиться в этом, поставьте Печать чего-нибудь между строками №№ 6 и 7 и сразу увидите, что на самом деле числе и Error печатаются в разные проходы loop.
Ваш error печатается тогда, когда в Serial что-то есть, но это что-то не является нужным Вам числом.
Спасибо буду знать.
распечатайте переменную val после parseInt() как вы говорите в "консоль"