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

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

文章目录

    • 概要
  • 一、本课题研究的主要内容
  • 二、超声波测距仪的整体方案
    • 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.rhkb.cn/news/181447.html

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

相关文章

大数据之陌陌聊天数据分析案例

目录 目标需求 数据内容 基于Hive数仓实现需求开发 1.建库建表、加载数据 2.ETL数据清洗 3需求指标统计 目标需求 基于Hadoop和hive实现聊天数据统计分析,构建聊天数据分析报表 1.统计今日总消息量 2.统计今日每小时消息量,发送和接收用户数 3.…

用户态内存映射

内存映射不仅仅是物理内存和虚拟内存之间的映射,还包括将文件中的内容映射到虚拟内存空间。这个时候,访问内存空间就能够访问到文件里面的数据。而仅有物理内存和虚拟内存的映射,是一种特殊情况。 对于堆的申请来讲,mmap 是映射内…

Linux Framebuffer驱动框架、接口实现和使用

Linux 驱动-Frame Buffer代码分析 Framebufferfbmem.c部分代码分析初始化 Framebuffer 对于驱动开发人员来说,其实只需要针对具体的硬件平台SOC和具体的LCD(通过焊接连接到该SOC引脚上的LCD)来进行第一部分的寄存器编程(红色部分&…

Git同时配置Gitee和GitHub

Git同时配置Gitee和GitHub 一、删除原先ssh密钥二、生成密钥 这里的同时配置是针对于之前配置过单个gitee或者github而言的,如果需要看git从安装开始的配置,则可以看这一篇文章 git安装配置教程 一、删除原先ssh密钥 在C盘下用户/用户名/.ssh文件下找到…

Python基础入门例程46-NP46 菜品的价格(条件语句)

最近的博文: Python基础入门例程45-NP45 禁止重复注册(条件语句)-CSDN博客 Python基础入门例程44-NP44 判断列表是否为空(条件语句)-CSDN博客 Python基础入门例程43-NP43 判断布尔值(条件语句&#xff0…

045_第三代软件开发-U盘监测

第三代软件开发-U盘监测 文章目录 第三代软件开发-U盘监测项目介绍U盘监测原理解释源代码 关键字: Qt、 Qml、 USB、 Disk、 文件 项目介绍 欢迎来到我们的 QML & C 项目!这个项目结合了 QML(Qt Meta-Object Language)和…

玩转AIGC:如何选择最佳的Prompt提示词?

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…

Redis02-持久化策略

目录 RDB(Redis DataBase Backup file) RDB执行原理 AOF(Append-Only File) RDB和AOF对比 Redis支持多种持久化方式,以确保数据在内存中持久存储,以便在Redis服务器重启时数据不会丢失。Redis中持久化的…

Linux第一个小程序进度条

缓冲区 ​ 在写进度条程序之前我们需要介绍一下缓冲区,缓冲区有两种,输入和输出缓冲区,这里主要介绍输出缓冲区。在我们用C语言写代码时,输出一些信息,实际上是先输出到输出缓冲区里,然后才输出到我们的显…

Python笔记——linux/ubuntu下安装mamba,安装bob.learn库

Python笔记——linux/ubuntu下安装mamba,安装bob.learn库 一、安装/卸载anaconda二、安装mamba1. 命令行安装(大坑,不推荐)2. 命令行下载guihub上的安装包并安装(推荐)3. 网站下载安装包并安装(…

二维码智慧门牌管理系统升级:一键报警让你的生活更安全!

文章目录 前言一、升级解决方案的特点二、实施步骤 前言 随着科技的不断进步,我们的生活正在逐渐变得更加智能化。可以想象一下,如果你家的门牌也能拥有这种智能升级,将会带来怎样的改变?今天,让我们一起探讨这令人兴…

数据处理中的中心化

数据处理中的中心化,就是将原数据减去平均值,得到新的数据,新的数据的平均值为0。 假设原数据是x(x可以是多维的),其平均值是,新的数据,那么新数据的平均值是为0的。下面证明下&…

【云原生基础】了解云原生,什么是云原生?

📑前言 本文主要讲了云原生的基本概念和原则的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是青衿🥇 ☁️博客首页:CSDN主页放风讲故事 🌄每日一句&#x…

BO(Business Object)是一种用于表示业务对象的设计模式

1、Service层 BO 1.1、FruitService接口 package com.csdn.fruit.service; import com.csdn.fruit.dto.PageInfo; import com.csdn.fruit.dto.PageQueryParam; import com.csdn.fruit.pojo.Fruit; public interface FruitService {PageInfo<Fruit> getFruitPageInfo(Page…

使用 C# 在Word中插入图表

Word中的图表功能将数据可视化地呈现在文档中。这为展示数据和进行数据分析提供了一种方便且易于使用的工具&#xff0c;使作者能够以直观的方式传达信息。要通过C#代码来实现在Word中绘制图表&#xff0c;可以借助 Spire.Doc for .NET 控件&#xff0c;具体操作参考下文。 目录…

【PC电脑windows-学习样例tusb_serial_device-ESP32的USB模拟串口程序+VScode建立工程+usb组件添加+-基础样例学习】

【PC电脑windows-学习样例tusb_serial_device-ESP32的USB模拟串口程序-基础样例学习】 1、概述2、实验环境3-1、 物品说明3-2、所遇问题&#xff1a;ESP32 cannot open source file "tinyusb.h"或者“tinyusb.h:No such file or directory ....”3-3、解决问题&#…

Flink SQL 窗口聚合详解

1.滚动窗⼝&#xff08;TUMBLE&#xff09; **滚动窗⼝定义&#xff1a;**滚动窗⼝将每个元素指定给指定窗⼝⼤⼩的窗⼝&#xff0c;滚动窗⼝具有固定⼤⼩&#xff0c;且不重叠。 例如&#xff0c;指定⼀个⼤⼩为 5 分钟的滚动窗⼝&#xff0c;Flink 将每隔 5 分钟开启⼀个新…

逆向学习记录(3)工具介绍jadx、gda和jeb

1、jadx 下载地址如下&#xff0c;目前最新版本为v1.4.7&#xff0c;改成想要下载的版本号就能下载对应的版本。 https://github.com/skylot/jadx/releases/tag/v1.4.7 下载后解压&#xff0c;进入对应路径的bin文件夹内&#xff0c;运行jadx-gui.bat。 2、gda 下载地址和gi…

计算机报错找不到msvcp110.dll无法继续执行代码怎么解决?

msvcp110.dll文件丢失是一个相当常见的问题&#xff0c;尤其是在运行某些程序或游戏时。这个问题可能会导致程序无法正常运行&#xff0c;甚至可能导致系统崩溃。那么&#xff0c;面对这样的问题&#xff0c;我们应该如何来解决呢&#xff1f;下面&#xff0c;我将分享我解决问…

OpenGL ES入门教程(二)之绘制一个平面桌子

OpenGL ES入门教程&#xff08;二&#xff09;之绘制一个平面桌子 前言0. OpenGL绘制图形的整体框架概述1. 定义顶点2. 定义着色器3. 加载着色器4. 编译着色器5. 将着色器链接为OpenGL程序对象6. 将着色器需要的数据与拷贝到本地的数组相关联7. 在屏幕上绘制图形8. 让桌子有边框…