
有些电器在电气状态下经常会发出嗡嗡声,这实际上来自蜂鸣器,学校里讨厌的铃声只是一个更大的蜂鸣器。有两种蜂鸣器,一个是主动蜂鸣器,另一个是被动蜂鸣器。 “主动”和“被动”并不是指是否需要提供电源,而是指有或没有内部振荡器的蜂鸣器。只要你给它通电,有源蜂鸣器就会发出嗡嗡声,但频率是固定的。无源蜂鸣器,是没有内部振荡器的蜂鸣器,在通电时,内部振荡器不会发出嗡嗡声,它需要 2~5 kHz 的方波驱动,然后不同频率的波形会发出相应的声音。蜂鸣器模块有三个管脚,其中标注‘-’的管脚接地(GND),中间的管脚接 5V ,(图中左侧)标注"S"的管脚接信号(数字 I/O)。

| 引脚名称 | 描述 |
|---|---|
| G | GND(电源输入负极) |
| V | VCC(电源输入正极) |
| S | 数字信号引脚 |
供电电压:3.3V / 5V
连接方式:2.54mm排针
安装方式:双螺丝固定

示例程序(UNO开发板):点击下载
/***********************************************************
文件名:02_1activeBuzzer.ino
描述:Arduino uno 控制蜂鸣器发出sos求救声。
作者:chenzhiqiang
日期:2022.10.15
有源蜂鸣器模拟SOS信号\蜂鸣器:D9
***********************************************************/
int buzzerPin = 9; //定义数字9引脚为控制蜂鸣器的引脚
void setup(){
pinMode(buzzerPin, OUTPUT);//设置数字9口模式,OUTPUT为输出
}
void loop(){
my_3duan();//蜂鸣器频率快响三次
delay(500);//设置延迟时间,500ms
my_3chang();//蜂鸣器频率慢响三次
delay(500);//设置延迟时间,500ms
my_3duan();//蜂鸣器频率快响三次
delay(500);//设置延迟时间,500ms
}
void my_3duan() {
//蜂鸣器频率快响三次函数
for (int i = 1; i <= 3; i = i + (1)) {
digitalWrite(buzzerPin,HIGH);
delay(200);
digitalWrite(buzzerPin,LOW);
delay(200);
}
}
void my_3chang() {
//蜂鸣器频率慢响三次函数
for (int i = 1; i <= 3; i = i + (1)) {
digitalWrite(buzzerPin, HIGH);
delay(400);
digitalWrite(buzzerPin, LOW);
delay(400);
}
}
示例程序(ESP32开发板—基于Python语言,不能用Arduino IDE上传代码):
import music
import time
midi = music.MIDI(2)
while True:
midi.pitch_time(440, 1000)
time.sleep_ms(100)
midi.pitch_time(880, 3000)
time.sleep_ms(100)
示例程序(UNO开发板):点击下载

示例程序(ESP32开发板):点击下载

Arduino环境搭建
准备配件:
电路接线图:

Micropython环境搭建
准备配件:
电路接线图:
视频教程:点击查看
器件连接好线之后,将上述程序烧录到Arduino UNO 开发板之后,给 U+程序卡通电,有源蜂鸣器发出SOS求救声音。