了解有源和无源蜂鸣器的区别以及如何在Arduino中使用它

简介: 在本文中,我们将探索蜂鸣器的内部结构,检查其内部结构,并对其工作系统有更深入的了解。在这里,我们讨论一下有源蜂鸣器和无源蜂鸣器的区别。该设备的主要功能是将电信号转换为音频声音。蜂鸣器可分为有源蜂鸣器和无源蜂鸣器两种不同类型,它们都是极化的。

产品和用户之间的通信方式有很多种,但音频通信最常见和流行的选择是蜂鸣器。蜂鸣器在电气、电子设备中起着非常重要的作用。我们经常在闹钟、门铃或其他家用电器等常见设备中遇到蜂鸣器。


然而,许多人不知道可用的各种类型的蜂鸣器及其工作原理。在本文中,我们将探索蜂鸣器的内部结构,检查其内部结构,并对其工作系统有更深入的了解。在这里,我们讨论一下有源蜂鸣器和无源蜂鸣器的区别。该设备的主要功能是将电信号转换为音频声音。蜂鸣器可分为有源蜂鸣器和无源蜂鸣器两种不同类型,它们都是极化的。


蜂鸣器引脚排列


Imag.png


蜂鸣器有两个引脚,即正极负极。正极端子由“+”符号表示,负极端子由“-”符号表示,就像 LED 和电容器一样。  

有源蜂鸣器和无源蜂鸣器的区别


有源蜂鸣器: 有源蜂鸣器之所以被称为“有源”,是因为它们在连接到电池时可以直接发出声音。如果我们将电池的正负极正确连接起来,它就可以自行发出声音,因为它有一个内置的振荡器。有源蜂鸣器使用起来最简单。它们的电压范围通常为 1.5V 至 24V。它们可以产生约2kHz±300Hz的声音频率。有源蜂鸣器的电流消耗≤25mA。


无源蜂鸣器: 无源蜂鸣器在连接电池时不能直接发出声音,因为它没有内部振荡源。无源蜂鸣器需要交流电压信号源才能发出声音。它的工作原理类似于电磁发声器,改变输入信号和频率会产生声音。因此,这些无源蜂鸣器可以根据信号的输入频率产生多种不同的音调。无源蜂鸣器的内部线圈电阻非常低,为16欧姆,因此它可以吸取36mA左右的较高电流。为了安全起见,我们还可以串接100欧姆的电阻。


有源和无源蜂鸣器的工作原理

Imag.png

产生声音的基本思想是通过振动,正如在人类声带中看到的那样,声音结果是由振动决定的。有源和无源蜂鸣器属于磁性蜂鸣器的类型。蜂鸣器内部有一个线圈连接到蜂鸣器的引脚。此外,还有一个围绕线圈的圆形磁铁。顶部附有小金属重物的薄柔性铁磁金属盘位于圆形磁铁和线圈上方。当电流脉冲施加到线圈上时,磁感应会导致金属重物和金属盘上下振动。金属盘的振动产生声波。


Imag.png

如何区分有源蜂鸣器和无源蜂鸣器?

如下图所示,与有源蜂鸣器不同,无源蜂鸣器没有后盖。这可以让您更轻松地识别有源蜂鸣器和无源蜂鸣器。然而,并不能保证它总是这样,这就是为什么我们需要另一个测试来确保我们认为的有源蜂鸣器实际上是正确的。


Imag.png


如果仅通过观察无法识别蜂鸣器,请将它们连接到 +9V DC 电池,同时注意极性。这是因为两种类型的蜂鸣器对恒定的+9V DC 电压有不同的响应。

Imag.png


有源蜂鸣器会发出持续响亮的蜂鸣声,直到我们断开直流电源为止,而无源蜂鸣器在施加直流电压时会产生类似于继电器的爆裂声和咔嗒声。

还可以用万用表测量电阻,辨别是有源蜂鸣器还是无源蜂鸣器。首先,将万用表设置为电阻模式并将探头连接到蜂鸣器端子。有源蜂鸣器会显示较低的电阻值,通常为 16 欧姆。如果阻值较大,则为无源蜂鸣器。

如何在 Arduino 上使用有源蜂鸣器?

