#151Новичок

Полицейский стробоскоп на Pico (красный + синий)

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

4.7(3)
10 собрано
Полицейский стробоскоп на Pico (красный + синий)
Самая простая версия мигалки на крыше полицейской машины: пока горит красный светодиод, синий погашен, они меняются местами примерно три раза в секунду и не останавливаются. Нужны всего два светодиода и два резистора, подключённые к Raspberry Pi Pico. Световое шоу, которое собирается за несколько минут, — как раз для первых проектов.

Видео

Схема

Полицейский стробоскоп на Pico (красный + синий) - Circuit

Исходный код

MicroPython
1# ─────────────────────────────────────────
2#   BlueGrays · bluegrays.com
3#   Полицейский стробоскоп на Pico (красный + синий)
4# ─────────────────────────────────────────
5# Два светодиода чередуются (флип-флоп): красный горит, пока синий не
6# горит, и каждые 0,3 с они меняются. Скорость задаётся через WAIT_MS.
7#
8# Пины:
9#   GP11 -> Красный светодиод (с резистором 220 ohm)
10#   GP12 -> Синий светодиод (с резистором 220 ohm)
11#   Катоды светодиодов -> GND
12
13from machine import Pin
14from time import sleep_ms
15
16# ============ ПИНЫ ============
17red_led  = Pin(11, Pin.OUT)      # Красный светодиод
18blue_led = Pin(12, Pin.OUT)      # Синий светодиод
19
20WAIT_MS = 300      # Задержка переключения (мс)
21
22print("== BlueGrays · bluegrays.com ==")
23print("Polis Cakar Basit / Simple Police Alternating")
24print("Kirmizi: GP11 | Mavi: GP12")
25
26# ============ ГЛАВНЫЙ ЦИКЛ ============
27while True:
28    # Красный вкл, синий выкл
29    red_led.value(1)
30    blue_led.value(0)
31    print("[FLIP] KIRMIZI / RED")
32    sleep_ms(WAIT_MS)
33
34    # Синий вкл, красный выкл
35    red_led.value(0)
36    blue_led.value(1)
37    print("[FLIP] MAVI / BLUE")
38    sleep_ms(WAIT_MS)
39

Частые вопросы

Что делает WAIT_MS?

Это пауза между двумя цветами в миллисекундах. По умолчанию 300 ms; 100 ms дают более быструю и суетливую мигалку, а 600 ms — более спокойную. Просто измени значение и снова запусти код.

Чем `sleep_ms()` отличается от `sleep()`?

sleep() принимает длительность в секундах, а sleep_ms() — целое число миллисекунд. В этом проекте sleep_ms(300) понятно выражает длительность; sleep(0.3) задаёт ту же номинальную паузу.

Синий светодиод кажется тусклее красного. Почему?

Прямое напряжение синего светодиода (около 3 V) очень близко к выходу Pico 3,3 V; с тем же резистором через него течёт меньший ток. Для синего светодиода можно взять резистор поменьше, например 100 Ω.

Можно ли сделать эффект скорой помощи или пожарной машины?

Да, меняя число вспышек, длительность и цвета, можно сделать световые узоры разных спецмашин.