#En esta practica se realizara un semaforo con un paso peatonal
#Utilizando una Raspberry Pi Pico y el entorno de simulación de 
#Wokwi utilizando los ejemplos y haciendo las modificaciones pertinentes
#--------------------------------------------------------------------
import machine #Importación de las librerias para utilizar
import utime
#--------------------------------------------------------------------
ROJO = 15 #definir los pines
AMARILLO = 14
VERDE = 13
BOTON = 12
LEDV = 11
#--------------------------------------------------------------------
machine.Pin(ROJO, machine.Pin.OUT) #Definir como se utilizara el pin
machine.Pin(AMARILLO, machine.Pin.OUT)
machine.Pin(VERDE, machine.Pin.OUT)
button = machine.Pin(BOTON, machine.Pin.IN, machine.Pin.PULL_UP)
led_v = machine.Pin(LEDV, machine.Pin.OUT)
#--------------------------------------------------------------------
def coche(): #Inicio del ciclo del encendido de los leds para simular el funcionamiento de un semaforo
    machine.Pin(VERDE, machine.Pin.OUT).on()
    utime.sleep(2)

    machine.Pin(VERDE, machine.Pin.OUT).off()
    machine.Pin(ROJO, machine.Pin.OUT).off()
    machine.Pin(AMARILLO, machine.Pin.OUT).on()
    utime.sleep(2)

    machine.Pin(AMARILLO, machine.Pin.OUT).off()
    machine.Pin(ROJO, machine.Pin.OUT).on()
    utime.sleep(2)

    machine.Pin(ROJO, machine.Pin.OUT).off()

def peaton():
    machine.Pin(VERDE, machine.Pin.OUT).on()
    utime.sleep(2)

    machine.Pin(VERDE, machine.Pin.OUT).off()
    machine.Pin(AMARILLO, machine.Pin.OUT).on()
    utime.sleep(2)
    machine.Pin(AMARILLO, machine.Pin.OUT).off()

    machine.Pin(ROJO, machine.Pin.OUT).on()
    utime.sleep(2)
    machine.Pin(ROJO, machine.Pin.OUT).off()

try:
    while True:
        if button.value() == 0:
            led_v.on()  # Enciende el LED del pin 11
            utime.sleep(5)  # Espera 3 segundos mientras el botón está presionado
            led_v.off()  # Apaga el LED del pin 11
            peaton()  # Llama a la función peaton después de soltar el botón
        else:
            coche()
except KeyboardInterrupt:
    pass
finally:
    machine.Pin(ROJO, machine.Pin.OUT).off()
    machine.Pin(AMARILLO, machine.Pin.OUT).off()
    machine.Pin(VERDE, machine.Pin.OUT).off()
    machine.Pin(LEDV, machine.Pin.OUT).off()


    
BOOTSELLED1239USBRaspberryPiPico©2020RP2-8020/21P64M15.00TTT