Como referenciar este texto: ‘Semáforo com Micro:bit’. Rodrigo Terra. Publicado em: 17/01/2025. Link da postagem: https://www.makerzine.com.br/educacao/semaforo-com-microbit/.
Conteúdos que você verá nesta postagem
Este projeto utiliza o Micro:bit para criar um sistema funcional de semáforo para pedestres e carros. Ele explora conceitos básicos de eletrônica, programação por blocos e lógica sequencial, sendo ideal para iniciantes e educadores que desejam ensinar habilidades práticas de programação e circuitos. Com o suporte das imagens fornecidas, o sistema é montado usando LEDs, resistores, uma protoboard e as saídas digitais do Micro:bit.
Lógica
Inicialização
Configurar os pinos de saída do Micro:bit:
Pino P0: LED verde (pedestres).
Pino P1: LED vermelho (pedestres).
Pino P2: LED verde (carros).
Pino P3: LED amarelo (carros).
Pino P4: LED vermelho (carros).
Inicializar todos os LEDs:
Desligar os LEDs (P0, P1, P2, P3, P4).
Mostrar uma inicialização na matriz de LEDs do Micro:bit (opcional).
Loop Principal
Repetir para sempre:
Estado 1: Verde para carros, vermelho para pedestres
Ligar o LED verde dos carros (P2).
Ligar o LED vermelho dos pedestres (P1).
Aguardar 5 segundos.
Estado 2: Amarelo para carros
Desligar o LED verde dos carros (P2).
Ligar o LED amarelo dos carros (P3).
Aguardar 2 segundos.
Estado 3: Vermelho para carros, verde para pedestres
Desligar o LED amarelo dos carros (P3).
Ligar o LED vermelho dos carros (P4).
Desligar o LED vermelho dos pedestres (P1).
Ligar o LED verde dos pedestres (P0).
Aguardar 5 segundos.
Estado 4: Voltar ao início
Desligar o LED verde dos pedestres (P0).
Ligar o LED vermelho dos pedestres (P1).
Desligar o LED vermelho dos carros (P4).
Ligar o LED verde dos carros (P2).
Voltar ao passo 1.
Código escrito
# Python code
#
basic.show_leds("""
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
""")
pins.set_pull(DigitalPin.P0, PinPullMode.PullUp)
pins.set_pull(DigitalPin.P1, PinPullMode.PullUp)
pins.set_pull(DigitalPin.P2, PinPullMode.PullUp)
basic.pause(1000)
basic.clear_screen()
pins.set_pull(DigitalPin.P0, PinPullMode.PullDown)
pins.set_pull(DigitalPin.P1, PinPullMode.PullDown)
pins.set_pull(DigitalPin.P2, PinPullMode.PullDown)
basic.pause(1000)
def on_forever():
pins.set_pull(DigitalPin.P2, PinPullMode.PullUp)
for index in range(5):
basic.show_leds("""
. . . . .
. . # . .
. # # # .
. . # . .
. # . # .
""")
basic.show_leds("""
. . . . .
. . # . .
. . # . .
. . # . .
. . # . .
""")
for index2 in range(5):
basic.show_leds("""
# . . . #
. # . # .
. . # . .
. # . # .
# . . . #
""")
basic.pause(500)
basic.clear_screen()
basic.pause(500)
basic.show_leds("""
# . . . #
. # . # .
. . # . .
. # . # .
# . . . #
""")
pins.set_pull(DigitalPin.P2, PinPullMode.PullDown)
pins.set_pull(DigitalPin.P0, PinPullMode.PullUp)
basic.pause(5000)
for index3 in range(5):
pins.set_pull(DigitalPin.P1, PinPullMode.PullUp)
basic.pause(500)
pins.set_pull(DigitalPin.P0, PinPullMode.PullDown)
basic.forever(on_forever)
Pinagem utilizada
- Pino P0: LED verde do semáforo de carros
- Indica que os veículos podem seguir.
- Pino P1: LED amarelo do semáforo de carros
- Indica a transição de “siga” para “pare”.
- Pino P2: LED vermelho do semáforo de carros
- Indica que os veículos devem parar.
Simulador TinkerCad
Se você acha que este conteúdo pode ser útil para alguém, compartilhe!
Ao divulgar os textos do MakerZine, você contribui para que todo o material continue acessível e gratuito para todas as pessoas.