ラズパイPico のPWMを使って、音階を奏でましょう。
準備:スピーカーをGNDとGPIO15に接続
プログラム
from machine import Pin, PWM
import time
sp1 = PWM(Pin(15, Pin.OUT)) # スピーカーをGPIO15に接続
# ラの音を出す(440Hz)
sp1.duty_u16(0x8000)# PWMのDutyを50%にして音を出す。Dutyは0~0xFFFFつまり65535までの間の値で設定
sp1.freq(440) # 440Hz
time.sleep(1) # 0.5秒待つ
sp1.duty_u16(0) # 音を消す
time.sleep(1) # 0.5秒待つ
# 2オクターブ(220Hz~880Hz)の音を出す
for i in range(25):
f = 220*2**(i/12) # 440Hzの1オクターブ下は220Hz
print(f)
sp1.duty_u16(0x8000)# PWMのDutyを50%にして音を出す。Dutyは0~0xFFFFつまり65535までの間の値で設定
sp1.freq(int(f)) # 整数が必要
time.sleep(0.1) # 0.1秒待つ
sp1.duty_u16(0) # 音を消す