How can we help you today?
【聲音】蜂鳴器 | dual2s-mini | MPY-LLM
簡介:
蜂鳴器(Buzzer)是一項常用的電子元件,除了運用無源蜂鳴器的特性,練習音高頻率、元件整合應用的控制方式之外。實務上,我們經常使用作為提醒標示、警告通知等用途。
準備:
材料與工具
本文範例使用【dual2s-mini】為示範。如圖標註,其內建一顆無源蜂鳴器與開關。此蜂鳴器響應頻率上限為1KHz。
GPIO與電路
韌體範例:
LLM轉換資料
//Buzzer Pitch define
struct Pitch{
uint16_t Do_3=131, Re_3=147, Mi_3=165, Fa_3=175, Sol_3=196, La_3=220, Si_3=247;
uint16_t Do_4=262, Re_4=294, Mi_4=330, Fa_4=349, Sol_4=392, La_4=440, Si_4=494;
uint16_t Do_5=523, Re_5=587, Mi_5=659, Fa_5=698, Sol_5=784, La_5=880, Si_5=988;
};
請LLM協助轉換為dict格式:
# Buzzer Pitch define
Pitch = {
'Do_3': 131, 'Re_3': 147, 'Mi_3': 165, 'Fa_3': 175, 'Sol_3': 196, 'La_3': 220, 'Si_3': 247,
'Do_4': 262, 'Re_4': 294, 'Mi_4': 330, 'Fa_4': 349, 'Sol_4': 392, 'La_4': 440, 'Si_4': 494,
'Do_5': 523, 'Re_5': 587, 'Mi_5': 659, 'Fa_5': 698, 'Sol_5': 784, 'La_5': 880, 'Si_5': 988
}
簡單範例:
import machine
import time
# 設定 GPIO 15 為蜂鳴器的腳位
buzzer_pin = machine.Pin(15)
buzzer = machine.PWM(buzzer_pin)
# 定義音階表的頻率
Pitch = {
'Do_3': 131, 'Re_3': 147, 'Mi_3': 165, 'Fa_3': 175, 'Sol_3': 196, 'La_3': 220, 'Si_3': 247,
'Do_4': 262, 'Re_4': 294, 'Mi_4': 330, 'Fa_4': 349, 'Sol_4': 392, 'La_4': 440, 'Si_4': 494,
'Do_5': 523, 'Re_5': 587, 'Mi_5': 659, 'Fa_5': 698, 'Sol_5': 784, 'La_5': 880, 'Si_5': 988
}
# 按照音階從低到高播放音調
for pitch in Pitch.values():
buzzer.freq(pitch) # 設定蜂鳴器的頻率
buzzer.duty(512) # 設定音量,512 為最大音量的一半
time.sleep(0.5) # 持續 0.5 秒
buzzer.duty(0) # 停止蜂鳴器
time.sleep(0.1) # 短暫間隔