Arduino平台软硬件原理及使用——SR04超声波传感器的使用

文章目录:
一、超声波传感器工作原理
二、SR04超声波库的使用
三、SR04超声波传感器在Arduino中的使用

一、超声波传感器工作原理

超声波传感器
如上图所示:HCSR04超声波传感器拥有4个针脚,除了VCC接正极、GND接负极外,还有两个引脚“Trig”及“Echo”;
其中“Trig”用于控制发射超声波,“Echo”用于接收反射波。

超声波原理
其工作原理如上图:首先传感器发射超声波,并计时,当超声波接触到障碍物会被反射,当传感器接收到反射波,计时结束,然后利用距离、速度、时间公示进行计算,得到传感器到障碍物间的距离

二、SR04超声波库的使用

在使用SR04超声波传感器之前,需要先配置好库文件
一般这种较基础的库文件,在下载Arduino软件后会自动配置好,可以根据下图所示检验是否有超声波传感器的库:
在这里插入图片描述
如果在示例文件中存在SR04超声波传感器的示例文件,则一般已配置好库文件。
在这里插入图片描述
如果未配置好库文件,则可使用2.0以后版本的Arduino软件直接搜索然后安装;
若Arduino软件版本较旧,则可参照Arduino平台软硬件原理及使用——开源库的使用来进行配置安装。
在这里插入图片描述
由于不同的库文件贡献者所创建库的差异性,可以通过按下【Alt/cmd键】+【点击库名称】的方法来打开其头文件

#pragma once
#include <Arduino.h>class HCSR04
{
public:HCSR04(int out, int echo);			//initialisation class HCSR04 (trig pin , echo pin)HCSR04(int out, int echo[], int n); //initialisation class HCSR04 (trig pin , echo pin)~HCSR04();							//destructorfloat dist() const;					//return curent distance of element 0float dist(int n) const;			//return curent distance of element nprivate:void init(int out, int echo[], int n); //for constructorint out;							   //out pinint *echo;							   //echo pin listint n;								   //number of el
};

如上代码则为此库文件的头文件,其可使用的方法均位于public公有类里面。

三、SR04超声波传感器在Arduino中的使用

将SR04超声波传感器与Arduino进行连接,除了VCC及GND分别接正负极外;

“Trig”与数字端口D5连接
“Echo”与数字端口D4连接

如下图所示:
在这里插入图片描述
完成以下程序:

//此程序功能为将SR04超声波传感器测的的距离数值,通过串口进行输出#include<HCSR04.h>  //导入超声波SR04库
HCSR04 ultrasonic(5,4);  //声明一个对象,其名为ultrasonic(自定义的名称)//4号为“Echo”,5号为“Trig”void setup()
{pinMode(4, INPUT);  //设置“Echo”接入的引脚为输入pinMode(5, OUTPUT);  //设置“Trig”接入的引脚为输出Serial.begin(9600);  //串口监视器初始化
}int distance;  //定义一个名为“distance”的变量,用于存放检测的距离数值void loop()
{distance = ultrasonic.dist();  //调用了超声波库里的“dist()”方法,获得检测距离数值Serial.print(distance);  //输出distance数值,且不换行Serial.println(" cm");  //紧接着输出单位,且换行
}

将程序上传之前先对以上程序的部分代码块进行解释:
1.“HCSR04 ultrasonic(4, 5)”我们称之为对象的实例化,即HCSR04为超声波库的名称,在其后自定义一个名称“ultrasonic”(即超声波的英文,可自定义任意名称),并且不同的实例化过程有不同的参数要输入,比如HCSR04后需要加入“Trig”和“Echo”所接引脚的端口号(我们分别接到了D5和D4),从而在后述程序中,如果要调用HCSR04库内的方法的话,仅需使用“ultrasonic.方法名()”,即可。

