Проекты на Arduino
Сотни проектов от простых до продвинутых: схемы, код и видео.

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

Светодиод с управлением кнопкой на Pico (удержание)
Первый проект Pico с входом — чтение кнопки! Светодиод горит, пока кнопка нажата, и гаснет после отпускания. Это большой шаг после светодиодных анимаций: сигнал из внешнего мира в Pico. Изучи Pin.IN (режим входа), Pin.PULL_UP (встроенный подтягивающий резистор — стандарт для кнопок) и чтение button.value(). Светодиод на GP14, кнопка на GP2 (встроенный PULL_UP). Нажата = LOW (0), отпущена = HIGH (1) — обратная логика сначала путает, но это промышленный стандарт.

Переключение светодиода кнопкой на Pico
Кнопка + светодиод — следующий уровень! В отличие от базового проекта с кнопкой, держать кнопку не нужно. Нажми и отпусти → светодиод горит. Нажми и отпусти ещё раз → гаснет (переключение). Схема та же (светодиод GP14, кнопка GP2), но код сильно отличается. Изучи определение фронта (ловлю момента спада 1→0), отслеживание состояния и антидребезг (фильтр механического дребезга). Метод led.toggle() в MicroPython меняет состояние одной строкой.

Pico: независимое управление 2 светодиодами с помощью 2 кнопок
2 кнопки, 2 светодиода — полностью независимо друг от друга! Каждая кнопка управляет своим светодиодом: при нажатии BTN1 загорается красный, при нажатии BTN2 — зелёный; нажмёшь обе — горят оба. Изучишь управление несколькими объектами пинов, тернарный оператор (1 if x else 0 — компактный if-else в Python), независимое управление вводом-выводом и карту GPIO.

Светофор на Pico с выбором 4 режимов кнопкой (конечный автомат)
4 режима светофора всего одной кнопкой! Каждое нажатие меняет режим: обычный цикл (красный → жёлтый → зелёный по очереди), только красный (сигнал стоп), мигающий жёлтый (внимание/ночной режим) и выключено (обслуживание). Понятия: конечный автомат (переменная mode определяет, какое поведение выполняется), цикл режимов по модулю ((mode + 1) % 4 → 0→1→2→3→0), неблокирующий тайминг (фазы светодиодов отсчитываются через time.ticks_ms() + time.ticks_diff()).

Антидребезг кнопки на Pico: IRQ против программного опроса
Нажимаешь кнопку один раз, а код насчитывает 3–4? Это дребезг контактов — металлические контакты колеблются доли миллисекунды! Сравни в мониторе два способа подсчёта рядом: сырой опрос (ловит дребезг и считает лишнее) и IRQ + программный антидребезг (точно). Изучи физику дребезга, программный антидребезг (ticks_diff() > 50ms), регистрацию прерывания Pin.irq(), триггер IRQ_FALLING, обработчики ISR и безопасность global в ISR.

Плавное затухание светодиода с PWM на Pico (эффект дыхания)
Светодиод больше не просто мигает — он дышит! С помощью PWM (широтно-импульсной модуляции) Raspberry Pi Pico яркость светодиода медленно растёт и медленно падает, как огонёк спящего MacBook. Изучи класс machine.PWM, duty_u16() (16-битная яркость 0–65535), частоту PWM (freq(1000) — 1000 циклов вкл/выкл в секунду, мерцания не видно), циклы range() с шагом (вверх и вниз) и почти аналоговый выход с цифрового пина.

Смена цветов RGB-светодиода на Pico (3 канала PWM)
Один светодиод — миллионы цветов! RGB-светодиод содержит 3 светодиода: красный, зелёный и синий. Если управлять каждым своим каналом PWM Pico, цвета смешиваются: красный + зелёный = жёлтый, зелёный + синий = голубой, все три = белый. Светодиод перебирает 8 цветов. Изучи несколько каналов PWM, объявление функций (def set_color(...)), смешивание RGB, перевод 8 бит → 16 бит (x257) и общий катод и общий анод.

Цифровой песок с управлением наклоном на Arduino (MPU-6050 + матрица NeoPixel 8x8)
Светодиодный песок, который течёт туда, куда наклоняешь схему! Акселерометр MPU-6050 измеряет наклон, а 24 песчинки на матрице NeoPixel 8x8 падают по направлению силы тяжести и скапливаются у краёв, как настоящий песок. Кнопка темы переключает цвета песка, воды, лавы и радуги. Чтение I2C без библиотек, превращение наклона в направление силы тяжести и простой алгоритм падающего песка в одном проекте.

Ультразвуковой терменвокс на Arduino (HC-SR04 + кольцо NeoPixel + зуммер)
Музыкальный инструмент, на котором играют, ничего не касаясь, просто двигая рукой в воздухе! Чем ближе рука к HC-SR04, тем выше ноты играет пассивный зуммер, а кольцо NeoPixel из 24 светодиодов показывает каждую ноту цветом и заполнением. Кнопка переключает два режима: в режиме SCALE каждое расстояние притягивается к ноте пентатоники, а в режиме GLIDE звук плавно скользит, как в старых фантастических фильмах. Мелодию пишет твоя рука, а не код.

Таймер Помодоро на ESP32 (кольцо NeoPixel + кнопка + зуммер)
Светящийся настольный таймер, который не даёт отвлекаться на телефон во время учёбы! Кольцо NeoPixel из 24 светодиодов показывает оставшееся время, как циферблат: работа — красный, короткие перерывы — зелёный, а длинный перерыв после каждых четырёх сессий — синий. В последние 5 секунд кольцо мигает, а пассивный зуммер тикает, затем радуга отмечает завершённую фазу. Одна кнопка запускает, ставит на паузу и сбрасывает, всё на ESP32 без единого delay().

Игра «Перетягивание каната» со светодиодами на Raspberry Pi Pico (лента NeoPixel + 2 кнопки + зуммер)
Кнопочная дуэль на двоих! Raspberry Pi Pico превращает ленту WS2812B NeoPixel из 30 светодиодов в канат: красный игрок слева, синий справа. Каждое нажатие продвигает твой цвет на один светодиод; заполни всю ленту, чтобы выиграть раунд, и возьми 3 раунда, чтобы выиграть матч. Нажмёшь раньше времени во время отсчёта — потеряешь позиции; пассивный зуммер даёт каждому игроку свой щелчок, а матч заканчивается радугой. neopixel, подавление дребезга и неблокирующий звук на MicroPython.
