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

【物联网技术与应用】实验10:蜂鸣器实验

实验10 蜂鸣器实验

【实验介绍】

蜂鸣器是音频信号装置。蜂鸣器可分为有源蜂鸣器和无源蜂鸣器。

img

【实验组件】

● Arduino Uno主板* 1

● USB数据线* 1

● 有源蜂鸣器* 1

● 无源蜂鸣器* 1

● 面包板* 1

● 9V方型电池* 1

● 跳线若干

【实验原理】

如图所示,将两个蜂鸣器的引脚朝上,您可以看到带有绿色电路板的引脚是一个无源蜂鸣器,而另一个带有黑色塑料外壳而不是电路板的蜂鸣器是有源蜂鸣器。

img

有源蜂鸣器内置振荡源,所以通电时会发出声音。但无源蜂鸣器没有这种源,所以如果使用直流信号它不会发出蜂鸣声;相反,需要使用频率在2K到5K之间的方波来驱动它。由于有内置振荡电路,所以有源蜂鸣器通常比无源蜂鸣器昂贵。

img

【实验内容】

第一步:建立电路,如图所示:

img

无源蜂鸣器

第二步:编程

第三步:编译

第四步:将程序上传到Arduino Uno板

代码如下:

//function:buzzer beeping in different frequence/*******************************************/const int buzzerPin = 7;//the buzzer pin attach toint fre;//set the variable to store the frequence value/*******************************************/void setup(){pinMode(buzzerPin,OUTPUT);//set buzzerPin as OUTPUT}/*******************************************/ void loop(){for(int i = 200;i <= 800;i++)  //frequence loop from 200 to 800{tone(7,i);  //in pin7 generate a tone,it frequence is idelay(5);   //wait for 5 milliseconds  }delay(4000);  //wait for 4 seconds on highest frequencefor(int i = 800;i >= 200;i--)  //frequence loop from 800 downto 200{tone(7,i);  //in pin7 generate a tone,it frequence is idelay(10);  //delay 10ms}}

【实验结果1】

现在可以听到无源蜂鸣器响了,如果在这里使用有源蜂鸣器,它也以相同的方式工作。如图所示:
img

此时无源蜂鸣器发出声响。

有源蜂鸣器

注意:有源蜂鸣器有一个内置振荡源,所以只要连接好就会发出蜂鸣声。

第二步:编程

第三步:编译

第四步:将程序上传到Arduino Uno板

代码如下:

/************************************************\* function:you can hear the active buzzer beeping.\* But it won't work if you use a passive one here. *************************************************/int buzzerPin = 7;//the pin of the active buzzer attach to pin7void setup(){pinMode(buzzerPin,OUTPUT);//set the buzzer as as OUTPUTdigitalWrite(buzzerPin,LOW);//initialize the buzzerPin as LOW level}void loop(){digitalWrite(buzzerPin,LOW);delay(1000);digitalWrite(buzzerPin,HIGH);delay(1000);} 

【实验结果2】

img

现在,您可以听到蜂鸣器发出蜂鸣声,但是如果你在这里使用一个无源蜂鸣器,它将不起作用。

【实验体会】

在完成蜂鸣器实验后,我对有源蜂鸣器与无源蜂鸣器的工作原理及使用方式均有了显著提升的认知水平。实验过程中,我顺利搭建起相应电路,并精心编写程序以驱动蜂鸣器发声。 就无源蜂鸣器而言,因其缺少内置振荡源,故而需借助频率处于 2K 至 5K 范围的方波信号予以驱动。借助所编写程序,我得以精准掌控无源蜂鸣器按不同频率发出蜂鸣声,从而对其工作原理形成了更为透彻清晰的理解。

对于有源蜂鸣器,鉴于其自身已内置振荡源,仅需确保电路连接无误,便可使其正常发声。我通过编写程序成功驱动有源蜂鸣器发出蜂鸣,由此对其使用有了更优的领悟。

经由此次实验,我在电路搭建与 Arduino 编程这两方面的能力均得到有效锻炼与提升,同时对蜂鸣器的理解也更为深刻。蜂鸣器作为一种极为常见的音频信号装置,在实际应用场景中有着广泛的运用领域。我深切意识到,熟练掌握蜂鸣器的工作原理与使用方法,对于电子制作以及嵌入式系统开发工作而言意义重大。

