#Piano de una octava
#Debo mejorar el tema de los cables para que se entienda mejor, pero ya funciona el piano.
from machine import Pin, PWM
import time
# Definir los pines para cada tecla del piano (GP4 a GP11)
teclas_piano = [Pin(i, Pin.IN, Pin.PULL_UP) for i in range(4, 12)]
# Pin del altavoz
pin_altavoz = Pin(13) # Puedes ajustar este pin según tu conexión
altavoz = PWM(pin_altavoz)
# Frecuencias correspondientes a cada tecla (ajústalas según las notas deseadas)
frecuencias = [262, 294, 330, 349, 392, 440, 494, 523]
def reproducir_nota(frecuencia):
if frecuencia > 0:
altavoz.freq(frecuencia)
altavoz.duty_u16(1000) # Ajusta el volumen (0 - 65535)
time.sleep(0.5) # Duración de notas
altavoz.duty_u16(0) # Silencio
# Bucle principal
while True:
for i, tecla in enumerate(teclas_piano):
if not tecla.value(): # Si la tecla está presionada
reproducir_nota(frecuencias[i])
time.sleep(0.1) # Espera corta para evitar lecturas rápidas de teclas