ブザー

コード

from machine import Pin, PWM
import time

# ブザーを接続したピン(例: GPIO 2ピン)
buzzer_pin = Pin(2, Pin.OUT)

# PWMオブジェクトを作成
buzzer_pwm = PWM(buzzer_pin, freq=2000)  # 2.0kHzの周波数を設定

# ブザーを鳴らす関数
def buzz(duration_ms):
    buzzer_pwm.duty(512)  # デューティサイクルを設定してブザーを鳴らす
    time.sleep_ms(duration_ms)
    buzzer_pwm.duty(0)  # ブザーを停止

while True:
    buzz(500)  # ブザーを0.5秒間鳴らす
    time.sleep(1)  # 1秒間停止

buzzer_pwm.duty(512) デューティサイクル…ピンが1周期の長さ(low plus high time)の長さと比較してどれくらい長いかを定義 例)LEDの明るさが変化させることができる.

「Duty比」が変化する瞬間は音階が変わったように聞こえるが,変わっていない.(「Duty比」0% と 100% 付近では音が不安定になる.)

デューティサイクルの値 MicroPythonでの指定値
0% 0
10% 102
20% 204
30% 307
40% 409
50% 512
60% 614
70% 717
80% 819
90% 922
100% 1023

応用

音を変化させるには周波数を変更する必要がある.