from machine import Pin, PWM
import time
# Defenir los pines de los botones
PINES_BOTONES =[1, 16, 2, 4, 16, 17, 6, 18]
# Definir el pin del parlante
pin_PARLANTE = 33
#Crear una lista de objetos Pin para cada boton, configurados como entradas con resistencia de pull-up
botones_oprimidos = [Pin(pin, Pin.IN, Pin.PULL_UP) for pin in PINES_BOTONES]
# Crear un objeto PWM para el pin del parlante
pin_PARLANTE_pwm = PWM(Pin(pin_PARLANTE))
# Definir las frecuencias de las notas del piano
frecuencias_piano [261.63, 293.66, 329.63, 349.23, 392.00, 440.00, 493.88]
# funcion para establecer una frecuencia en el parlante
def reproducir(frecuencia):
# establecer la frecuencia del PWM
pin_parlante_pwm.freq(int(frecuencia))
# establecer el ciclo de trabajo de PWM para activar el parlante
pin_PARLANTE_pwm.duty(512)
# esperar medio segundo
time.sleep(0.5)
# establecer el ciclo de trabajo a 0 para desactivar el parlante
Pin_PARLANTE_pwm.duty(0)
# Bucle infinito
while True:
#leer el estado de cada boton
estados_botones = [boton.valvule() for boton in botones_oprimidos]
#iterar sobre cada estado de boton
for i, estado in enumerate(estados_botones):
#si el boton esta presionado
if estado == 0:
#imprimir que boton esta precionado (estado == 0 )
print("Boton {} presionado".format(i+1))
# reproducir la frecuencia correspondiente al boton
reproducir(frecuencias_piano[i])
# esperar 0.1 segundos antes de la siguiente interaccion del bucle
time.sleep(0.1)