当前位置: 首页 > news >正文

Arduino平台软硬件原理及使用——无源蜂鸣器模块的使用

文章目录
一、蜂鸣器发声原理
二、无源蜂鸣器与有源蜂鸣器的区分
三、无源蜂鸣器模块在Arduino中的使用

一、蜂鸣器发声原理

在这里插入图片描述
上图为常见的不同封装及规格的蜂鸣器。

在这里插入图片描述
同蜜蜂、知了等昆虫发声原理一样,蜂鸣器同样靠振动来发出声音;
如上图为无源蜂鸣器的内部结构,振动片一般为压电陶瓷,当电源导通后,电能会通过压电陶瓷转化机械能,从而通过振动来发出声音。
在这里插入图片描述
上图为不同物种对于发声频率和听觉频率的不同,后文在使用无源蜂鸣器进行发声时,可参考人的听觉频率进行测试。

二、无源蜂鸣器与有源蜂鸣器的区分

有源及无源蜂鸣器
关于有源蜂鸣器无源蜂鸣器外观上的区别,其正面都是一样的,唯独底面一个由黑胶包裹,一个为裸露的电路板 ,正如以下实物图所示:
在这里插入图片描述
另外关于两者的使用区别也容易理解:

有源蜂鸣器只要通电即可连续发出声音,但音色无法改变;
无源蜂鸣器需要接在音频输出电路中才能使用,可以通过改变频率来改变音色

三、无源蜂鸣器模块在Arduino中的使用

蜂鸣器模块
如上无源蜂鸣器模块共有三个引脚:

VCC 接电源正极
GND 接电源负极
IO 接数字输出端口

无源蜂鸣器与Arduino
按照上图将无源蜂鸣器模块与Arduino进行连接,并完成以下程序:

//此程序用于测试无源蜂鸣器的使用
void setup() 
{pinMode(7,OUTPUT);  //设置蜂鸣器连接的7号端口为输出
}void loop() 
{tone(7,555);  //tone函数的作用为使蜂鸣器以指定频率发声//tone(端口号 ,发声频率);
}

程序中的“tone(7, 555)”作用为使得7号端口的蜂鸣器以555的频率发声;上传后,会发现蜂鸣器会持续发声,不妨改变一下程序,使得蜂鸣器可以像警报一样断断续续的发声:

//此程序可以使蜂鸣器间断性的发声
void setup() 
{pinMode(7,OUTPUT);  //设置蜂鸣器连接的7号端口为输出
}void loop() 
{tone(7,555);  //tone函数用于发声delay(300);  //延时300毫秒noTone(7);  //使7号端口的蜂鸣器停止发声delay(300);  //延时300毫秒
}

此程序又引入了“noTone(7)”,其作用为使7号端口的蜂鸣器停止发声,可以尝试改变发声的频率,并上传测试。

关于无源蜂鸣器模块的具体实例可参考文章——Arduino项目式编程教学第五章——激光报警装置

相关文章:

Arduino平台软硬件原理及使用——无源蜂鸣器模块的使用

文章目录 一、蜂鸣器发声原理 二、无源蜂鸣器与有源蜂鸣器的区分 三、无源蜂鸣器模块在Arduino中的使用 一、蜂鸣器发声原理 上图为常见的不同封装及规格的蜂鸣器。 同蜜蜂、知了等昆虫发声原理一样,蜂鸣器同样靠振动来发出声音; 如上图为无源蜂鸣器的内…...

【Go】用 DBeaver、db browser 和 SqlCipher 读取 SqlCipher 数据库

本文档主要描述如何用 DBeaver、db browser 和 SqlCipher 上打开加密的 SQLite3 数据库(用 SqlCipher v3 加密) 软件版本 DBeaver:v24.1.0 SQLite-driver: sqlite-jdbc-3.46.0.0.jar dbbrowser-for-sqlite-cipher:3.12.2 SqlCipher cli(ubuntun)&am…...

ROS操作过程中的报错

文章目录 错误:E: Unable to locate package ros-noetic-desktop-full报错问题报错原因解决方法 错误2:ERROR: cannot download default source list from:报错问题错误原因解决办法 错误:E: Unable to locate package ros-noetic-desktop-fu…...

Qt项目学习-20240617

Qt项目学习 1.0 文件构建 1.1 预处理命令 C预处理命令是编译过程中的第一步,发生在编译器进行实际编译之前。预处理器(preprocessor)执行这些命令,它们不是C语言的一部分,但对源代码的编译过程至关重要。以下是一些常…...

加密好的WPSword文档,忘记密码怎么办?

在日常办公和学习中,我们经常使用WPS Word等文档处理软件来创建和编辑重要文件。为了保护这些文件不被未经授权的人访问,我们通常会选择给文档设置密码。然而,有时我们可能会因为时间久远或其他原因而忘记自己设置的密码,这时该如…...

C# WPF 读写CAN数据