现在我们知道了什么是有源蜂鸣器,让我们来看看如何将蜂鸣器连接到Arduino。

所需组件

  • 有源蜂鸣器
  • Arduino板
  • 面包板
  • 跳线

首先,将有源蜂鸣器插入面包板。将蜂鸣器的正极(+)引脚连接到Arduino的+5V VCC引脚,将蜂鸣器的负极引脚(-)连接到Arduino的GND引脚。

当正极引脚直接连接Arduino的5V引脚时,蜂鸣器会发出恒定频率的蜂鸣声。

但是这种嘟嘟声是不受控制的连续声音,如果我们想控制嘟嘟声的开和关持续时间,我们需要编写Arduino代码。

现在将蜂鸣器的正极引脚(+)连接到Arduino的数字引脚4(您可以选择任何数字引脚),将蜂鸣器的负极引脚(-)连接到Arduino的GND引脚。


Imag.png

现在我们知道如何设置硬件,让我们继续编程部分。

Arduino代码

这个项目的代码非常简单。将 Arduino 连接到计算机并打开 Arduino IDE。

打开 Arduino IDE 后,将以下代码复制并粘贴到编辑器中。

Void setup() {

  pinMode(4,OUTPUT);

}

Void loop() {

 digitalWrite(4,HIGH);

 delay(2000);

 digitalWrite(4,LOW);

 delay(1000);

}

通过这个简单的代码,您可以打开和关闭有源蜂鸣器。我们使用延迟来控制蜂鸣器打开和关闭的时间。延迟函数里面的数字以毫秒为单位,这意味着我们的蜂鸣器打开2秒,关闭1秒。您也可以根据您的需要进行更改。

如何在 Arduino 上使用无源蜂鸣器?

无源蜂鸣器与 Arduino 的连接与我们对有源蜂鸣器所做的完全相同。我们可以使用 PWM 输出引脚来控制无源蜂鸣器音调输出。或者,我们可以使用任何数字引脚以及tone()和noTone()函数来控制无源蜂鸣器。

所需组件

  • 无源蜂鸣器
  • Arduino板
  • 面包板
  • 跳线
  • 100欧姆电阻

无源蜂鸣器的音调可以通过调整施加到其上的频率来控制。使用 Arduino,您可以通过其数字引脚产生方波。通过修改方波高电平和低电平状态的持续时间,您可以改变频率,从而改变无源蜂鸣器的音调。

Imag.png

确保将蜂鸣器的正极(+)连接到 Arduino 数字引脚 7,负极(-)连接到 Arduino GND。

在相同的情况下,您可能需要在蜂鸣器正极(+)引脚和Arduino数字引脚之间连接100欧姆串联电阻。

Arduino代码:

Arduino 有一个 tone() 函数,它有助于在数字引脚上生成所需的频率波。

以类似的方式让蜂鸣器随着时间的推移保持静音,我们可以使用 notone() 选项。

tone()函数有以下 3 个参数。

音调(引脚、频率、持续时间);

  • 引脚:用于生成音调的 Arduino 引脚。
  • 频率:音调的频率(以赫兹为单位)。
  • 持续时间:提示音的持续时间(以毫秒为单位)。

让我们构建一个循环播放从 sa、re、ga 到 ni 的一组音符的代码。

int buzzerpin = 7;

void setup() {

pinMode(buzzerpin,OUTPUT);

tone(buzzerpin,500,2000);

}

void loop() {

tone(buzzerpin,277);

delay(1000);

tone(buzzerpin,311);

delay(1000)

tone(buzzerpin,350);

delay(1000);

tone(buzzerpin,370);

delay(1000);

tone(buzzerpin,415);

delay(1000);

tone(buzzerpin,466);

delay(1000);

tone(buzzerpin,523);

delay(1000);

tone(buzzerpin,554);

delay(1000);

noTone(buzzerpin);

delay(500);

 tone(buzzerpin,554);

delay(1000);

tone(buzzerpin,523);

delay(1000);

tone(buzzerpin,466);

delay(1000);

tone(buzzerpin,415);

delay(1000);

tone(buzzerpin,370);

delay(1000);

tone(buzzerpin,350);

delay(1000);

tone(buzzerpin,311);

delay(1000);

tone(buzzerpin,277);

delay(1000);

noTone(buzzerpin);

delay(1000);}

