基于单片机的超声波测距仪

news2024/11/23 17:21:58

收藏和点赞,您的关注是我创作的动力

文章目录

    • 概要
  • 一、本课题研究的主要内容
  • 二、超声波测距仪的整体方案
    • 2.2 超声波测距仪设计原理
  • 三、超声波测距仪系统硬件电路的设计
    • 3.1 超声波测距仪的基本结构
  • 四、 超声波测距仪系统的软件设计
    • 4.1 主程序软件设计
    • 仿真
  • 五、结论
  • 六、 文章目录

概要

  超声波测距仪以声波的形式传播,在传播的过程中受到的影响因素较少,其具有结构简单,成本低的特点并且方便的检测和计算。已被广泛应用于许多方面,例如机器人避开障碍物、车辆倒车和测量距离。
  本无线控超声波测距仪的控制核心是采取低成本的单片机,超声波测距仪系统采用软硬件相互配合,硬件部配备单片机最小系统,通过超声波模块发射与接受声波并产生信号传递给单片机主控,通过液晶显示当前的测量距离。放置按键进行人机交互,对超声波测距仪进行参数设置,具备蜂鸣器报警功能。软件部分由主程序、子程序和中断程序、显示报警子程序等几部分组成。通过软硬件相互配合实现测距仪的设计
  利用已知环境温度,与相对应声波在空气中传播的速度。通过发射与接收声波之间的时间差,采用单片机作为其主控将收集的数据进行算法处理,就可以设计出准确测量两点间距离的超声波检测系统。与其他非接触式测量传感器相比,超声波测距仪的处理速度和响应速度很快。并通过液晶屏对被测目标进行实时显示。因此本文介绍了超声波测距仪系统并对其结构和原理进行了分析。
关键词:单片机;非接触式;无线测距;液晶显示;超声波;

一、本课题研究的主要内容

此次设计的是超声波测距仪,它的主要功能是针对某段距离进行实时测量,其测量范围在5cm—300cm之间,将当前测量的距离通过液晶显示屏幕实时显示出来。
  测距时,测量的物体应该不小于0.5平方米,否则会影响实际的测量参数。本课题所用的超声波模块有一个发射端和一个接收端,通过超声波模块发射与接受声波将产生的电信号传递给单片机主控,通过液晶显示当前单片机计算出测量距离。放置按键进行人机交互,对超声波测距仪进行参数设置,并具备蜂鸣器报警功能。可以满足日常的需求。

二、超声波测距仪的整体方案

2.1方案比较
2.1.1 激光测距
  脉冲法与相位法都是激光测距的传统方法。脉冲法测距基本过程:测距仪将发射激光通过被测物体反射后,测距仪接收到反射光线,与此同时计算发射到接受的一个时间,通过计算光速与往返的时间乘积的一半,就是被测物体的距离。相位法测距的原理:相位激光测距仪利用射频波段的频率来调制激光束的振幅,测量对比调制光来回传播引起的相位延迟。然后依照调制光的波长转换由相位延迟表示的间隔。也就是说,间接的手段被用来确定光穿过一条线需要多长时间[2] 。
2.1.2 超声波测距
  超声波测距仪的原理是根据发射超声波和接收超声波的时间差,利用已知环境温度对应的超声波的传输速度,计算出发射电到障碍物的实际距离。这种方案与激光测距的相位法原理相似。由于超声波的指向性强,传播的过程中声波的能量消耗缓慢,在介质中的传播距离较远,因而超声波经常用于距离的测量。其特点是测量方便。综上所述两种方案,很容易看出,采用方案二,电路比较简单,软件设计也比较简单,故采用了方案二。

2.2 超声波测距仪设计原理

超声波检测距离的方式有多种,最常见的一种就是回波探测法。回波检测法就是根据已知介质的温度和声波发射速度,通过超声波模块从物体中发射出一段声波,接触到另一段物体后声波再从反弹了回来,再通过接受和吸收一段反弹后的声波,测量这段从物体中发射出一段声波直至接受和吸收一段反弹后的声波之间的时间,就可以计算得出这段声波之间的距离值。其工作原理框图如下面的图2-1所示。
  超声波测距的原理:利用超声波向空气中发射出去,碰到被测物发生反射被接收,我们计算从发出到返回的时间t,一般来说测量距离S是远大于发射头与接收头的距离,近似可以认为发射与接收是在一条直线上,这样发射到接收经过的距离为2S,根据公式2-1即可算得障碍物距离发射点的距离S(在15℃的条件下声波的速度c约为340m6/s)。
在这里插入图片描述

在这里插入图片描述

图2-1 超声波反射原理

三、超声波测距仪系统硬件电路的设计

3.1 超声波测距仪的基本结构

超声波测距系统基本的结构组成有以下部分,STC89C52单片机,HC-SR04超声波模块,A/D转换模块,LCD显示模块,温度检测模块,蜂鸣器电路,电源按键以及按键电路,电源电路等部分组成。如图3-1所示,当单片机处理出现故障的时候可以利用复位电路按键将单片机的恢复为默认出厂设置,提高了系统的稳定性与可靠性。另外,时钟电路可以使得单片机以特殊的周期执行处理任务并且能保持单片机稳定的工作进程。在LCD显示模块可以设定预警距离的最大值和最小值,从而形成一个测量区间。如果测量值在区间内的时候系统一切正常,当测量值超过了设定的区间后控制蜂鸣器发出警报。

