ブザー¶
コード¶
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 |
応用¶
音を変化させるには周波数を変更する必要がある.