C# WPF 读写CAN数据 CAN 分析仪 分析仪资料下载 官方地址:https://www.zhcxgd.com/1.html CSDN: 项目配置 复制Dll库文件 文件在上面的资料里面 设置不安全代码 CAN C#工具类 CAN_Tool.cs using Microsoft.VisualBasic; using System; using Sys…...

力扣2517.礼盒的最大甜蜜度

力扣2517.礼盒的最大甜蜜度 二分答案求最小值 排完序判断是否有k个差距至少为mid的元素别用i遍历 可能会越界 用 : 有多少取多少 class Solution {public:int maximumTastiness(vector<int>& price, int k) {ranges::sort(price);auto check [&](int mid) -&…...

多模块存储器

随着计算机技术的发展&#xff0c;处理的信息量越来越多&#xff0c;对存储器的速度和容量要求也越来越高&#xff1b;而且随着CPU性能的不断提高、IO设备数量不断增加&#xff0c;导致主存的存取速度已经称为了整个计算机系统的性能瓶颈。这就要求我们必须提高主存的访问速度。…...

Windows反截屏开发实现

文章目录 Windows反截屏开发实现1. SetWindowDisplayAffinity2. 反截屏系统3. 总结 Windows反截屏开发实现 最近在我们云桌面中需要做到反截屏能力&#xff0c;所谓反截屏就是我们无法通过截图软件&#xff08;微信&#xff0c;QQ&#xff0c;截图等程序&#xff09;截取桌面的…...

Android.mk的用法

前言 Android.mk 文件是 Android 编译系统中用于描述项目源文件、库和模块的 Makefile。它采用 GNU Make 的语法,但也包含了一些特定于 Android 编译系统的规则和变量。以下是对其语法和使用方法的详细解释及示例。 一:模块种类 一个Android.mk file用来向编译系统描述你的源…...

android studio CreateProcess error=2, 系统找不到指定的文件

【问题记录篇】 在AndroidStudio编译开发jni相关工程代码的时候&#xff0c;编译遇到的这个报错&#xff1a; CreateProcess error2, 系统找不到指定的文件。排查处理步骤: 先查看Build Output的具体日志输出 2.了解到问题出在了NDK配置上&#xff0c;此时需要根据自己的gra…...

jQuery如何把单选框设置为选中状态

在网页开发中&#xff0c;我们经常需要使用表单元素来收集用户数据。其中&#xff0c;单选框&#xff08;radio button&#xff09;是一种常见的表单元素&#xff0c;用于从一组选项中选择一个。使用jQuery&#xff0c;我们可以轻松地控制这些单选框的状态&#xff0c;包括将它…...

Mware Fusion Pro 13 mac版:一键掌控虚拟世界

VMware Fusion Pro 13是一款功能卓越的虚拟化软件&#xff0c;专为Mac操作系统量身打造。这款软件为用户提供了一个一站式的虚拟化解决方案&#xff0c;能够满足各种多样化的需求。 VMware Fusion Pro 13 Mac获取 VMware Fusion Pro 13的强大之处在于其采用了最 先进的虚拟化…...

PTA - 函数的定义与调用

编写一个名为collatz()的函数,它有一个名为number的参数&#xff1a; 如果number是偶数,那么collatz()就打印number加上2如果number是奇数,那么collatz()就打印number乘以2 函数接口定义&#xff1a; def collatz(number)裁判测试程序样例&#xff1a; /* 请在这里填写答案…...

Solr7.4.0报错org.apache.solr.common.SolrException

文章目录 org.apache.solr.common.SolrException: Exception writing document id MATERIAL-99598435990497269125316 to the index; possible analysis error: cannot change DocValues type from NUMERIC to SORTED_NUMERIC for field "opt_time"Exception writing…...

从2-3-4树开始理解红黑二叉树(JAVA代码手撸版)

经典的红黑二叉树在新增/删除数据时维持自平衡始终对应着一个2-3-4 树。本文只关注2-3-4 对应的经典红黑二叉树。 暂时不考虑 2-3 树对应的左倾红黑二叉树。 背景知识 2-3-4 树简介 一棵 2-3-4 树的结点分为 内部结点 (internal nodes) 和 叶子结点 (leaf nodes) &#xff0c;…...

模板类与继承

1模板类继承普通类&#xff08;常见&#xff09; #include<iostream> using namespace std; class AA { public:int m_a;AA(int a) :m_a(a) { cout << "调用了AA的构造函数\n"; }void func1() { cout << "调用func1&#xff08;&#xff09;…...

随手记:uniapp图片展示,剩余的堆叠

UI效果图&#xff1a; 实现思路&#xff1a; 循环图片数组&#xff0c;只展示几张宽度就为几张图片边距的宽度&#xff0c;剩下的图片直接堆叠展示 点击预览的时候传入当前的下标&#xff0c;如果是点击堆叠的话&#xff0c;下标从堆叠数量开始计算 <template><…...

微服务迁移、重构最佳经验

1. 了解现有的单体应用: - 应用架构和技术栈 要了解现有的应用架构和技术栈&#xff0c;可以采取以下几个步骤&#xff1a; 1. 了解应用的背景和目标&#xff1a;首先要了解应用的背景和目标&#xff0c;包括应用所属的行业、应用的类型&#xff08;例如Web应用、移动应用等…...

【Python】从0开始的Django基础

Django框架基础 unit01一、Django基础1.1 什么是Django?1.2 安装与卸载1.2.1 Python与Django的版本1.2.2 安装1.2.3 查看Django版本1.2.4 卸载 二、Django项目2.1 概述2.2 创建项目2.3 启动项目2.4 项目的目录结构2.5 配置 三、URL 调度器3.2 定义URL路由3.2 定义首页的路由3.…...

FireRedASR-AED-L语音识别模型WebUI快速部署教程:Python环境一键配置

FireRedASR-AED-L语音识别模型WebUI快速部署教程&#xff1a;Python环境一键配置 语音识别技术正在快速融入我们的日常开发&#xff0c;无论是做智能客服、会议纪要&#xff0c;还是内容审核&#xff0c;一个好用的识别模型都能省下大量时间。但很多朋友在第一步——环境部署上…...

前端HTML精讲01:别再乱 div 一把抓,吃透语义化标签才是进阶第一步

前端HTML精讲01&#xff1a;别再乱 div 一把抓&#xff0c;吃透语义化标签才是进阶第一步 文章目录前端HTML精讲01&#xff1a;别再乱 div 一把抓&#xff0c;吃透语义化标签才是进阶第一步一、什么是HTML语义化&#xff1f;二、为什么要做HTML语义化&#xff1f;1\. 提升代码可…...

Clawdbot汉化版实测:企业微信接入AI客服,响应速度提升92%

Clawdbot汉化版实测&#xff1a;企业微信接入AI客服&#xff0c;响应速度提升92% 1. 企业客服场景的痛点与解决方案 1.1 传统客服面临的挑战 在电商和客户服务领域&#xff0c;企业微信已成为重要的客户沟通渠道。然而传统客服模式存在三个核心问题&#xff1a; 响应延迟&a…...

GPT-SoVITS实战体验:仅需1分钟音频,打造高保真个人语音库

GPT-SoVITS实战体验&#xff1a;仅需1分钟音频&#xff0c;打造高保真个人语音库 1. 引言&#xff1a;声音克隆技术的平民化革命 想象一下这样的场景&#xff1a;你录制了一段60秒的语音&#xff0c;几小时后就能听到AI用你的声音朗读任何文本——不仅音色相似度高达95%&…...

效率提升神器:快马AI自动生成安装脚本,告别重复配置工作

效率提升神器&#xff1a;快马AI自动生成安装脚本&#xff0c;告别重复配置工作 每次给团队批量安装正版软件时&#xff0c;最头疼的就是重复配置。记得上个月部署开发环境&#xff0c;光是手动点下一步、选路径、勾选组件就花了整整一上午&#xff0c;还因为手滑选错选项导致…...

提升工作效率的利器:哦我的Claude代码(Oh-My-ClaudeCode)

轻松掌握Claude Code的多代理 orchestration——oh-my-claudecode 在我们的工程师和开发者面前&#xff0c;常常会遇到复杂的任务调度和多代理协作的问题。如何有效地利用可用的AI助手并提高工作效率&#xff0c;成为了一个不容忽视的挑战。oh-my-claudecode正是为了解决这些问…...

macOS专属方案:OpenClaw+nanobot镜像的5个效率技巧

macOS专属方案&#xff1a;OpenClawnanobot镜像的5个效率技巧 1. 为什么选择OpenClawnanobot组合 作为一个长期使用macOS的开发者&#xff0c;我一直在寻找能够提升日常工作效率的自动化工具。直到遇到OpenClaw和nanobot这个组合&#xff0c;才真正找到了适合个人使用的智能助…...

WechatDecrypt终极指南:3步轻松解密微信数据库的完整方案

WechatDecrypt终极指南&#xff1a;3步轻松解密微信数据库的完整方案 【免费下载链接】WechatDecrypt 微信消息解密工具 项目地址: https://gitcode.com/gh_mirrors/we/WechatDecrypt 想要找回珍贵的聊天记录却苦于微信加密机制&#xff1f;WechatDecrypt作为一款专业的…...

Fish-Speech-1.5在Ubuntu20.04上的Docker化部署教程

Fish-Speech-1.5在Ubuntu20.04上的Docker化部署教程 1. 引言 想快速搭建一个高质量的语音合成系统吗&#xff1f;Fish-Speech-1.5可能是你正在寻找的解决方案。这个模型支持13种语言&#xff0c;只需要10-30秒的声音样本就能生成自然流畅的语音&#xff0c;而且延迟不到150毫…...

Linux内存管理:malloc与free实现原理详解

Linux内存管理&#xff1a;malloc和free的实现原理深度解析1. 动态内存分配基础1.1 malloc和free函数原型void* malloc(size_t size); void free(void* ptr);malloc函数分配指定字节数的内存空间&#xff0c;返回指向该空间的void指针。由于返回的是通用指针&#xff0c;使用时…...