总体来讲,本次实验使我对蜂鸣器的工作原理和使用方法更为熟知,并且有力地增强了我的实验操作与编程技能。我满怀期待,渴望在后续的学习与实践进程中能够充分运用此次所学知识,创造出更多新颖有趣且具备实用价值的电子装置作品。

相关文章:

【物联网技术与应用】实验10:蜂鸣器实验

实验10 蜂鸣器实验 【实验介绍】 蜂鸣器是音频信号装置。蜂鸣器可分为有源蜂鸣器和无源蜂鸣器。 【实验组件】 ● Arduino Uno主板* 1 ● USB数据线* 1 ● 有源蜂鸣器* 1 ● 无源蜂鸣器* 1 ● 面包板* 1 ● 9V方型电池* 1 ● 跳线若干 【实验原理】 如图所示&#x…...

【python高级】342-TCP服务器开发流程

CS模式&#xff1a;客户端-服务端模式 TCP客户端开发流程介绍&#xff08;五步&#xff09;&#xff08;C端&#xff09; 1.创建客户端套接字对象 2.和服务端套接字建立连接 3.发送数据 4.接收数据 5.关闭客户端套接字 TCP服务端开发流程&#xff08;七步&#xff09;&#xf…...

C++开源项目 VLC 源代码的交叉编译以及库的裁剪方法详解

目录 1、VLC简介 2、VLC编译环境配置 2.1、编译环境 2.2、编译环境配置 2.2.1、下载安装MSYS2 2.2.2、下载mingw-w64 3、编译VLC 4、VLC库的裁剪 5、总结 C软件异常排查从入门到精通系列教程&#xff08;核心精品专栏&#xff0c;订阅量已达600多个&#xff0c;欢迎订…...

draw.io 导出svg图片插入word后模糊(不清晰 )的解决办法

通常我们将图片从draw.io导出为svg格式后插入word, 会发现字体不清晰&#xff0c;特别是使用宋体时&#xff0c;折腾了半天&#xff0c;得到如下办法&#xff1a; 方法1: 在draw.io中导出pdf文件&#xff0c;使用 PDF转SVG转换器 - SVGConverter 将其转换为svg, 完美呈现。 …...

详解js柯里化原理及用法,探究柯里化在Redux Selector 的场景模拟、构建复杂的数据流管道、优化深度嵌套函数中的精妙应用

目录 详解js柯里化原理及用法&#xff0c;探究柯里化在Redux Selector 的场景模拟、构建复杂的数据流管道、优化深度嵌套函数中的精妙应用 一、什么是柯里化&#xff1f; 1、原理解析 2、一个直观的例子 二、如何实现柯里化&#xff1f; 1、底层实现 2、工作原理解析 3…...

Cesium材质——Material

简介&#xff1a; Cesium.Material对象的目的&#xff0c;就是生成一段名称为czm_getMaterial的函数&#xff08;示例代码如下&#xff09;&#xff0c; 这个czm_getMaterial函数&#xff0c;是shader代码&#xff0c;会被放到片元着色器中使用。 czm_material czm_getMater…...

《点点之歌》“意外”诞生记

世界是“点点”的&#xff0c;“点点”是世界的。 (笔记模板由python脚本于2024年12月23日 19:28:25创建&#xff0c;本篇笔记适合喜欢诗文的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网&#xff1a;https://www.python.org/ Free&#xff1a;大咖免费“圣经”教程《 …...

统计某个文件中某个字符串出现的次数

要统计某个文件中某个字符串出现的次数&#xff0c;有多种方法可以实现。以下是几种常用且高效的 Linux 命令方法&#xff1a; 方法一&#xff1a;使用 grep 和 wc 命令示例&#xff1a; grep -o "字符串" 文件名 | wc -l说明&#xff1a; grep -o "字符串&…...

C++简明教程(文章要求学过一点C语言)(3)

