示例七、超声波传感器测距

news2024/11/18 4:22:05

通过以下几个示例来具体展开学习,了解超声波传感器原理及特性,学习超声波传感器的应用:

示例七、超声波传感器测距

一、基本原理:
1、超声波测距仪的系统结构
利用超声测距原理测量物体之间的距离,当此距离小于某一设定值时,及时提醒系统以AT89C51单片机为控制核心,用HC-SRO4超声波测距模块测量距离,经温度补偿后,用液晶显示距离,超过指定距离,用蜂鸣器报警提示,如图8-22所示。系统分为五个模块:单片机、超声模块、温度传感器、液晶显示、声音播报。
在这里插入图片描述

2、超声波测距仪的硬件设计
1)超声波测距模块
超声波测距仪系统选用HC-SRO4超声测距模块,如图8-23所示。测量范围为2-450cm,精度可达0.3cm。当单片机给TRIG引脚提供至少10s的高电平时,模块会自动发送八个40kHz的方波,并自动检测是否有信号返回:当有信号返回时,通过ECHO端输出一个高电平,该高电平持续的时间为超声波发射到返回的时间测试距离=(ECHO高电平时间×声速(340m/s)
在这里插入图片描述

1)结构及引脚
引脚说明如下。
Uc:供5V电源。
GND:地线。
TRIG:触发控制信号输入。
ECHO:回响信号输出。
+5V
在这里插入图片描述

HC-SR4模块的工作时序如图8-24所示。只需要提供持续10s以上的脉冲触发信号,此模块就会自动发出八个40kIz周期的电平并检测回波。当检测到有回波信号,就设置出回呼信号为高电平。回响信号的脉冲宽度与所测的距离成正比。根据从发射信号到收到回响信号的时间间隔可以计算得到距离。建议测量周期为60ms以上,以防止发射信号的影响。
在这里插入图片描述
图8-24 HC-SRO4模块的时序
此模块不宜带电连接,若要带电连接,则先让模块的GND端接地,否则会影响模块的正常工作。测距时,被测物体的面积不能小于0.5m2,且要求平面尽量平整,否则将影响测量的结果。
2)超声波测距仪系统电路原理
超声波测距仪系统电路原理如图8-25所示,HC-SRO4超声波测距模块的测距信号ECHO为高电平时,启动单片机定时器定时, ECHO为低电平时,停止定时。根据式(8-5)即可计算出距离,发给液晶显示模块显示,单片机将计算出的距离和警戒距离作比较,当物体距离小于警戒距离时,驱动蜂鸣器报警。

在这里插入图片描述

二、超声波测距仪的软件设计
1.主程序
系统启动后,首先进行初始化,然后进行距离测量。最后将测量结果送到LCD1602上显示。如果测量距离超出规定范围,则报警提示。单片机定时器T0用于测距定时,距离计算公式为:
s=(334.1m/s)time(ms)/1,000,000/2 (8-7)
s=1.7
time/100 (单位:cm)
超声波测距仪的主程序流程如图8-26所示。

在这里插入图片描述

2.HC-SRO4测距仪的流程
单片机的P3.3口接HC-SRO4的Tig端口,P3.2口接HC-SRO4的Echo端口,HC-SRO4模块收到测试回波信号后,Echo口输出一个高电平,并开始测试距离,单片机检测到Echo口高电平后即启动计数器开始计数,直到单片机检测到Echo口变成低电平时,停止计数,计数器的计数值乘以单片机计数周期就是超声波从发射到接收的往返时间,即距离s=V*t/2。
3.超声波测距仪的源程序:

#include <reg52.H>//器件配置文件
#include <intrins.h>
//传感器接口
sbit RX  = P3^2;
sbit TX  = P3^3;
//按键声明
sbit S1  = P1^4;
sbit S2  = P1^5;
sbit S3  = P1^6;
//蜂鸣器
sbit Feng= P2^0;

