| 特性 | 有源蜂鳴器 | 無源蜂鳴器 |
|---|---|---|
| 內部結構 | 內建震蕩電路 | 無震蕩源,需外部方波驅動 |
| 驅動方式 | 直流電壓直接觸發 | 2k–5kHz 方波(PWM) |
| 價格 | 較貴(含震蕩電路) | 較便宜 |
| 聲音控制 | 單一頻率 | 頻率可控,可播放音樂 |
| IO 復用 | 難以與 LED 共用 | 可與 LED 共用一個控制腳 |
Rx1 檔測試:黑筆接 +,紅筆觸碰另一腳——
多諧振蕩器 → 阻抗匹配器 → 壓電陶瓷片(鈦酸鉛/鈮酸鉛)+ 共鳴箱。工作電壓 1.5–15 V,輸出 1.5–2.5 kHz。
振蕩器 → 電磁線圈 + 磁鐵 → 振動膜片。電流經線圈產生磁場,膜片週期性振動發聲。
MCU IO ----|>|---- 蜂鳴器 + 極
蜂鳴器 - 極 ---- VCC
// IO 輸出低電平導通,高電平截止
MCU PWM 輸出 ---- 電阻 (1k) ---- 三極管基極
三極管集電極 ---- 蜂鳴器一端
蜂鳴器另一端 ---- VCC
三極管發射極 ---- GND
volatile uint8_t beep_times, beep_long, beep_count;
volatile uint8_t buzzer_state;
void beep_start(uint8_t times, uint8_t length) {
beep_times = 2 * times - 1; // 包含靜默間隔
beep_long = length;
beep_count = 0;
buzzer_state = 1;
}
void beep_timer_isr(void) { // 放入 1ms 定時器中斷
if (beep_count >= beep_long && beep_times > 0) {
beep_count = 0;
beep_times--;
buzzer_state ^= 1; // 翻轉輸出
} else {
beep_count++;
}
if (beep_times == 0) buzzer_state = 0;
BUZZER_PIN = buzzer_state;
}
「源」指震蕩源而非電源。有源即插即用,無源靈活可控。根據成本、功能、IO 資源綜合選型。