一、编程工具大揭秘——IDE 当我们准备踏入 C 编程的奇妙世界时&#xff0c;首先要认识一个重要的“魔法盒子”——集成开发环境&#xff08;IDE&#xff09;。IDE 就像是一个全能的编程工作室&#xff0c;它把我们写代码所需要的各种工具都整合到了一起&#xff0c;让编程这件…...

Springboot高并发乐观锁

Spring Boot分布式锁的主要缺点包括但不限于以下几点&#xff1a; 性能开销&#xff1a;使用分布式锁通常涉及到网络通信&#xff0c;这会引入额外的延迟和性能开销。例如&#xff0c;当使用Redis或Zookeeper实现分布式锁时&#xff0c;每次获取或释放锁都需要与这些服务进行交…...

编译原理复习---正则表达式+有穷自动机

适用于电子科技大学编译原理期末考试复习。 1. 正则表达式 正则表达式&#xff08;Regular Expression&#xff0c;简称regex或regexp&#xff09;是一种用于描述、匹配和操作文本模式的强大工具。它由一系列字符和特殊符号组成&#xff0c;这些字符和符号定义了一种搜索模式…...

如何使用ChatGPT辅助文献综述,以及如何进行优化?一篇说清楚

目录 1.写在开头 2.ChatGPT 3.提示词研究 4.第一轮研究 5.第二轮研究 6.生成文献综述 嘿宝子们&#xff01;今天我们要聊的&#xff0c;可是个让学术圈都为之振奋的话题——ChatGPT辅助文献综述。这个教育界的新宠儿&#xff0c;已经不满足于仅仅在学习和教学中露两手了&…...

ZZNUOJ 1601:字母序号(C/C++/Java)

题目描述 我们把字母 A-Z 分别编号为 1-26, 现在给你一个大写字母, 输出这个大写字母的序号。 输入 输入一个大写字母 输出 输出这个大写字母的序号 样例输入 C 样例输出 3 常见的ASCII值 ASCII表中可以记下部分特殊的值(十进制)(字母从A到Z,从a到z,ASCII值依次递增)...

[CISCN 2021初赛]rsa

[CISCN 2021初赛]rsa 源代码&#xff1a; from flag import text,flag import md5 from Crypto.Util.number import long_to_bytes,bytes_to_long,getPrimeassert md5.new(text).hexdigest() flag[6:-1]msg1 text[:xx] msg2 text[xx:yy] msg3 text[yy:]msg1 bytes_to_lo…...

Electron -- Electron Fiddle(一)

Electron Fiddle 是一个由 Electron 团队开发的开源工具&#xff0c;它允许开发者快速创建、运行和调试 Electron 应用。这个工具提供了一个简洁的界面&#xff0c;使用户无需配置复杂的开发环境&#xff0c;就能快速体验和学习 Electron。强烈建议将其安装为学习工具。 学习它…...

java 实现排序的几种方式

冒泡排序(Bubble Sort) 基本原理&#xff1a; 它重复地走访要排序的数列&#xff0c;一次比较两个元素&#xff0c;如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换&#xff0c;也就是说该数列已经排序完成。 示例代码如下&#xff1a; 登…...

【机器学习与数据挖掘实战】案例06:基于Apriori算法的餐饮企业菜品关联分析

【作者主页】Francek Chen 【专栏介绍】 ⌈ ⌈ ⌈机器学习与数据挖掘实战 ⌋ ⌋ ⌋ 机器学习是人工智能的一个分支,专注于让计算机系统通过数据学习和改进。它利用统计和计算方法,使模型能够从数据中自动提取特征并做出预测或决策。数据挖掘则是从大型数据集中发现模式、关联…...

陀螺仪选型

瑞芬官网 datasheet 陀螺仪、IMU姿态仪、陀螺转角仪、三轴姿态仪、三轴陀螺仪 mid360 imu ICM-40609-D TDK InvenSense | Mouser https://product.tdk.com/system/files/dam/doc/product/sensor/mortion-inertial/imu/data_sheet/ds-000330_icm-40609-d_v1.2.pdf...

【超详细实操内容】django的身份验证系统之限制用户访问的三种方式