sbit W1=P1^0;
sbit W2=P1^1;
sbit W3=P1^2;
sbit W4=P1^3;
//变量声明
unsigned int  time=0;
unsigned int  timer=0;
unsigned char posit=0;
unsigned long S=0;
unsigned long BJS=200;//报警距离200CM
//模式 0正常模式 1调整
char Mode=0;
bit  flag=0;
bit flag_KEY=0;

//距离的计算
void Conut(void)
{
	time=TH0*256+TL0;	  //读出T0的计时数值
	TH0=0;
	TL0=0;				  //清空计时器
	S=(time*1.7)/100;     //算出来是CM
	//声音的速度是340m/s,时间的单位是us,计算到秒需要将时间数据/1000000,
	//长度=速度*时间,340*time/1000000,长度数据单位是m转换成cm需要乘以100得到340*time/10000,
	//小数点都向左移两位得到3.4*time/100,因为超声波是往返了,所以再除以2,得到距离数据(time*1.7)/100
	if(Mode==0)			  //非设置状态时
	{
		if((S>=700)||flag==1) //超出测量范围显示“-”
		{	
			Feng=0; 		   //蜂鸣器报警
			flag=0;
			disbuff[1]=10;	   //“-”
			disbuff[2]=10;	   //“-”
			disbuff[3]=10;	   //“-”
		}
		else
		{
			//距离小于报警距
			if(S<=BJS)
			{
				Feng=0;	//报警
			}
			else  //大于
			{
				Feng=1;		//关闭报警	
			}
			disbuff[1]=S%1000/100;		 //将距离数据拆成单个位赋值
			disbuff[2]=S%1000%100/10;
			disbuff[3]=S%1000%10 %10;
		}
	}
	else
	{
			Feng=1;
			disbuff_BJ[1]=BJS%1000/100;
			disbuff_BJ[2]=BJS%1000%100/10;
			disbuff_BJ[3]=BJS%1000%10 %10;
	}
}

三、数据记录:
1、减小传感器距离,查看系统的报警阈值;把阈值调整到150,在进行验证。
当距离小于200cm时警报器发生警报,大于200cm时不会警报。
同理,当阈值为150cm时小于150cm时警报器发生警报,大于150cm时不会警报。

2、从示波器中读出激活超声波传感器的脉冲周期,并分析传感器输入输出信号的时序关系(显示距离为1.50时,输出信号高电平的时长有何关系)。
11.820.17=2.0094
8.82
0.17=1.499
在这里插入图片描述

11.820.17=2.0094
8.82
0.17=1.499

四、思考:
proteus系统元件库中暂时没有HC-SRO4超声测距模块的数据,为了能在系统仿真时使用,实际由8051微处理器机器接口模拟了超声测距模块功能和接口,trig、echo,VCC、GND,以及虚拟的+、-按钮,试分析他们的逻辑关系。
单片机的P3.3口接HC-SRO4的Tig端口,P3.2口接HC-SRO4的Echo端口,HC-SRO4模块收到测试回波信号后,Echo口输出一个高电平,并开始测试距离,单片机检测到Echo口高电平后即启动计数器开始计数,直到单片机检测到Echo口变成低电平时,停止计数,计数器的计数值乘以单片机计数周期就是超声波从发射到接收的往返时间,即距离s=V*t/2。

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

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

相关文章

如何查看打包后的jar包启动方法main方法

背景 有时候我们在引用一个jar包的时候,想查看一个jar包的结构,这时候查看启动类就比较重要,因为一些关键配置是在启动类上的,这里教大家如何查看这个启动类(springboot项目) 步骤 首先打开jar包预览结构,可以使用解压缩工具直接双击打开或者预览结构 打开路径 META-INF/MA…

RabbitMQ(安装配置以及与SpringBoot整合)

