#-------------------------------------------------------------------
# Ramirez Lopez Aaron
# Programación Avanzada
# Semáforo con paso peatonal
# 13 de Marzo de 2024
#----------------------------------------------------------------
#-- LIBRERIAS --
import machine
import utime
#-- RECURSOS, OBJETOS --
led_rojo = machine.Pin(28, machine.Pin.OUT)
led_ambar = machine.Pin(27, machine.Pin.OUT)
led_verde = machine.Pin(26, machine.Pin.OUT)
button = machine.Pin(22, machine.Pin.IN, machine.Pin.PULL_UP)
#-- CICLO PRINCIPAL --
while True:
if button.value() == 0:
# CICLO PARA CAMBIAR DE VERDE A AMARILLO
led_verde.value(0)
led_ambar.value(1)
utime.sleep(3)
led_rojo.value(1)
led_ambar.value(0)
utime.sleep(8)
else:
led_rojo.value(1)
utime.sleep(5)
led_ambar.value(1)
utime.sleep(2)
led_rojo.value(0)
led_ambar.value(0)
led_verde.value(1)
# CICLO PARA CHECAR EL BOTON MIENTRAS EL VERDE ESTÁ EN HIGH
button_pressed_during_green = False
start_time = utime.ticks_ms()
while utime.ticks_diff(utime.ticks_ms(), start_time) < 4000:
if button.value() == 0:
button_pressed_during_green = True
break
led_verde.value(0)
led_ambar.value(1)
utime.sleep(3)
led_rojo.value(1)
led_ambar.value(0)
utime.sleep(8)
if button_pressed_during_green:
continue # pasar a la siguiente iteración del bucle sin ejecutar el resto del código dentro del bucle en esa iteración particular
led_verde.value(0)
led_ambar.value(1)
utime.sleep(5)
led_ambar.value(0)