四、 超声波测距仪系统的软件设计

4.1 主程序软件设计

主程序的主要功能是负责LCD1602的显示、读取并处理超声波模块HC-RS04的测量距离值,按键设置有效距离,当测量的值超过预警值时,蜂鸣器发声报警。主程序流程图如图4-1所示。
在这里插入图片描述

仿真

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

五、结论

本次设计的超声波测距仪系统中,通过实际的测量数据可知,此次设计的测量范围是在5cm—300cm,对这个范围内的误差在2%,并且其灵敏度、可靠性、稳定性比较好
  此次设计采用的是回波探测法,由于受制于元器件的功率较小的原因,开始的设想是制作个5m内的测距仪,但是由于超声波模块功率低的原因导致无法实现原来的设想。故成品的测距范围只是5cm—300cm。此次所设计的超声波测距有一定的缺陷,声波的传输也受制于环境的湿度的影响,若在潮湿的环境中,会对声波的传输有着较大的干扰,而此次设计的超声波测距仪,缺少相应的湿度传感器从而会使在湿度大的环境中测量的距离误差变大。其次,此次设计的一大缺陷是,在测量的物体必须处于一个较空旷的环境,如果处于一个狭隘的环境进行测量,这样超声波在发射后会马上反弹回来,从而测不了距离,因此必须处于一个较空旷的环境测量,这个缺陷受制于超声波模块的设计,很难消除,所以这种测量较为麻烦。因此,在以后的设计中应该多关注可能使用到环境中尽可能的在更多的环境中使用。

六、 文章目录

目 录
摘 要I
AbstractII
目 录III
1、绪论1
1.1 选题的依据及意义1
1.2 国内研究现状1
1.3 国外研究现状1
1.4 本课题研究的主要内容2
1.5本章小结2
2、超声波测距仪的整体方案3
2.1 方案比较3
2.1.1 激光测距3
2.1.2 超声波测距3
2.2 超声波测距仪设计原理3
2.3 电子元器件的选择4
2.3.1 单片机的选择4
2.3.2 超声波测距模块选择4
2.4 本章小结4
3、超声波测距仪系统硬件电路的设计5
3.1 超声波测距仪的基本结构5
3.2 单片机最小系统概述及其作用5
3.3 电源供电模块6
3.4 超声波模块7
3.5 LCD 显示电路模块设8
3.6 按键电路9
3.7 蜂鸣器电路设计9
3.8 温度检测电路10
3.9 本章小结10
4、超声波测距仪系统的软件设计11
4.1 主程序软件设计11
4.2 超声波模块软件设计11
4.3 显示数据子程序12
4.4 报警子程序12
4.5 按键子程序13
4.6 本章小结13
5、系统调试14
5.1 系统调试14
5.1.1 硬件调试14
5.1.2 软件调试14
5.2 测距仪测试及结果15
5.2.1 超声波测距仪实物图15
5.2.2 实物试验16
结 论18
参考文献19
附 录20
1、超声波测距仪电路原理图20
2、元件清单21

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

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

相关文章

从信号中去除 60 Hz 杂声

美国和其他几个国家/地区的交流电以 60 Hz 的频率振荡。这些振荡通常会破坏测量结果,必须将其减去。 在存在 60 Hz 电力线噪声的情况下,研究模拟仪器的输入的开环电压。电压采样频率为 1 kHz。 load openloop60hertz, openLoop openLoopVoltage;Fs 10…

一文详解:传统企业如何把进销存管理流程搬到线上?

进销存管理是企业管理的核心流程之一,它有助于提高效率、降低成本、增加盈利,同时确保客户满意度,这对于企业的长期成功和竞争力至关重要。但在信息化转型的浪潮下,很多企业的传统进销存流程却遇到不少问题。 如果你也在考虑把进…

JavaEE平台技术——Spring和Spring Boot

JavaEE平台技术——Spring和Spring Boot 1. 控制反转1.1. IoC是什么1.2. IoC能做什么1.3. IoC和DI 2. SpringBean对象定义3. Spring容器4. SpringBoot 在观看这个之前,大家请查阅前序内容。 😀JavaEE的渊源 😀😀JavaEE平台技术——…

【Unity基础】7.动画状态参数

【Unity基础】7.动画状态参数 大家好,我是Lampard~~ 欢迎来到Unity基础系列博客,所学知识来自B站阿发老师~感谢 (一)创建动画状态 (1) 创建动画状态 不好意思各位~最近工作比较忙,稍微耽误了这两周的博客。话…

【Mybatis小白从0到90%精讲】09:Mybatis动态SQL:if、where、set标签

