#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()