#149Iniciante

Raspberry Pi Pico: dois LEDs alternados (padrão flip-flop)

O próximo passo após um único LED no Pico: dois LEDs piscam alternadamente no clássico padrão flip-flop. Quando um apaga, o outro acende — o exemplo mais básico de coordenação entre vários GPIOs. Neste projeto, dois LEDs de cores diferentes (vermelho no GP14, verde no GP13) trocam de estado a cada 500ms. O método Pin.toggle() do MicroPython deixa o código curto e claro. Essa mesma lógica é a base de semáforos, luzes policiais, LEDs sequenciais e todas as animações com vários LEDs.

5.0(2)
19 concluído
Raspberry Pi Pico: dois LEDs alternados (padrão flip-flop)
Dois LEDs piscam alternadamente: quando um acende, o outro apaga, como as luzes de alerta de uma passagem de trem. O Raspberry Pi Pico alterna os LEDs vermelho e verde a cada meio segundo. É o primeiro passo para controlar mais de uma luz por vez, e projetos como luzes policiais e semáforos usam essa mesma base.

Vídeo

Esquema do circuito

Raspberry Pi Pico: dois LEDs alternados (padrão flip-flop) - Circuit

Código-fonte

MicroPython
1# ─────────────────────────────────────────
2#   BlueGrays · bluegrays.com
3#   Raspberry Pi Pico: dois LEDs alternados (padrão flip-flop)
4# ─────────────────────────────────────────
5# Dois LEDs piscam alternadamente a cada 0.5 s (flip-flop): um fica aceso
6# enquanto o outro está apagado. Pin.toggle() deixa o código curto.
7#
8# Pinos:
9#   GP14 -> LED vermelho (com resistor de 220 ohm)
10#   GP13 -> LED verde (com resistor de 220 ohm)
11#   Catodos dos LEDs -> GND
12
13from machine import Pin
14from time import sleep
15
16# ============ PINOS ============
17led1 = Pin(14, Pin.OUT)         # LED vermelho
18led2 = Pin(13, Pin.OUT)         # LED verde
19
20# ============ INICIALIZAÇÃO ============
21# Começa com estados opostos
22led1.value(1)
23led2.value(0)
24
25print("== BlueGrays: 2 LED Alternatif ==")
26print("LED1 (Kirmizi): GP14  |  LED2 (Yesil): GP13")
27
28# ============ LOOP PRINCIPAL ============
29while True:
30    # Alterna os dois LEDs
31    led1.toggle()
32    led2.toggle()
33    sleep(0.5)                  # Espera de 500 ms
34

Perguntas frequentes

O que o método `toggle()` faz?

Ele inverte o estado atual do pino: se estiver ligado, desliga; se estiver desligado, liga. Se um LED começar aceso e o outro apagado, os dois trocam de estado a cada alternância.

Como mudar a velocidade das piscadas?

Altere o valor em `sleep(0.5)` no final do código; `sleep(0.2)` gera transições mais rápidas e `sleep(1)`, mais lentas. Para usar `sleep_ms()`, adicione também `from time import sleep_ms`.

O que fazer se os dois LEDs acenderem juntos no início?

Antes do laço, inicialize um LED com `on()` e o outro com `off()`. Caso contrário, os dois começam no mesmo estado e piscam juntos ao usar `toggle`.

Posso testar este projeto no Wokwi?

Sim, o Wokwi oferece suporte ao Raspberry Pi Pico e ao MicroPython. Você pode adicionar componentes e conectá-los aos mesmos pinos para testar o código sem hardware físico.