目次
はじめに
各種センサを使えるようになってきたら、ぜひブザーをつかって音を鳴らしてみましょう。
リンク
ブザーの構造と動作原理
基本構造
ブザーの内部には以下の部品が含まれています
・振動板 : 電気信号によって振動する薄い膜
・ピエゾ素子または電磁コイル : 電圧が加わると振動版を駆動する
・ケース : 音を増幅する
動作原理
ブザーの動作原理は、内部の駆動方式によって異なります
ピエゾ式ブザー
1.ピエゾ素子に電圧をかけると、素子が変形する(逆圧電効果)
2.変形が振動板を駆動し、高速で振動
3.振動が空気を押し引きして音波を発生させる
電磁式ブザー
1.コイルに電流を流すと磁場が発生。磁力で振動板を引き寄せる
2.電流のON/OFF(または極性の反転)を繰り返すことで振動板が振動
3.振動によって音波が発生
ブザーと周波数
音の高さ(周波数)は、振動の速さ(Hz)によって決まる。
・高い周波数 → 高音
・低い周波数 → 低音
1オクターブ 違う=周波数が2倍違う ということです
音階 | 周波数(Hz) |
ド | 261.6 |
レ | 293.7 |
ミ | 329.6 |
ファ | 349.2 |
ソ | 392 |
ラ | 440 |
ㇱ | 493.9 |
ド | 523.3 |
ブザーの種類
今回紹介しているのは、電磁式のパッシブブザーです
項目 | アクティブブザー | パッシブブザー |
制御のしやすさ | 簡単 | 周波数の調整が必要 |
音色の自由度 | 限定的 | 高い |
用途 | アラーム音 | メロディー作成 |
配線
配線は非常にシンプルですが、足の長さに注意してください。
RaspberryPi Pico | ブザー |
GP15(20番) | 正極(長い足) |
GND(38番) | 負極(短い足) |
ブザーを鳴らす
コードを解説します。
PWM制御(Pulse Width Modulation、パルス幅変調)を使ってブザーを制御します。
音の高さは周波数(Hz)で指定し、ラの音を0.5秒間隔で5秒間鳴らします。
PWM制御は、デジタル信号を使ってアナログ値を模擬する手法です。
一定の周期でONとOFFを繰り返し、見かけ上アナログ値のように見せます。この信号のONの割合をデューティ比といい、制御対象です。
from machine import Pin, PWM
import time
# ブザーを接続したピン番号
BUZZER_PIN = 15
# PWMオブジェクトを作成
buzzer = PWM(Pin(BUZZER_PIN))
def play_tone(frequency, duration):
"""
指定した周波数と長さで音を鳴らします
:param frequency: 音の周波数 (Hz)
:param duration: 音の長さ (秒)
"""
buzzer.freq(frequency)
buzzer.duty_u16(32768) # デューティ比50%
time.sleep(duration)
buzzer.duty_u16(0) # 音を止める
try:
# 5秒間、ブザーを鳴らす
start_time = time.time()
while time.time() - start_time < 5:
play_tone(440, 0.5) # ラ(A4)の音を0.5秒鳴らす
time.sleep(0.5) # 0.5秒間隔を開ける
finally:
# クリーンアップ処理
buzzer.duty_u16(0)
buzzer.deinit()
print("ブザーを停止し、クリーンアップが完了しました。")
リンク
コメント