Picot チュートリアル11

■サウンド出力

PWM信号を使って圧電ブザーを駆動することができます。PWMの周波数が音程となります。なるべく大きな音量を出せるようにデューティ比は50%としています。

リスト5-12は400Hzの音程を1秒間出力します。

リスト11-1 tone.py

from machine import Pin, PWM
import time

MAX_DUTY = 65025.0

buz = PWM(Pin(14))
buz.freq(400)
buz.duty_u16(int(MAX_DUTY/2))
time.sleep(1)
buz.duty_u16(0)

サウンド用のPWM出力は14番ピンを使用しています。

●練習問題

「ドレミ」の音階を出力してください。

リスト11-2 doremi.py

from machine import Pin, PWM
import time

MAX_DUTY = 65025.0 # 周期内の分割数
frq = [262, 294, 330, 349, 392, 440, 494, 523]
buz = PWM(Pin(14))
buz.duty_u16(int(MAX_DUTY/2))

for i in range(8):
    buz.freq(frq[i])
    time.sleep(0.5)
buz.duty_u16(0)

ドレミの各音階の周波数をリスト「frq」で用意しています。周波数は正確には小数を含む値になりますが、PWMのfreqは整数しか受け付けないため四捨五入で整数値にしています。forループでそれぞれ周波数を設定し0.5秒間ずつ鳴らしています。

for i in range(N):

は、i = 0からi = N – 1まで繰り返します。

Picot チュートリアル インデックス >>
Picot チュートリアル 12 歩行に同期したサウンド >>

コメント

タイトルとURLをコピーしました