from machine import Pin, I2C, PWM
import time
from ssd1306 import SSD1306_I2C
# --- I2C OLED ---
i2c = I2C(0, scl=Pin(1), sda=Pin(0), freq=400_000)
oled = SSD1306_I2C(128, 64, i2c)
# --- Boutons et LEDs ---
btn_pins = [2, 3, 4, 5, 6, 7, 8] # GP2→GP8 pour boutons
led_pins = [10, 11, 12, 13, 14, 15, 16] # GP10→GP16 pour LEDs
buttons = [Pin(p, Pin.IN, Pin.PULL_UP) for p in btn_pins]
leds = [Pin(p, Pin.OUT) for p in led_pins]
# --- Buzzer ---
buzzer = PWM(Pin(17)) # GP17 pour le buzzer
buzzer.duty_u16(0) # éteint au départ
# --- Fréquences des notes (C4, D4, E4, F4, G4, A4, B4) ---
frequencies = [262, 294, 330, 349, 392, 440, 494]
# --- Texte titre fixe ---
oled.fill(0)
oled.text("Piano 7 touches", 0, 0)
oled.show()
# --- Boucle principale ---
while True:
for i in range(7):
if buttons[i].value() == 0: # bouton pressé
leds[i].value(1)
buzzer.freq(frequencies[i])
buzzer.duty_u16(2000) # puissance du son
# Affichage sur OLED
Loading
pi-pico-w
pi-pico-w
Loading
ssd1306
ssd1306