from machine import Pin
from time import sleep_ms, ticks_ms

vPVermelho = Pin(23, Pin.OUT, value=1)
vPAmarelo = Pin(22, Pin.OUT, value=0)
vPVerde = Pin(21, Pin.OUT, value=0)

botao = Pin(33, Pin.IN, Pin.PULL_UP)

estadoAnterior = estadoAtual = botao.value()
t = 5000

ultimaVez = jaChegou = ticks_ms()

tempos = (3000, 5000, 1000)
modo = 0 # 0: Pare; 1: Siga; 2: Atenção

t = tempos[modo]

while True:
    estadoAtual = botao.value()
    if estadoAtual != estadoAnterior:
        if estadoAtual == 1 and modo == 1:
            print('Pressionou')
            t = 1000         
        
        sleep_ms(200)
        estadoAnterior = estadoAtual
        
    jaChegou = ticks_ms()
    if jaChegou >= ultimaVez + t:
        modo = modo+1
        if modo > 2:
            modo = 0
        if modo == 0: # Pare
            vPAmarelo.off()
            vPVermelho.on()
        elif modo == 1: # Siga
            vPVermelho.off()
            vPVerde.on()
        elif modo == 2: # Atenção
            vPVerde.off()
            vPAmarelo.on()
        else:
            vPVerde.on()
            vPAmarelo.on()
            vPVermelho.on()
            
        t = tempos[modo]                        
        ultimaVez = ticks_ms()