文章目录 1.基本介绍2.Linux下安装配置RabbitMQ1.安装erlang环境1.将文件上传到/opt目录下2.进入/opt目录下&#xff0c;然后安装 2.安装RabbitMQ1.进入/opt目录&#xff0c;安装所需依赖2.安装MQ 3.基本配置1.启动MQ2.查看MQ状态3.安装web管理插件4.安装web管理插件超时的解决…

MotionDiffuse: Text-Driven Human Motion Generation withDiffusion Model # 论文阅读

URL https://arxiv.org/pdf/2208.15001 主页&#xff1a;https://mingyuan-zhang.github.io/projects/MotionDiffuse.html TD;DR 22 年 8 月商汤的文章&#xff0c;引用量 200。基于 SD&#xff0c;任务是输入文本的动作描述&#xff0c;生成对应的动作序列。 已有的 moti…

AutoTable, Hibernate自动建立表替代方案

痛点 之前一直使用JPA为主要ORM技术栈&#xff0c;主要是因为Mybatis没有实体逆向建表功能。虽然Mybatis有从数据库建立实体&#xff0c;但是实际应用却没那么美好&#xff1a;当实体变更时&#xff0c;往往不会单独再建立一个数据库重新生成表&#xff0c;然后把表再逆向为实…

day07beef-xss之根据beef-xss获取cookies

1.安装 apt-get update apt-get install beef-xss 若报错运行不了尝试 apt remove ruby apt remove beef-xss apt-get install ruby apt-get install ruby-dev libpcap-dev gem install eventmachine apt-get install beef-xss 2.运行 beef-xss 运行成功会自动弹出浏览框。 攻…

CRF++ 中文NER