文章目录 前言一、if 标签二、where 标签三、set 标签前言 动态SQL 是 Mybatis的亮点功能之一,如果你经历过 拼接SQL 的繁琐痛苦,那么你就能切身感受到动态SQL到底有多爽!真香哈~ 另外,Mybatis将动态SQL设计的如此自然,让人看看就能理解和接受,我想这也是Mybaits如此深…

智慧城市排水系统,管网水位监测仪怎么监测

地下排水管网应用于城市的多个环境之中,比如排放雨水,污水或者是地表水等,总之是在维护城市的安全运行,并且保护城市地下生命线处于正常状态。但是一旦排水系统面对各种极端天气,便有可能会突发安全事故,导…

仿写知乎日报第三周

新学到的 本周新学习了FMDB数据库,并对Masonry的使用有了更近一步的了解,还了解了cell的自适应高度 FMDB数据库的介绍和使用:iOS——FMDB的介绍与使用 cell自适应高度和Mansonry自动布局 本周写了评论区,在写评论区的时候&…

WebSocket Day02 : 握手连接

前言 握手连接是WebSocket建立通信的第一步,通过客户端和服务器之间的一系列握手操作,确保了双方都支持WebSocket协议,并达成一致的通信参数。握手连接的过程包括客户端发起握手请求、服务器响应握手请求以及双方完成握手连接。完成握手连接后…

非线性【SVM】的创建和使用

先来绘制散点图: from sklearn.datasets import make_circles X,y make_circles(100, factor0.1, noise.1) # 100个样本,factor:内圈和外圈的距离之比,noise:噪声 X.shape y.shape plt.scatter(X[:,0],X[:,1],cy,s50,cmap"rainbow&qu…

Python基础入门例程44-NP44 判断列表是否为空(条件语句)

最近的博文: Python基础入门例程43-NP43 判断布尔值(条件语句)-CSDN博客 Python基础入门例程42-NP42 公式计算器(运算符)-CSDN博客 Python基础入门例程41-NP41 二进制位运算(运算符)-CSDN博客…

【斗罗二】木槿被打脸,二级魂导师反击木槿,霍雨浩遭遇挖墙角

Hello,小伙伴们,我是小郑继续为大家深度解析国漫资讯。 深度爆料,《斗罗大陆2绝世唐门》21集最新内容,新生考核结束后,戴华斌的内心对霍雨浩的怨念并没有随着时间的流逝而消散,反而像燎原之火一样越演越烈。他始终耿耿…

UE5——源码阅读——1

UE启动 hInInstance :项目实例 hPrevInstance:项目上一个实例 pCmdLine:参数 nCmdShow:窗口显示 TRACE_BOOKMARK(TEXT(“WinMain.Enter”));:UE用来追踪记录的函数,用于标记应用程序在执行过程中一些特定的…

初识rust

调试下rust 的执行流程 参考: 认识 Cargo - Rust语言圣经(Rust Course) 新建一个hello world 程序: fn main() {println!("Hello, world!"); }用IDA 打开exe,并加载符号: 根据字符串找到主程序入口: 双击…

设计模式_策略模式

策略模式 介绍 设计模式定义案例问题堆积在哪里解决办法策略模式对算法进现封装,抽象 如:IF elseIF 一大堆 可以配合工厂模式使用炼丹炉里做饭 要求 菜谱 和 食材可配置问题在可配置 菜谱封装菜谱 然后抽象菜谱,为了统一使用方法 类图 Cai…

初阶JavaEE(14)表白墙程序

接上次博客:初阶JavaEE(13)(安装、配置:Smart Tomcat;访问出错怎么办?Servlet初识、调试、运行;HttpServlet:HttpServlet;HttpServletResponse)-C…

Navicat15更改字体后中文注释显示问题解决办法

Navicat中文注释显示问题解决办法 解决办法: 1 2 3

网络验证码--你到底是爱它还是恨它?

互联网安全防火墙(1)--网络验证码的科普 1 戏言部分 为了在网络上吸引大家读这个文章,在想标题的时候,也是够了。本来是严肃的科普学术帖,但是却一股强烈的“不转不是中国人,让男孩沉默女孩流泪” 这种…

【Mybatis小白从0到90%精讲】05:Mybatis新增(insert),要掌握的点位,都在这里

文章目录 前言一、编写Mapper二、编写 Mybatis 工具类三、看效果总结前言 身为半自动ORM的Mybaits, 其在查询方面支持任意SQL, 表现出色,那么它在新增insert 方面表现又如何呢? 今天我们来实战 Mybatis新增(insert) 操作,看看它的表现是不是依然出色? 在讨论新增数据时,…

分享88个节日庆典PPT,总有一款适合您

分享88个节日庆典PPT,总有一款适合您 PPT下载链接:百度网盘 请输入提取码 提取码:8888 Python采集代码下载链接:采集代码.zip - 蓝奏云 学习知识费力气,收集整理更不易。知识付费甚欢喜,为咱码农谋福利…

1.Java Stream 流操作

概念 Stream把将要处理的集合中的元素进行流式化处理 ,在流式化处理过程中,借助Stream API对流中的元素进行操作,比如:筛选、排序、聚合等。 Stream 的操作符大体上分为两种:中间操作符和终止操作符 中间操作符 对于…