Мигание по команде
Часть раздела Входные сигналы путешествия по Arduino на Coddy. Урок 18 из 22.
Введите 3, и светодиод должен мигнуть три раза, а затем остановиться. loop() и так повторяется, поэтому пусть она ведёт счёт: храните в переменной количество оставшихся миганий. Каждый раз, когда выполняется loop(), если мигания ещё остались, мигните один раз и уменьшите счёт на единицу.
int blinksLeft = 0;
void loop() {
// число из монитора Serial задаёт значение blinksLeft
if (blinksLeft > 0) {
// одно мигание
blinksLeft = blinksLeft - 1;
}
}Когда blinksLeft достигает 0, условие if ложно, и светодиод не горит до ввода следующего числа.
Символ новой строки после числа всё ещё приводит к тому, что через секунду parseInt() возвращает 0. Как и раньше, игнорируйте 0, иначе он сбросит количество оставшихся миганий.
Задание
СреднеМигай светодиодом на контакте 13 столько раз, сколько число введено в Serial Monitor:
- когда ожидают символы, прочитай число с помощью
parseInt()и сохрани его вblinksLeft, если оно больше 0 - если
blinksLeftбольше 0, мигни один раз (200 мс включён, 200 мс выключен) и уменьши значение на единицу
Нажми Run, отправь 3 из Serial Monitor, затем нажми Check.
Попробуйте сами
const int ledPin = 13;
int blinksLeft = 0;
void setup() {
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
// число из монитора последовательного порта задаёт значение blinksLeft
// пока blinksLeft больше 0, мигнуть один раз и уменьшить blinksLeft на единицу
}
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Входные сигналы
3Последовательный ввод
Чтение символа из последовательного портаТекстовые командыСкорость мигания через последовательный портМигание по командеПотренируйтесь самостоятельно: Песочница Arduino