目录 1、使用request.user.is_authenticated属性 2、装饰器login_required 3、LoginRequiredMixin类 通常情况下,网站都会对用户限制访问,例如,未登录的用户不可访问用户中心页面。Django框架中使用request.user.isauthenticated属性、装饰器loginrequired和LoginRequire…...

Pika Labs技术浅析(六):自动化技术

Pika Labs 的自动化技术旨在通过工作流引擎和自动化警报系统&#xff0c;帮助用户实现业务流程的自动化和实时监控。 一、自动化技术模块概述 Pika Labs 的自动化技术模块旨在通过以下两个核心组件&#xff0c;实现业务流程的自动化和实时监控&#xff1a; 1.工作流引擎&…...

springboot471基于协同过滤算法商品推荐系统(论文+源码)_kaic

摘 要 传统办法管理信息首先需要花费的时间比较多&#xff0c;其次数据出错率比较高&#xff0c;而且对错误的数据进行更改也比较困难&#xff0c;最后&#xff0c;检索数据费事费力。因此&#xff0c;在计算机上安装协同过滤算法商品推荐系统软件来发挥其高效地信息处理的作用…...

【YashanDB知识库】jdbc查询st_geometry类型的数据时抛出YAS-00101错误

本文内容来自YashanDB官网&#xff0c;原文内容请见 https://www.yashandb.com/newsinfo/7802956.html?templateId1718516 问题现象 某客户的业务在通过YashanDB jdbc驱动查询含有st_geometry列的数据时&#xff0c;报如下异常&#xff1a;YAS-00101 cannot allocate 0 byte…...

ajax中get和post的区别,datatype返回的数据类型有哪些?web开发中数据提交的几种方式,有什么区别。

在 Web 开发中&#xff0c;GET 和 POST 是两种常见的 HTTP 请求方法&#xff0c;它们有一些显著的区别。此外&#xff0c;datatype 参数在 jQuery 的 ajax() 请求中指定了预期的响应数据类型。接下来&#xff0c;我会详细解释这些问题。 1. GET 和 POST 请求的区别 GET 请求 和…...

EKF异常状态自检

https://wenku.csdn.net/column/25p1jkf4vz https://www.zhihu.com/question/293038308/answers/updated https://zhuanlan.zhihu.com/p/12011086094 常用数据分析方法&#xff1a;方差分析及实现&#xff01;-腾讯云开发者社区-腾讯云 方差分析的七种类型_双因素方差分析 自变…...

《解析 MXNet 的 C++版本在分布式训练中的机遇与挑战》

在深度学习的广袤领域中&#xff0c;分布式训练已成为应对大规模数据和复杂模型训练需求的关键手段。MXNet 作为一款备受瞩目的深度学习框架&#xff0c;其 C版本在分布式训练方面展现出独特的魅力&#xff0c;同时也面临着诸多挑战。深入探究这些优势与挑战&#xff0c;对于推…...

UVM学习总结

问题1&#xff1a;同时出现几个相同的uvm_config_de()哪个有效&#xff1f; UVM中的配置对象是通过uvm_config_db类实现的。uvm_config_db类使用一对名称和值来存储配置信息。当多个uvm_config_db.call()调用同时提供相同名称的配置时&#xff0c;最后一个调用将覆盖之前的调用…...

TCP/IP 介绍:网络通信的基石

TCP/IP 介绍&#xff1a;网络通信的基石 计算机通信协议概述 在数字时代&#xff0c;计算机之间的通信变得至关重要。计算机通信协议&#xff08;Computer Communication Protocol&#xff09;是一套规则&#xff0c;定义了计算机如何相互交流信息。这些协议确保了不同制造商…...

华为IPD流程6大阶段370个流程活动详解_第二阶段:计划阶段 — 86个活动

华为IPD流程涵盖了产品从概念到上市的完整过程,各阶段活动明确且相互衔接。在概念启动阶段,产品经理和项目经理分析可行性,PAC评审后成立PDT。概念阶段则包括产品描述、市场定位、投资期望等内容的确定,同时组建PDT核心组并准备项目环境。团队培训涵盖团队建设、流程、业务…...

基于Spring Boot的建材租赁系统

