Сканер Knight Rider на Pico (6 светодиодов туда-обратно)
Классический эффект светодиодного сканера Knight Rider на Pico! 6 светодиодов бегут слева направо, затем справа налево, и так бесконечно. Как передняя решётка машины KITT из культового сериала 80-х. Этот проект — доработка проекта «Бегущие огни»: та же схема из 6 светодиодов (GP9–GP14), но другой узор в коде. Изучи функцию reversed() для разворота списка, два отдельных цикла for для движения туда-обратно и несколько анимаций на одной схеме.

Видео
Схема

Исходный код
1# ─────────────────────────────────────────
2# BlueGrays · bluegrays.com
3# Сканер Knight Rider на Pico (6 светодиодов туда-обратно)
4# ─────────────────────────────────────────
5# 6 светодиодов бегут от GP9 до GP14, затем обратно от GP14 до GP9;
6# классический сканер «Knight Rider». Та же схема, что #153, другой код.
7# Скорость задаётся через WAIT_MS.
8#
9# Пины:
10# GP9, GP10, GP11, GP12, GP13, GP14 -> 6 красных светодиодов (по порядку)
11# Каждый светодиод с 220 ohm, катоды к GND
12
13from machine import Pin
14from time import sleep_ms
15
16# ============ ПИНЫ ============
17LED_PINS = [9, 10, 11, 12, 13, 14] # Прямой порядок
18leds = [Pin(p, Pin.OUT) for p in LED_PINS] # Все как выходы
19
20WAIT_MS = 100 # Пауза между светодиодами (мс)
21
22# ============ ПОМОЩНИК ============
23def all_off():
24 # Погасить все светодиоды
25 for led in leds:
26 led.value(0)
27
28# ============ ГЛАВНЫЙ ЦИКЛ ============
29while True:
30 # Вперёд: от GP9 до GP14
31 for led in leds:
32 all_off()
33 led.value(1)
34 sleep_ms(WAIT_MS)
35
36 # Назад: от GP14 до GP9 (обратный список)
37 for led in reversed(leds):
38 all_off()
39 led.value(1)
40 sleep_ms(WAIT_MS)
41Частые вопросы
Что делает функция reversed()?
Она позволяет обходить список в обратном порядке. Первый цикл зажигает светодиоды слева направо, а второй, написанный через `reversed()`, — справа налево; так получается эффект бега туда-обратно.
Крайний светодиод будто мигает дважды — как это исправить?
Замени второй цикл на for led in leds[-2:0:-1]:. Так на обратном проходе пропускаются оба крайних светодиода, и ни один крайний светодиод не держится два шага подряд.
Можно ли сделать эффект со шлейфом (затуханием)?
Да, если через PWM постепенно приглушать светодиоды позади горящего, получится сканер со шлейфом, как у машины KITT.
Использует ли «Бегущий огонь» ту же схему, что и этот проект?
Да, схема точно такая же. Меняется только код; это учит писать разные анимации на одном и том же железе.
