уровень 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().