一、系统背景与目的 随着建筑行业的快速发展&#xff0c;建材租赁需求日益增加。传统的建材租赁管理方式大多依赖于纸质文档或简单的电子表格&#xff0c;不仅效率低下&#xff0c;还容易出现信息遗漏和错误。为了解决这些问题&#xff0c;基于Spring Boot的建材租赁系统应运而…...

YOLO v5 Series - MQTT

MQTT...

uni-app开发订单列表页面

目录 一:功能描述 二:功能实现 一:功能描述 订单列表页面包含三个部分,最上面显示订单的状态信息,可以根据订单进行切换,中间显示订单的商品和价格信息,最下面显示订单的操作按钮,可以根据不同的状态操作订单。 二:功能实现 1:状态切换 <view class="nav-…...

14,攻防世界Web_php_unserialize

进入场景 看见代码&#xff0c;解析一下 这段PHP代码定义了一个名为Demo的类&#xff0c;并演示了如何通过URL参数进行反序列化和文件高亮显示的功能&#xff0c;同时也包含了一些安全措施以防止对象注入攻击。下面是对这段代码的逐行解释&#xff1a; 1.<php 开始PHP代码…...

基于单片机的电梯声控系统设计(论文+源码)

1.系统设计 在目前的高楼住宅&#xff0c;商业大厦中电梯是不可或缺的&#xff0c;而传统的电梯控制器系统&#xff0c;通常需要用户用手去按下按键进行控制&#xff0c;但是这种方式在有些情况下&#xff0c;并不完善&#xff0c;比如在本次新冠疫情期间&#xff0c;由于新冠…...

宠物用品电子商务系统|Java|SSM|VUE| 前后端分离

【技术栈】 1⃣️&#xff1a;架构: B/S、MVC 2⃣️&#xff1a;系统环境&#xff1a;Windowsh/Mac 3⃣️&#xff1a;开发环境&#xff1a;IDEA、JDK1.8、Maven、Mysql5.7 4⃣️&#xff1a;技术栈&#xff1a;Java、Mysql、SSM、Mybatis-Plus、VUE、jquery,html 5⃣️数据库可…...

每日一题 341. 扁平化嵌套列表迭代器

