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

news2024/10/6 2:25:58

文章目录:
一、超声波传感器工作原理
二、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();							//destructor
	float dist() const;					//return curent distance of element 0
	float dist(int n) const;			//return curent distance of element n

private:
	void init(int out, int echo[], int n); //for constructor
	int out;							   //out pin
	int *echo;							   //echo pin list
	int 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.coloradmin.cn/o/1869301.html

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

相关文章

vue-主题切换

themeName/index.vue页面: <template><div class"theme-view"><div click"themeClick" class"theme-btn">切换颜色</div><br>{{themeName white ? 白色 : 深色}}主题页面</div> </template><sc…

pytorch统计学分布

1、pytorch统计学函数 import torcha torch.rand(2,2) print(a) print(torch.sum(a, dim0)) print(torch.mean(a, dim0)) print(torch.prod(a, dim0))print(torch.argmax(a, dim0)) print(torch.argmin(a, dim0)) print(torch.std(a)) print(torch.var(a)) print(torch.median…

UE4 Unlua的快速使用

目录 Unlua的使用前言下载Unlua插件插件安装快速入门语法汇总模块导入多行字符串官方静态方法调用蓝图方法调用重载蓝图中的方法主动调用被重载的蓝图方法输入绑定动态绑定Lua脚本委托容器使用 延迟与协程的使用C 调用Lua 静态导出自定义类型到Lua使用网络UMG资源释放自定义加载…

秋招季的策略与行动指南:提前布局,高效备战,精准出击

6月即将进入尾声&#xff0c;一年一度的秋季招聘季正在热火进行中。对于即将毕业的学生和寻求职业发展的职场人士来说&#xff0c;秋招是一个不容错过的黄金时期。 秋招的序幕通常在6月至9月间拉开&#xff0c;名企们纷纷开启网申的大门。在此期间&#xff0c;求职备战是一个系…

SaaS客户裂变:如何构建合作伙伴的双向沟通桥梁

在SaaS行业中&#xff0c;客户裂变不仅是增长的关键&#xff0c;更要求与合作伙伴之间建立稳固的沟通桥梁。如何构建合作伙伴双向沟通的桥梁&#xff0c;真正做到理解对方的价值需求&#xff0c;实现长期合作共赢呢&#xff1f; 一、明确价值共享 首先&#xff0c;确保双方明…

git 初基本使用-----------笔记(结合idea)

Git命令 下载git 打开Git官网&#xff08;git-scm.com&#xff09;&#xff0c;根据自己电脑的操作系统选择相应的Git版本&#xff0c;点击“Download”。 基本的git命令使用 可以在项目文件下右击“Git Bash Here” &#xff0c;也可以命令终端下cd到指定目录执行初始化命令…

Windows环境本地部署开源在线演示文稿应用PPTist并实现远程访问

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

Shopee本土店选品有什么技巧?EasyBoss ERP为你整理了6个高效选品的方法!

电商圈有句话叫&#xff1a;七分靠选品&#xff0c;三分靠运营&#xff0c;选品对了&#xff0c;事半功倍&#xff0c;选品错了&#xff0c;功亏一篑&#xff01; 很多卖家都会为选品发愁&#xff0c;特别对于Shopee本土店卖家来说&#xff0c;要囤货到海外仓&#xff0c;如果…

六西格玛黑带培训:技能进阶与薪资增长的助推器

在快速变化的职场环境中&#xff0c;不断寻求自我提升与突破成为了每一位职场人士的重要课题。六西格玛黑带培训作为质量管理领域的精英认证&#xff0c;它不仅代表着个人技能的提升&#xff0c;更意味着职业发展道路上的新机遇和薪资水平的飞跃。 六西格玛黑带培训&#xff…

KubeSphere容器平台本地部署并实现无公网IP远程监控集群

文章目录 前言1. 部署KubeSphere2. 本地测试访问3. Linux 安装Cpolar4. 配置KubeSphere公网访问地址5. 公网远程访问KubeSphere6. 固定KubeSphere公网地址 前言 本文主要介绍如何在Linux CentOS搭建KubeSphere并结合Cpolar内网穿透工具&#xff0c;实现远程访问&#xff0c;根…

Spring框架FactoryBean接口的作用和应用

一、FactoryBean源码解读 FactoryBean<T> 是 Spring 框架 beans.factory包中的一个接口&#xff0c;从字面意思可以理解为工厂bean&#xff0c;它是干什么的&#xff0c;类名上的泛型又是指什么&#xff0c;有什么作用&#xff1f; 注释看不懂没关系&#xff0c;先看一…

敏源-数字高精度温度探头可替代传统PT100/1000

传统模拟温度探头成本高、功耗高、数据采集不方便&#xff0c;而由工采网代理的敏源0.1℃数字温度探头&#xff0c;可替代传统的PT100/1000或升级热敏电阻探头&#xff1b;可应用于冷链、仓储、医疗、工业等低温/室温/高温高精度温度采集场景。 PT100温度传感器需要复杂的采集电…

BMS绝缘检测方案

目前已有绝缘检测方案大都类似&#xff0c;我想分享一下&#xff0c;同时也想提出一个问题&#xff1a;在总压1500V的时候&#xff0c;检测100K以下的阻值有什么很好的方案吗&#xff1f;希望有懂行的人能给予帮助&#xff0c;万分感谢&#xff01;&#xff01;&#xff01; 我…

电路与数字逻辑期末复习重点整理!!

1.带无关项的卡诺图 2.置数法设计N进制电路 计数器&#xff1a;具有记忆输入脉冲个数功能的电路称为计数器。 按照各个触发器状态更新情况的不同可分为&#xff1a; 同步计数器&#xff1a;各触发器受同一时钟脉冲─输入计数脉冲控制&#xff0c;同步更新状态。异步计数器&a…

AI大模型安全挑战和安全要求解读

引言 随着人工智能技术的飞速发展&#xff0c;大模型技术以其卓越的性能和广泛的应用前景&#xff0c;正在重塑人工智能领域的新格局。然而&#xff0c;任何技术都有两面性&#xff0c;大模型在带来前所未有便利的同时&#xff0c;也引发了深刻的安全和伦理挑战。 大模型&…

PointMamba: A Simple State Space Model for Point Cloud Analysis

1. 论文基本信息 2. 创新点 介绍了第一个状态空间模型 PointMamba&#xff0c;将其应用与点云分析。PointMamba 表现出令人印象深刻的能力&#xff0c;包括结构简单性&#xff08;例如&#xff0c;vanilla Mamba&#xff09;、低计算成本和知识可迁移性&#xff08;例如&#…

通过验证邮箱进行注册信息确认

应用在进行注册时&#xff0c;避免恶意攻击和垃圾注册&#xff0c;可以通过验证注册者身份后才能够提交。一般可以使用验证手机短信或者验证邮箱&#xff0c;验证短信会有专门的第三方服务&#xff0c;可以进行付费购买。验证邮箱的正确与否&#xff0c;可以通过以下2种方式进行…

关于组织赴俄罗斯(莫斯科)第 28 届国际汽车零部件、汽车维修设备和商品展览会商务考察的通知

关于组织赴俄罗斯&#xff08;莫斯科&#xff09; 第 28 届国际汽车零部件、汽车维修设备和商品展览会商务考察的通知 展会名称&#xff1a;俄罗斯&#xff08;莫斯科&#xff09;第 28 届国际汽车零部件、汽车零部件、汽车维修设备和商品展览会 时间&#xff1a;2024 年 8 月…

【异常总结】SeaTunnel集群脑裂配置优化方法

集群配置 项目描述数量3台规格阿里云ECS 16C64GSlot模式静态50个ST内存配置-Xms32g -Xmx32g -XX:MaxMetaspaceSize8g 异常问题 4月份以来&#xff0c;出现了3次集群脑裂现象&#xff0c;均为某节点脑裂/自动关闭。 核心日志如下&#xff1a; Master节点 出现Hazelcast监控…

学会python——在excel中写入数据(python实例十三)

目录 1.认识Python 2.环境与工具 2.1 python环境 2.2 Visual Studio Code编译 3 .想Excel中写入数据 3.1 代码构思 3.2 代码实例 3.3 运行结果 4.总结 1.认识Python Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。 Python 的设计具有很强的…