from machine import Pin
from neopixel import NeoPixel
from time import ticks_ms, ticks_diff
vermelho = Pin(4,Pin.OUT, value=0, drive=Pin.DRIVE_0)
amarelo = Pin(3,Pin.OUT, value=0, drive=Pin.DRIVE_0)
verde = Pin(2,Pin.OUT, value=0, drive=Pin.DRIVE_0)
pedestre = NeoPixel(Pin(0,Pin.OUT), 1)
tempo = (2500, 1500, 4000) # vermelho, amarelo, verde
novoEstado = 0
estado = 2
ultimo = ticks_ms()
while True:
agora = ticks_ms()
if ticks_diff (agora, ultimo) >= tempo[estado]:
novoEstado = (novoEstado+1)%3
ultimo = agora
if novoEstado != estado:
if novoEstado == 2: # Pare
vermelho.on()
amarelo.off()
verde.off()
elif novoEstado == 1: # Atencao
vermelho.off()
amarelo.on()
verde.off()
else: # Siga
vermelho.off()
amarelo.off()
verde.on()
pedestre[0] = (0, 255, 0) if novoEstado == 2 else (255, 0, 0)
pedestre.write()
estado = novoEstado