CLUENER数据准备 data [] with open("data/train.json", r) as f:for line in f.readlines():data.append(eval(line)) data特征提取 import jieba import jieba.posseg as psegdef process(text, labelsNone):words [i for i in text]words_flags pseg.cut(tex…

Linux进程——进程地址空间

前言&#xff1a;在讲完环境变量后&#xff0c;相信大家对Linux有更进一步的认识&#xff0c;而Linux进程概念到这也快接近尾声了&#xff0c;现在我们了解Linux进程中的地址空间&#xff01; 本篇主要内容&#xff1a; 了解程序地址空间 理解进程地址空间 探究页表和虚拟地址空…

ChatGPT 即将登陆 iPhone;斯坦福推出 AI 辅助全息成像技术丨 RTE 开发者日报 Vol.202

开发者朋友们大家好&#xff1a; 这里是 「RTE 开发者日报」 &#xff0c;每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE&#xff08;Real Time Engagement&#xff09; 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有思考的 文…

【优选算法】——Leetcode——LCR 179. 查找总价格为目标值的两个商品

1.题目 2. 解法⼀&#xff08;暴⼒解法&#xff0c;会超时&#xff09;&#xff1a; 1.算法思路&#xff1a; 2.图解 3. 代码实现 3. 解法⼆&#xff08;双指针-对撞指针&#xff09;&#xff1a; 1.算法思路&#xff1a; 2.图解 3.代码实现 1.C语言 2…

4G,5G执法记录仪人脸识别、人脸比对使用说明

4G/5G执法记录仪或4G/5G智能安全帽&#xff0c;做前端人脸识别、人脸比对&#xff0c;采用了上市公司的成熟的人脸识别算法&#xff0c;需要支付LICENSE给算法公司&#xff0c;理论上前端设备支持30K的人脸库&#xff08;受设备运行内存限制&#xff09;。 4G/5G执法记录仪侧要…

1.前端环境搭建

1.安装nodejs 因为我们开发Vue项目需要使用npm命令来创建和启动&#xff0c;安装node.js是为了获得这个命令&#xff0c;目前和使用node.js无关 下载地址&#xff1a;http://nodejs.cn/download/ 下载完之后安装&#xff0c;通过cmd查看是否安装成功 node --version2.创建项目…

使用./build.sh编译ORB_SLAM源码时出现报错:/usr/bin/ld:找不到 -lboost_serialization的解决办法

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、/usr/bin/ld:找不到 -lboost_serialization1.问题描述2.解决(1). 下载源码(2) . 编译安装 一、/usr/bin/ld:找不到 -lboost_serialization 1.问题描述 在安装…

KAN核心团队震撼力作!MIT华人用AI首次发现物理学全新方程 | 最新快讯

新智元报道 编辑&#xff1a;Aeneas 好困 刚刚提出了 KAN 的 MIT 物理学家 Max Tegmark 和北大校友刘子鸣&#xff0c;又有一项重磅研究问世了&#xff01;团队发现&#xff0c;它们用 AI 发现了物理学中的新方程&#xff0c;从此&#xff0c;AI 很可能被引入物理学研究领域&am…

IPv6资产测绘哪家强?揭秘新一代网络空间资产测绘平台的独门秘籍

网络空间资产测绘&#xff0c;即通过一系列技术手段&#xff0c;对网络中的各类资产进行全面的发现、分类和定位&#xff0c;为各类用户提供精准的数据支撑和决策依据。网络空间资产测绘作为一门新兴的交叉学科&#xff0c;融合了计算机网络技术、数据挖掘、人工智能、信息安全…

Docker学习笔记(一)安装Docker、镜像操作、容器操作、数据卷操作

文章目录 1 Docker介绍1.1 Docker的优势1.1.1 应用部署的环境问题1.1.2 Docker解决依赖兼容问题1.1.3 Docker解决操作系统环境差异1.1.4 小结 1.2 Docker和虚拟机的区别1.3 Docker架构1.3.1 镜像和容器1.3.2 DockerHub1.3.3 Docker架构 1.4 安装Docker1.4.1 卸载旧版本Docker&a…

【微信开发】微信支付前期准备工作(申请及配置)

1、申请并配置公众号或微信小程序 1.1 账户申请 通过微信公众平台&#xff0c;根据指引申请微信小程序或公众号&#xff0c;申请时需要微信认证&#xff0c;申请流程不在赘述 1.2 信息配置 申请通过后&#xff0c;需进入小程序和公众号内进行信息配置 1.2.1 小程序信息配置…

小程序地理位置接口申请教程来啦4步学会

小程序地理位置接口有什么功能&#xff1f; 如果我们提审后驳回理由写了“当前提审小程序代码包中地理位置相关接口( chooseAddress、getLocation )暂未开通&#xff0c;建议完成接口开通后或移除接口相关内容后再进行后续版本提审”&#xff0c;如果你也碰到类似问题&#xff…

任务:单域,域树的搭建

一、单域&#xff1a; 搭建所需的系统&#xff1a;win2016 sever&#xff0c;win10 1.在创建域前&#xff0c;先设置静态ip 先查看win2016 sever的IP&#xff0c; ip&#xff1a;192.168.154.133 网关&#xff1a;192.168.154.2 DNS服务器&#xff1a;192.168.154.2 设置…

FPGA学习笔记(1)——Vivado和HLS

1 Vivado设计 1.1 FPGA基本知识 Xilinx Atrix-7使用6输入LUT结构&#xff08;0-63&#xff09;CLB&#xff1a;可配置逻辑块Slice&#xff1a;每个CLB包含2个Slice(包含查找表LUT和8位寄存器REG)布线池&#xff1a;围绕在CLB周围&#xff0c;衔接FPGA的资源调度I/O块&#xf…

conan2 基础入门(02)-安装

conan2 基础入门(02)-安装 文章目录 conan2 基础入门(02)-安装⭐前言⭐安装python安装安装包安装自行操作 ⭐验证配置环境变量命令行验证conan配置文件 END ⭐前言 Conan 2.0: C and C Open Source Package Manager 官方提供三种安装conan的方式。分别为&#xff1a; Recommen…