2.“distance = ultrasonic.dist()”这一代码块是调用了超声波传感器中获取距离的方法“dist()”,与前面int定义的distance截然不同,int定义的变量可取任意名称,仅为变量名,但“Distance()”为超声波传感器固定的方法。
接下来将上述程序上传至Arduino板,并且打开串口监视器,观测所测的数值是否准确。
在这里插入图片描述
另外HCSR04型号的超声波传感器的测量范围官方声称为2cm ~ 450cm,因此超出这个范围的数值会不准确。
关于SR04超声波传感器的具体实例可参考文章——Arduino项目式编程教学第四章——超声波测距

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/36690.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux线程互斥锁

目录 &#x1f6a9;看现象&#xff0c;说原因 &#x1f6a9;解决方案 &#x1f6a9;互斥锁 &#x1f680;关于互斥锁的理解 &#x1f680;关于原子性的理解 &#x1f680;如何理解加锁和解锁是原子的 &#x1f6a9;对互斥锁的简单封装 引言 大家有任何疑问&#xff0c;可…

CCSP自考攻略+经验总结

备考攻略 备考攻略准备阶段通读阶段精度阶段总复习阶段刷题阶段命运审判 写到最后 备考攻略 趁着对ssp知识点的理解还在&#xff0c;开始ccsp的考证之路&#xff0c;文章结构还是按照cissp备考篇的结构梳理。本次备考和cissp的离职在家备考不同&#xff0c;ccsp是在职利用非工…

如何用亚马逊合作伙伴网络快速上线跨境电商

目前跨境电商已成为行业发展主流&#xff0c;如何快速、低成本打造品牌海外独立站和智能客服营销中心、构建全链路跨境电商体系是出海电商商家都会遇到的难题。亚马逊云科技凭借与亚马逊电商平台易于集成的先天优势成为首选的电商解决方案平台。本文介绍了如何用亚马逊云科技平…

Elasticsearch8.x聚合查询全面指南:从理论到实战

聚合查询的概念 聚合查询&#xff08;Aggregation Queries&#xff09;是Elasticsearch中用于数据汇总和分析的查询类型。它不同于普通的查询&#xff0c;而是用于执行各种聚合操作&#xff0c;如计数、求和、平均值、最小值、最大值、分组等。 聚合查询的分类 分桶聚合&…

centos7 安装单机MongoDB

centos7安装单机 yum 安装 1、配置yum源 vim /etc/yum.repos.d/mongodb.repo [mongodb-org-7.0] nameMongoDB Repository baseurlhttps://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/7.0/x86_64/ gpgcheck1 enabled1 gpgkeyhttps://www.mongodb.org/static/pgp…

未来已来,如何打造智慧养殖场?

近年来&#xff0c;国家出台了一系列扶持政策&#xff0c;以促进养殖行业高质量发展&#xff0c;推动行业转型升级。在国家政策和市场需求的双重驱动下&#xff0c;养殖行业正迎来前所未有的发展机遇。智慧养殖以其高效、智能和可持续的特点&#xff0c;正逐步取代传统养殖方式…

6.26.4.1 基于交叉视角变换的未配准医学图像多视角分析

1. 介绍 许多医学成像任务使用来自多个视图或模式的数据&#xff0c;但很难有效地将这些数据结合起来。虽然多模态图像通常可以在神经网络中作为多个输入通道进行配准和处理&#xff0c;但来自不同视图的图像可能难以正确配准(例如&#xff0c;[2])。因此&#xff0c;大多数多视…

吴恩达2022机器学习专项课程C2W3:2.27 选修_数据倾斜

目录 处理不平衡数据集1.分类需求描述2.计算精确率和召回率 权衡精确率和召唤率1.手动调整阈值2.F1分数 总结 处理不平衡数据集 1.分类需求描述 如果你在处理一个机器学习应用&#xff0c;其中正例和负例的比例&#xff08;用于解决分类问题&#xff09;非常不平衡&#xff0…

数据库怎么同步

数据库要怎么同步呢&#xff0c;有很多方法&#xff0c;看你用什么数据库&#xff0c;如果是Sqlserver,你要数据库同步&#xff0c;那么可以使用自带的订阅发布&#xff0c;订阅发布应该是不错的方法&#xff0c;但是我上次要配置双向同步&#xff0c;它的对等发布好像没部署成…

Ansible-综合练习-生产案例