341. 扁平化嵌套列表迭代器 展开成数组来解题 class NestedIterator {vector<int> nums;int idx;void flattened(vector<NestedInteger> &nestedList){for(int i0;i<nestedList.size();i){if(nestedList[i].isInteger()){nums.push_back(nestedList[i].get…...

小程序 - 模拟时钟

微信小程序常用API练习 - 模拟时钟小程序开发笔记 模拟时钟 “模拟时钟”微信小程序是一个简约风格的动态时钟&#xff0c;该时钟时间与系统时间一致&#xff0c;且时针、分针、秒针会与系统时间同步更新&#xff0c;用户可以很方便地查看时间。下面将对“模拟时钟”微信小程序…...

UDP的报文结构和特点

1.UDP传输协议的特点 使用UDP传输协议进行通信&#xff0c;过程类似于寄信&#xff0c;它的特点如下&#xff1a; 无连接&#xff1a;知道对端的IP号和端口号就直接进行传输&#xff0c;不需要建立连接&#xff1b;不可靠&#xff1a;没有可靠机制&#xff0c;发送数据包以后&a…...

如何在服务器上克隆、pull、push GitHub私有项目

诸神缄默不语-个人CSDN博文目录 情况是这样的&#xff0c;我直接用git clone命令后&#xff0c;会提示让我输入GitHub账号密码&#xff0c;我输入后它还是显示克隆失败&#xff0c;并显示&#xff1a; Cloning into folder_name... Username for https://github.com: user_na…...

mybatis 动态 SQL

动态 SQL 是 MyBatis 的强大特性之一。如果你使用过 JDBC 或其它类似的框架&#xff0c;你应该能理解根据不同条件拼接 SQL 语句有多痛苦&#xff0c;例如拼接时要确保不能忘记添加必要的空格&#xff0c;还要注意去掉列表最后一个列名的逗号。利用动态 SQL&#xff0c;可以彻底…...

LeetCode 1661. 每台机器的进程平均运行时间

LeetCode 1661. 每台机器的进程平均运行时间 表: Activity ----------------------- | Column Name | Type | ----------------------- | machine_id | int | | process_id | int | | activity_type | enum | | timestamp | float | ----------------------- 该表展示了一家工厂…...

【RabbitMQ】RabbitMQ保证消息不丢失的N种策略的思想总结

文章目录 生产者端&#xff08;消息发布端&#xff09;保证机制RabbitMQ服务器端保证机制消费者端&#xff08;消息接收端&#xff09;保证机制除了MQ自带的机制&#xff0c;还能做的操作持久化的原理ACK思想 更多相关内容可查看 消息从发送&#xff0c;到消费者接收&#xff0…...

在21世纪的我用C语言探寻世界本质 ——编译和链接(编译环境和运行环境)

人无完人&#xff0c;持之以恒&#xff0c;方能见真我&#xff01;&#xff01;&#xff01; 共同进步&#xff01;&#xff01; 文章目录 一、翻译环境和运行环境二、翻译环境1.编译预处理编译汇编 2.链接 三、运行环境 一、翻译环境和运行环境 在 ANSI C 的任何⼀种实现中&am…...

Codeforces Round 994 (Div. 2)-D题

题目链接:https://codeforces.com/contest/2049/problem/D 题目大意是在开始移动之前,可以任意次将一行元素向左挪一格,代价是1,开始游戏后,只能向下走或者向右走,直到走到终点,问最小代价是多少. constexpr ll inf 1E18; void solve() {int n, m, K;std::cin >> n &g…...

【计算机视觉】opencv-停车位检测原理及代码演示

概述 本文介绍了一种基于OpenCV库的停车场空位检测方法。通过本项目演示&#xff0c;可以对opencv库有更深刻的理解。文章详细阐述了检测原理、算法流程以及代码实现。 一、原理介绍 基于OpenCV的停车位检测原理涉及多个图像处理步骤&#xff0c;以下将结合相关公式详细介绍每…...

C++面向对象三大特征之一 ——(多态)

C面向对象三大特征之一 ——多态 一. 多态的概念二. 多态的定义及实现2.1多态的构成条件2.2 虚函数2.3虚函数的重写虚函数重写的两个例外&#xff1a; 2.4 C11 override 和 final2.5 重载、覆盖(重写)、隐藏(重定义)的对比 三. 抽象类接口继承和实现继承 四.多态的原理4.1虚函数…...

HTTP协议及安全防范

由于图片解析问题&#xff0c;可以点击查看 &#x1f449;&#x1f3fb; 博客原文 HTTP&#xff08;Hypertext Transfer Protocol&#xff09;超文本传输协议是一个用于 Web 应用程序通信的应用层协议。它是一种客户端-服务器协议&#xff0c;客户端通过发送请求到服务器来获取…...

JVM简介—1.Java内存区域

1.运行时数据区的介绍 (1)运行时数据区的定义 Java虚拟机在执行Java程序的过程中&#xff0c;会把它所管理的内存划分为若干个不同的数据区域&#xff0c;这些区域各有各的用途以及各自的创建和销毁时间也不一样。有的区域会随着虚拟机的进程启动而存在&#xff0c;有的区域则依…...

IPC协议获取签名信息

一&#xff1a;IPC协议获取签名信息详解 目录 什么是IPC协议&#xff1f;签名信息概述IPC协议中签名信息获取的流程相关知识点 数字签名原理常见签名算法数据完整性与认证签名的生成与验证IPC中的安全传输 应用场景总结 什么是IPC协议&#xff1f; IPC&#xff08;Inter-Pro…...

高校就业管理系统:数据驱动的就业服务创新

1 Java语言 Java语言是目前最流行的语言之一&#xff0c;不仅可以做桌面窗口形式的程序&#xff0c;还可以做浏览器访问的程序&#xff0c;目前最流行的就是用Java语言作为基础&#xff0c;做各种程序的后台处理。Java语言是操作变量的语言&#xff0c;而变量则是Java对于数据存…...

C++中的模板元编程

模板元编程 模板特化&#xff1a; 指的是对某个特定类型或特定类型组合提供模板的定制实现。 示例&#xff1a; #include<iostream> using namespace std;template <typename T> void func(T t) {cout << "Generic template: " << t <…...