2025 Make Blocks阶段2 - 数字蜂鸣器外设
这是一款蜂鸣器模块,有独立驱动,兼容5V/3V3电平,可以驱动有源或无源蜂鸣器,体积非常小巧,方便日常做实验使用或直接集成到项目中。
标签
蜂鸣器
三极管
make block
npn
StreakingJerry
更新2025-09-17
11
KiCad文件
全屏

硬件和功能介绍

这是一款蜂鸣器模块,有独立驱动,兼容5V/3V3电平,可以驱动有源或无源蜂鸣器,体积非常小巧,方便日常做实验使用或直接集成到项目中。

模块设计思路、选型及框图介绍

这个模块主要基于三极管驱动蜂鸣器。这里选用三极管而非MOS管的主要原因是MOS管是电压控制电流器件,经过栅极电压操控源漏间导通电阻,对栅极电压有一定要求。而大多单片机使用3.3V,直接驱动MOS管容易造成开关不完全,MOS管异常发热。

而NPN三极管是电流控制电流器件,经过基极较小的电流操控较大的集电极电流。这也就意味着三极管对驱动电压并没有要求,只要接入适当的限流电阻控制电流即可。

这里我使用的三极管是SS8050

image.png

SS8050: https://www.digikey.hk/en/products/detail/shenzhen-slkormicro-semicon-co-ltd/SS8050/21853087

模块原理图、PCB简单介绍

image.png

原理图比较简单,我使用的蜂鸣器是贴片蜂鸣器,好处是体积很小,而且焊盘通用性强,可以方便焊接其他封装的蜂鸣器。

image.png

板子布局使用单面紧凑布局,元件全部布置在单面,方便直接使用铁板烧进行焊接。

引出脚为三个,分别为VCC, GND, SIGNAL,通过SIGNAL来输入高低电平信号驱动有源蜂鸣器或者PWM信号驱动无源蜂鸣器。


上面提到使用这个封装可以极大的增加板子的灵活性,这里我就做了两个模块,一个是有源蜂鸣器,另一个是无源蜂鸣器模块。

89f1661d037a0f6578057ed197fe7f5.jpg

调试软件介绍、关键代码片段及说明


代码可以直接使用Arduino 自带的tone示例,注意这时候必须要使用无源蜂鸣器,只有无源蜂鸣器才可以通过PWM来控制音调。

#include <Adafruit_NeoPixel.h>


bool bt0 = false;
Adafruit_NeoPixel pixels(1, 48, NEO_GRB + NEO_KHZ800);


// the setup function runs once when you press reset or power the board
void setup() {
  pixels.begin();
  pinMode(0, INPUT);
}


// the loop function runs over and over again forever
void loop() {
  if (!digitalRead(0))
  {
    bt0 = !bt0;
  }
  if (bt0)
  {
    pixels.setPixelColor(0, pixels.Color(0, 150, 0));
    pixels.show();
    delay(1000);
    pixels.setPixelColor(0, pixels.Color(0, 0, 0));
    pixels.show();
    delay(1000);
  }
  else
  {
    pixels.setPixelColor(0, pixels.Color(0, 150, 0));
    pixels.show();
    delay(200);
    pixels.setPixelColor(0, pixels.Color(0, 0, 0));
    pixels.show();
    delay(200);
  }


}

模块调通的功能展示图

57537654f9426b5c1c2a9d320098ecd.jpg

具体两种蜂鸣器驱动效果请参考视频。

心得体会

时隔一年再次参加电子森林的活动,活动依旧创意十足,诚意满满!

附件下载
ProDoc_Buzzer_2025-08-04.zip
toneMelody.ino
团队介绍
个人
评论
0 / 100
查看更多
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2024 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号