项目12 有源蜂鸣器#
1. 项目介绍:
有源蜂鸣器是一个发声组件。它被广泛用作电脑、打印机、报警器、电子玩具、电话、计时器等的发声元件。它有一个内在的振动源,只需连接5V电源,即可持续发出嗡嗡声。
在这个项目中,我们将使用ESP32控制有源蜂鸣器发出“滴滴”声。
2. 项目元件:
|
|
|
|
|---|---|---|---|
ESP32*1 |
面包板*1 |
有源蜂鸣器*1 |
NPN型晶体管(S8050)*1 |
|
|
|
|
1KΩ电阻*1 |
跳线若干 |
USB线*1 |
3. 元件知识:

有源蜂鸣器: 它内部有一个简单的振荡器电路,可以将恒定的直流电转换成特定频率的脉冲信号。一旦有源蜂鸣器收到一个高电平,它将产生声音。而无源蜂鸣器是一种内部没有振动源的集成电子蜂鸣器,它必须由2K-5K方波驱动,而不是直流信号。这两个蜂鸣器的外观非常相似,但是一个带有绿色电路板的蜂鸣器是无源蜂鸣器,而另一个带有黑色胶带的是有源蜂鸣器。无源蜂鸣器不能区分正极性而有源蜂鸣器是可以。如下所示:


晶体管: 由于蜂鸣器需要很大的电流,ESP32输出能力的GPIO不能满足要求,这里需要一个NPN型晶体管来放大电流。晶体管,全称:半导体晶体管,是一种控制电流的半导体器件。晶体管可以用来放大微弱信号,也可以用作开关。它有三个电极(pin):基极(b),集电极©和发射极(e)。当电流通过“be”之间时,“ce”将允许几倍的电流通过(晶体管放大),此时,晶体管在放大区工作。当“be”之间的电流超过某个值时,“ce”将不再允许电流增加,此时晶体管工作在饱和区。晶体管有两种类型如下所示:PNP和NPN

在我们的套件中,PNP晶体管标记为8550,NPN晶体管标记为8050。
基于晶体管的特性,它常被用作数字电路中的开关。由于单片机输出电流的能力很弱,我们将使用晶体管来放大电流和驱动大电流的元件。在使用NPN晶体管驱动蜂鸣器时,通常采用以下方法:如果GPIO输出高电平,电流将流过R1,晶体管将传导,蜂鸣器将发出声音。如果GPIO输出低电平,没有电流流过R1,晶体管就不会传导,蜂鸣器也不会响。在使用PNP晶体管驱动蜂鸣器时,通常采用以下方法:如果GPIO输出低电平,电流将流过R1,晶体管将传导,蜂鸣器将发出声音。如果GPIO输出高电平,没有电流流过R1,晶体管就不会传导,蜂鸣器也不会响。

4. 项目接线图:

注意:该电路中蜂鸣器的电源为5V。在3.3V的电源下,蜂鸣器可以工作,但会降低响度。
5. 项目代码:

你可以把代码移到任何地方。例如,我们将代码保存在 D盘 中,路径为D:\2. 项目教程。

打开 “Thonny” 软件,点击 “此电脑” → “D:” → “2. 项目教程” → “项目12 有源蜂鸣器”。并鼠标左键双击 “Project_12_Active_Buzzer.py”。

from machine import Pin
import time
buzzer = Pin(15, Pin.OUT) # 创建引脚15为蜂鸣器对象,设置引脚15为输出
try:
while True:
buzzer.value(1) # 蜂鸣器鸣叫
time.sleep(0.5) # 延时 0.5s
buzzer.value(0) # 蜂鸣器关闭
time.sleep(0.5) # 延时 0.5s
except:
pass
6. 项目现象:
确保ESP32已经连接到电脑上,单击
。

单击
,代码开始执行,你会看到的现象是:有源蜂鸣器发出 “滴滴” 声。按 “Ctrl+C” 或单击
退出程序。