当在loop()部分使用tone()函数时,duration参数不能很好地工作。因此,要在循环中设置音调持续时间,请在每个tone() 函数之后使用delay() 函数。在此代码中,有一个delay() 函数,它在每个tone() 函数之后指定1,000 毫秒(一秒)的延迟。

在循环结束时,使用 noTone() 函数和 1,000 毫秒的延迟在循环重复之前添加一秒的静默期。

连接蜂鸣器并上传代码后,您应该会听到蜂鸣器循环播放 7 个音符。

应用领域

  • 通讯设备
  • 音效
  • 汽车电子产品
  • 音调生成
  • 报警电路
  • 安全系统
  • 定时器
  • 家用设备
  • 体育赛事


本文由IC先生网www.mrchip.cn编辑整理发布,请勿转载。

相关文章
|
Linux
`grep`命令搜索当前目录及其子目录下的所有文件
`grep`命令搜索当前目录及其子目录下的所有文件
7571 1
|
前端开发 算法 Unix
面向前端设计的DFT基础介绍(一)——MBIST存储器内建自测试
本文介绍了MBIST存储器内建自测试的中,MBIST的特点,如何测试,Tessent加入的测试逻辑的结构等基础知识,继而以几个实例的图示和解读,描述了RTL设计满足MBIST设计的前置需求。
47747 3
面向前端设计的DFT基础介绍(一)——MBIST存储器内建自测试
|
Java 分布式数据库 数据库
软件各种系统架构图
原文:软件各种系统架构图 https://blog.csdn.net/everythingss/article/details/78749247     该技术架构图是本人根据多年企业技术架构经验而制定,是企业技术的总架构图,希望对CTO们有所借鉴。
9180 0
|
3月前
|
人工智能 数据可视化 测试技术
【教程】阿里云轻量云服务器一键配置OpenClaw
如果你还没有部署自己的 OpenClaw,还可以通过购买腾讯的轻量云服务器,一键秒级部署指南一键秒级部署指南,一键即可在几秒内完成部署。
490 9
|
5月前
|
存储 Linux 数据安全/隐私保护
自建私人云盘|OpenList 保姆级部署,吊打各大网盘
OpenList是开源网盘聚合工具,支持阿里云盘、百度网盘、夸克等数十种存储服务。一键Docker部署,统一管理多网盘文件,视频直链播放不耗服务器带宽,隐私安全有保障。(239字)
|
机器学习/深度学习 存储 TensorFlow
YOLOv11改进策略【Head】| (独家改进)轻量化检测头:利用 EfficientNet 中的移动倒置瓶颈模块 MBConv 改进检测头
YOLOv11改进策略【Head】| (独家改进)轻量化检测头:利用 EfficientNet 中的移动倒置瓶颈模块 MBConv 改进检测头
3434 11
YOLOv11改进策略【Head】| (独家改进)轻量化检测头:利用 EfficientNet 中的移动倒置瓶颈模块 MBConv 改进检测头
|
消息中间件 安全 Kafka
Kafka启动后需要开放什么端口?
Kafka启动后需要开放什么端口?
5637 7
|
Linux
linux xshell telnet 进去后如何退出
【8月更文挑战第27天】Telnet协议支持用户远程登录并操控另一台计算机。在Linux系统中结束Telnet会话可采用多种方式:直接输入"exit";利用快捷键Ctrl + ]后跟"quit";同样可通过Telnet命令结合快捷键"Ctrl + ]q"实现;此外,图形界面下直接关闭窗口也是一个简便的选择。用户可根据个人习惯及客户端类型选取合适的方法退出会话。
2337 4
|
Java 编译器
强烈推荐的一款 Java 反编译工具:JAD
强烈推荐的一款 Java 反编译工具:JAD
7956 0
强烈推荐的一款 Java 反编译工具:JAD
|
Web App开发 Ubuntu 安全
Ubuntu操作系统全解析:桌面、服务器与风格详解
Linux Mint同样源自Ubuntu操作系统,并针对现代用户需求,预装了众多照片和多媒体应用程序。该系统秉承开源社区的理念,为用户提供安全、稳定且易于使用的操作系统。想要深入了解Linux Mint,不妨访问其官方网站。