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

Видео
Схема

Исходный код
1# ─────────────────────────────────────────
2# BlueGrays · bluegrays.com
3# Два попеременно мигающих светодиода на Pico (узор мигалки)
4# ─────────────────────────────────────────
5# Два светодиода мигают поочерёдно каждые 0,5 с (флип-флоп): один горит,
6# пока другой не горит. Pin.toggle() делает код коротким.
7#
8# Пины:
9# GP14 -> Красный светодиод (с резистором 220 ohm)
10# GP13 -> Зелёный светодиод (с резистором 220 ohm)
11# Катоды светодиодов -> GND
12
13from machine import Pin
14from time import sleep
15
16# ============ ПИНЫ ============
17led1 = Pin(14, Pin.OUT) # Красный светодиод
18led2 = Pin(13, Pin.OUT) # Зелёный светодиод
19
20# ============ ИНИЦИАЛИЗАЦИЯ ============
21# Начать с противоположных состояний
22led1.value(1)
23led2.value(0)
24
25print("== BlueGrays: 2 LED Alternatif ==")
26print("LED1 (Kirmizi): GP14 | LED2 (Yesil): GP13")
27
28# ============ ГЛАВНЫЙ ЦИКЛ ============
29while True:
30 # Переключить оба светодиода
31 led1.toggle()
32 led2.toggle()
33 sleep(0.5) # Задержка 500 мс
34
Частые вопросы
Что делает метод `toggle()`?
Он переворачивает текущее состояние пина: если включён — выключает, если выключен — включает. Если в начале один задан включённым, а другой выключенным, два светодиода при каждом toggle меняются местами.
Как изменить скорость мигания?
Измени значение в `sleep(0.5)` в конце кода; `sleep(0.2)` даёт более быстрые переходы, а `sleep(1)` — более медленные. Чтобы использовать `sleep_ms()`, добавь также `from time import sleep_ms`.
Что делать, если в начале оба светодиода горят одновременно?
Перед циклом задай одному светодиоду `on()`, а другому `off()`. Иначе оба стартуют в одном состоянии и при `toggle` будут мигать вместе.
Можно ли попробовать этот проект в Wokwi?
Да, Wokwi поддерживает Raspberry Pi Pico и MicroPython. Можно добавить компоненты, подключить их к тем же пинам и проверить код без настоящего железа.
