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

Два попеременно мигающих светодиода на Pico (узор мигалки)
Следующий шаг после одного светодиода на Pico: два светодиода мигают попеременно по классическому узору мигалки. Когда один гаснет, другой загорается — самый простой пример согласованной работы нескольких GPIO. В этом проекте два светодиода разных цветов (красный на GP14, зелёный на GP13) меняются состояниями каждые 500ms. Метод MicroPython Pin.toggle() делает код коротким и понятным. Та же логика лежит в основе светофоров, полицейских мигалок, бегущих огней и многих светодиодных анимаций.

Симулятор светофора на Pico (3 светодиода по очереди)
Настоящий светофор на красном, жёлтом и зелёном светодиодах — первый проект серии Pico с 3 светодиодами! Зелёный 4 с «едем», жёлтый 1,5 с «внимание», красный 3 с «стоп» и красный + жёлтый 1 с «приготовиться» (европейская схема светофора). Изучи объявление функций (def all_off()), логику конечного автомата (последовательность) и синхронизацию нескольких GPIO. Простая схема: 3 светодиода на GP11 (зелёный), GP12 (жёлтый), GP13 (красный), у каждого токоограничивающий резистор 220Ω.

Полицейский стробоскоп на Pico (красный + синий)
Имитируем мигалку полицейской машины на Raspberry Pi Pico в самом простом виде! Красный и синий светодиоды работают по очереди (мигалка): пока горит красный, синий погашен, и они меняются каждые 0,3 секунды бесконечно. Код записывает два шага прямо в одном цикле while True; скорость задаёт константа WAIT_MS.

Полицейская мигалка на Pico с тройными вспышками (2 светодиода)
Ритмичная вариация проекта полицейского стробоскопа — мигалка с тройными вспышками! Та же схема на 2 светодиодах (GP11 красный + GP12 синий), но другой узор: красный светодиод трижды быстро вспыхивает, затем трижды вспыхивает синий, и так бесконечно. Этот узор «серия + смена» — самый узнаваемый ритм настоящих полицейских мигалок. Изучи функцию с параметрами def burst(led, count, duration_ms), проектирование ритма и разные визуальные эффекты кодом на одной схеме.

Бегущие огни на Pico (6 светодиодов)
Классическая анимация «бегущие огни» на Pico — версия на 6 светодиодов! 6 светодиодов загораются по очереди слева направо — будто свет идёт по ряду. Изучи список Python, генератор списка ([Pin(p, Pin.OUT) for p in LED_PINS]), цикл for с управлением пинами и enumerate(). 6 светодиодов на GP9–GP14, у каждого токоограничивающий резистор 220Ω. Очень чистый код: вместо объявления 6 светодиодов по одному используется список, и можно добавлять светодиоды по числу свободных пинов GPIO.

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

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

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

Плавное затухание светодиода с 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) и общий катод и общий анод.

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

Светодиодный костёр на Raspberry Pi Pico (матрица NeoPixel 8x8 + потенциометр + зуммер)
Костёр, который ничего не жжёт и не греет, но всё равно потрескивает! Raspberry Pi Pico рисует реалистичное пламя на матрице NeoPixel 8x8, пересчитывая его в каждом кадре: внизу появляются искры, жар остывает по мере подъёма и светится от красного до белого. Потенциометр задаёт высоту пламени, кнопка переключает темы «Огонь», «Газ», «Магия» и «Аметист», а зуммер добавляет треск горящих дров. Процедурная анимация, ADC, PWM и MicroPython в одном проекте.
