Menu
CoddyTech

Ускоряющееся мигание

Часть раздела Первые схемы путешествия по Arduino на Coddy. Урок 17 из 22.

delay(waitTime) ждёт столько, сколько в этот момент хранится в waitTime. Изменяй переменную, пока скетч выполняется, и мигание будет меняться вместе с ней.

waitTime = waitTime - 100;   // следующее мигание будет на 100 мс короче

Добавь это в конец loop(), и каждое мигание будет короче предыдущего.

Посмотри, что происходит, когда скетч работает некоторое время. Ожидание сокращается до 0, а затем становится меньше 0. delay() не может ждать отрицательное время: значение -200 воспринимается как огромное число — примерно 49 дней, поэтому кажется, что светодиод застыл. Скетч должен сам определить, когда перестать уменьшать значение, и об этом следующем уроке.

challenge icon

Задание

Легко

Заставь светодиод на выводе 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
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Первые схемы

Потренируйтесь самостоятельно: Песочница Arduino