уровень 1.4 · практика

Обратный отсчёт

Тот же перекрёсток с кнопкой, но теперь на столбе висит табло: один семисегментный индикатор показывает, сколько секунд осталось до смены сигнала. Он считает от 9 до 0 — ждать становится не обидно, потому что видно, сколько.

Чем управляете

ВыводыЧто это
D13 / D12 / D11Светофор для машин: зелёный, жёлтый, красный.
D10 / D9 / D8Светофор для пешеходов: зелёный, жёлтый, красный.
D2Кнопка вызова SB1 — ВХОД, HIGH пока её держат.
D3 … D7, A0, A1Сегменты a, b, c, d, e, f, g единственного индикатора. Общий катод подключён к GND.

A0 — это обычный вывод 14, A1 — 15 и так далее: когда цифровых не хватает, аналоговые работают цифровыми. Пишется как pinMode(A0, OUTPUT).

Что проверяется

  • Зелёные не пересекаются, жёлтый в обе стороны и покой — как на прошлом уровне.
  • Реакция. После нажатия зелёный пешеходам не позже 10 секунд.
  • Табло считает вниз. Число уменьшается, а не стоит и не растёт.
  • Ноль совпадает с переключением. Досчитали до нуля — сигнал сменился. Табло, которое врёт, хуже, чем никакого. Пока горит жёлтый, держите на табло ноль.
  • Ни одного наезда.

Главная ловушка

Разряд один, поэтому числа больше 9 он показать не может: каждая фаза отсчёта должна укладываться в диапазон 9…0. При этом длинный delay(1000) всё ещё может съесть короткое нажатие кнопки. Оставьте цифру на сегментах и в течение секунды часто проверяйте D2 коротким циклом или по millis().

← К заданию «Светофор»