import machine
import time
# Configuración de pines GPIO para los LEDs (ajusta los pines según tu hardware)
led_rojo_pin = machine.Pin(5, machine.Pin.OUT) # Ejemplo: GPIO5
led_verde_pin = machine.Pin(4, machine.Pin.OUT) # Ejemplo: GPIO4
led_amarillo_pin = machine.Pin(2, machine.Pin.OUT) # Ejemplo: GPIO2
led_azul_pin = machine.Pin(0, machine.Pin.OUT) # Ejemplo: GPIO0
# Configuración del zumbador (buzzer)
buzzer_pin = machine.Pin(12, machine.Pin.OUT) # Ejemplo: GPIO12
buzzer = machine.PWM(buzzer_pin)
buzzer.freq(1000) # Configura la frecuencia inicial
# Función para mostrar el menú
def mostrar_menu(nombre, opciones):
print('#', nombre)
print('Seleccione una opción:')
for clave in sorted(opciones):
print(clave + ')', opciones[clave][0])
# Función para leer una opción
def leer_opcion(opciones):
while True:
opcion = input('Opción: ')
if opcion in opciones:
return opcion
else:
print('Opción incorrecta, vuelva a intentarlo.')
beep(1000, 200) # Tono de error
# Función para ejecutar una opción
def ejecutar_opcion(opcion, opciones):
opciones[opcion][1]()
beep(2000, 100) # Tono de confirmación
# Función para generar un menú
def generar_menu(nombre, opciones, opcion_salida):
opcion = None
while opcion != opcion_salida:
mostrar_menu(nombre, opciones)
opcion = leer_opcion(opciones)
ejecutar_opcion(opcion, opciones)
print()
# Función para reproducir un tono en el zumbador (buzzer)
def beep(frequency, duration):
buzzer.freq(frequency)
buzzer.duty(50)
time.sleep_ms(duration)
buzzer.duty(0)
# Función para encender un LED específico
def encender_led(led_pin):
led_pin.on() # Enciende el LED
# Función para apagar un LED específico
def apagar_led(led_pin):
led_pin.off() # Apaga el LED
# Menú principal
def menu_principal():
opciones = {
'1': ('Encender LED Rojo', lambda: encender_led(led_rojo_pin)),
'2': ('Encender LED Verde', lambda: encender_led(led_verde_pin)),
'3': ('Encender LED Amarillo', lambda: encender_led(led_amarillo_pin)),
'4': ('Encender LED Azul', lambda: encender_led(led_azul_pin)),
'5': ('Apagar todos los LEDs', apagar_todos_leds),
'x': ('Salir', salir)
}
generar_menu('Sistema Básico uC', opciones, 'x')
# Función para apagar todos los LEDs
def apagar_todos_leds():
apagar_led(led_rojo_pin)
apagar_led(led_verde_pin)
apagar_led(led_amarillo_pin)
apagar_led(led_azul_pin)
print('Apagando todos los LEDs')
# Función para salir del programa
def salir():
print('Saliendo del programa')
beep(2000, 200) # Tono de confirmación
if __name__ == '__main__':
menu_principal()