斌的招儿 网上教程大多都是官网模板化的教程和文档&#xff0c;这里小斌用自己实际生产环境使用的例子给大家做一个详解。涉及到一整套ansible的使用&#xff0c;对于roles的使用&#xff0c;也仅涉及到tasks和files目录&#xff0c;方便大家快速上手并规范化管理。 0.环境配置…

聚星文社AI工具

聚星文社AI工具是一种基于人工智能技术开发的工具&#xff0c;旨在辅助作者和写作人员提升创作效率和质量。 点击下载 该工具可以提供多项功能&#xff0c;包括语法纠错、智能推荐、文章自动摘要等。 通过使用聚星文社AI工具&#xff0c;用户可以在写作过程中得到即时的纠错建…

ECMAScript6介绍及环境搭建

这实际上说明&#xff0c;对象的解构赋值是下面形式的简写。 let { foo: foo, bar: bar } { foo: ‘aaa’, bar: ‘bbb’ }; 也就是说&#xff0c;对象的解构赋值的内部机制&#xff0c;是先找到同名属性&#xff0c;然后再赋给对应的变量。真正被赋值的是后者&#xff0c;而…

数据结构_绪论

1.数据结构的研究内容 研究数据的特性和数据之间的关系 用计算机解决一个问题的步骤 1.具体问题抽象成数学模型 实质: 分析问题--->提取操作对象--->找出操作对象之间的关系(数据结构)--->用数学语言描述 操作对象对象之间的关系 2.设计算法 3.编程,调试,运行 …

【数据结构与算法】哈希函数 详解

哈希函数的构造方法有哪些&#xff1f; 直接定址法&#xff1a;直接使用关键字或者关键字的某个线性函数值作为哈希地址。 数字分析法&#xff1a;对关键字进行分析&#xff0c;选择关键字中的某几位或者进行某种运算得到的结果作为哈希地址。 平方取中法&#xff1a;先计算关…

通信协议总结

IIC 基本特点 同步&#xff0c;半双工 标准100KHz&#xff0c;最高400KHz&#xff08;IIC主要应用于低速设备&#xff09; 硬件组成 需外接上拉电阻 通信过程 空闲状态 SDA和SCL都处于高电平 开始信号S和终止信号P 在数据传输过程中&#xff0c;当SCL0时&#xff0c;SDA才…

十常侍乱政 | 第2集 | 愿领精兵五千,斩关入内,册立新君,诛杀宦党,扫清朝廷,以安天下 | 三国演义 | 逐鹿群雄

&#x1f64b;大家好&#xff01;我是毛毛张! &#x1f308;个人首页&#xff1a; 神马都会亿点点的毛毛张 &#x1f4cc;这篇博客是毛毛张分享三国演义文学剧本中的经典台词和语句&#xff0c;本篇分享的是《三国演义》第Ⅰ部分《群雄逐鹿》的第2️⃣集《十常侍乱政治》&am…

汇聚荣做拼多多运营第一步是什么?

汇聚荣做拼多多运营第一步是什么?在众多电商平台中&#xff0c;拼多多凭借其独特的社交电商模式迅速崛起&#xff0c;吸引了大量消费者和商家的目光。对于希望在拼多多上开店的商家而言&#xff0c;了解如何进行有效运营是成功的关键。那么&#xff0c;汇聚荣做拼多多运营的第…

算法入门:二分查找及其Java实现

在程序开发中&#xff0c;算法是解决问题的核心。本篇博客将详细讲解一种高效的查找算法——二分查找&#xff0c;并通过Java代码示例帮助你理解其实现和应用。 如果你觉得这篇文章对你有帮助&#xff0c;不要忘记点赞、收藏和关注我&#xff0c;这将是对我最大的支持和鼓励&am…

VMware 最新的安全漏洞公告VMSA-2024-0013

#深度好文计划# 一、摘要 2024年6月26日&#xff0c;VMware 发布了最新的安全漏洞公告 VMSA-2024-0013&#xff0c;修复了 VMware ESXi 和 VMware vCenter 中的多个安全漏洞。 VMSA-2024-0013&#xff1a;VMware ESXi 和 vCenter Server 更新修正了多个安全性漏洞 &#xff…