Ускоряющееся мигание
Часть раздела Первые схемы путешествия по Arduino на Coddy. Урок 17 из 22.
delay(waitTime) ждёт столько, сколько в этот момент хранится в waitTime. Изменяй переменную, пока скетч выполняется, и мигание будет меняться вместе с ней.
waitTime = waitTime - 100; // следующее мигание будет на 100 мс корочеДобавь это в конец loop(), и каждое мигание будет короче предыдущего.
Посмотри, что происходит, когда скетч работает некоторое время. Ожидание сокращается до 0, а затем становится меньше 0. delay() не может ждать отрицательное время: значение -200 воспринимается как огромное число — примерно 49 дней, поэтому кажется, что светодиод застыл. Скетч должен сам определить, когда перестать уменьшать значение, и об этом следующем уроке.
Задание
ЛегкоЗаставь светодиод на выводе 13 мигать всё быстрее:
- в начале создай
int waitTime = 1000; - в
loop()мигающий светодиод должен выполнятьdelay(waitTime)во время обеих пауз - в конце
loop()уменьши значениеwaitTimeна 200
Нажми Run и смотри, пока программа не зависнет, затем нажми Check.
Попробуйте сами
// задайте waitTime здесь
void setup() {
pinMode(13, OUTPUT);
}
void loop() {
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);
// уменьшите waitTime
}
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Первые схемы
3Математика на доске
Именованные константыАрифметические операторыЦелочисленное делениеДесятичные числа с floatУскоряющееся миганиеПотренируйтесь самостоятельно: Песочница Arduino