# Código editado por: Emmanuel Totomol Tepo
#Utilizando una Raspberry Pi Pico y el entorno de simulación de
#Wokwi
# 23 de febrero del 2024
#--------------------------------------------------------------------
import machine #Importación de las librerias para utilizar
import utime
#--------------------------------------------------------------------
ROJO = 13 #definir los pines
AMARILLO = 9
VERDE = 5
BOTON = 1
LEDV = 12
#--------------------------------------------------------------------
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
machine.Pin(ROJO, machine.Pin.OUT).on() # Se mantiene encendidio LED rojo
utime.sleep(5) # Espera 3 segundos mientras el botón está presionado
led_v.off() # Apaga el LED del pin 11
machine.Pin(ROJO, machine.Pin.OUT).off() # Se apaga LED rojo
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()