Raspberry Pi Pico: efeito de luz policial (vermelho + azul)
Simulamos a barra de luzes de uma viatura com um Raspberry Pi Pico da forma mais simples! Os LEDs vermelho e azul acendem alternadamente (flip-flop): enquanto o vermelho está aceso, o azul fica apagado, e eles trocam de estado a cada 0,3 segundo, para sempre. O código escreve as duas etapas diretamente em um único laço while True; a velocidade é definida pela constante WAIT_MS.

Vídeo
Esquema do circuito

Código-fonte
1# ─────────────────────────────────────────
2# BlueGrays · bluegrays.com
3# Raspberry Pi Pico: efeito de luz policial (vermelho + azul)
4# ─────────────────────────────────────────
5# Dois LEDs se alternam (flip-flop): o vermelho fica aceso enquanto o azul
6# está apagado, e eles trocam a cada 0.3 s. A velocidade é ajustada com
7# WAIT_MS.
8#
9# Pinos:
10# GP11 -> LED vermelho (com resistor de 220 ohm)
11# GP12 -> LED azul (com resistor de 220 ohm)
12# Catodos dos LEDs -> GND
13
14from machine import Pin
15from time import sleep_ms
16
17# ============ PINOS ============
18red_led = Pin(11, Pin.OUT) # LED vermelho
19blue_led = Pin(12, Pin.OUT) # LED azul
20
21WAIT_MS = 300 # Atraso da troca (ms)
22
23print("== BlueGrays · bluegrays.com ==")
24print("Polis Cakar Basit / Simple Police Alternating")
25print("Kirmizi: GP11 | Mavi: GP12")
26
27# ============ LOOP PRINCIPAL ============
28while True:
29 # Vermelho aceso, azul apagado
30 red_led.value(1)
31 blue_led.value(0)
32 print("[FLIP] KIRMIZI / RED")
33 sleep_ms(WAIT_MS)
34
35 # Azul aceso, vermelho apagado
36 red_led.value(0)
37 blue_led.value(1)
38 print("[FLIP] MAVI / BLUE")
39 sleep_ms(WAIT_MS)
40
Perguntas frequentes
Para que serve WAIT_MS?
É o tempo de espera entre as duas cores, em milissegundos. O padrão é 300 ms; 100 ms produz uma luz mais rápida e agitada, e 600 ms, uma mais tranquila. Basta alterar o valor e executar o código novamente.
Qual é a diferença entre `sleep_ms()` e `sleep()`?
sleep() recebe a duração em segundos, enquanto sleep_ms() recebe um número inteiro de milissegundos. Neste projeto, sleep_ms(300) expressa a duração com clareza; sleep(0.3) solicita o mesmo tempo nominal de espera.
O LED azul parece mais fraco que o vermelho. Por quê?
A tensão direta do LED azul (aproximadamente 3 V) é muito próxima da saída de 3,3 V do Pico; com o mesmo resistor, passa menos corrente. Você pode usar um resistor menor, como 100 Ω, para o LED azul.
Posso criar um efeito de ambulância ou caminhão de bombeiros?
Sim, você pode criar os padrões de luz de diferentes veículos de emergência alterando o número de piscadas, a duração e as cores.
