摘要:利用超声波进行测距有许多优点比如不受光强度、色彩和电磁场等外界因素的影响,而且超声波传感器的价位较低、结构也较为简单,超声波以声速传播,方便收发与计算。在汽车倒车雷达、移动机器人的避障、特别是测量距离等许多方面都已有了非常普遍的应用。

本次设计的超声波测距仪是在 STC89C51单片机的基础上设计的,在分析和了解了超声波的一些优点和特性后,又查看了利用超声波测距的基本原理。最后决定使用51单片机系统和超声波传感器共同组成。设计的超声波测距仪的硬件部分主要包括电源及复位模块、单片机与超声波模块组成的超声波发射模块、超声波接收模块、LED 数码显示模块和扩展报警模块。软件部分主要包括单片机主程序、根据超声波发射与接收计算距离程序、LED 距离显示程序、按键控制程序和蜂鸣器报警程序,这样安排使得系统具有模块化的特点。系统容易进行控制,具有可靠地的性能,具有较高的测量精度,最重要的是能对距离进行实时测量。

关键词:51单片机HC-SR04、超声波、实时测量

一、引言

1.1 背景

超声波测距法是通过超声波测量从已知位置到被测物体表面的距离的利用超声波的方法。超声波也是一种机械波,是一种频率在20kH以上的声波。超声波测距是人们根据蝙蝠通过超声波反射进行捕食的方法发现的,也是仿生学中非常出名的例子,对生产领域产生了很大的影响。跟着电子测量技术的不断飞速发展,已经可以利用超声波实现精准测量了。测量技术在经济的不断发展下得到了越来越广的应用,因此超声波凭借着性能稳定、成本低廉、精度高等优点得到了重视。机器人技术在出现后发展迅猛,机器人的用途也不在局限在工业生产,而是进入了人们的日常生活。普遍的应用对于增加群众对机器人技术的认识变得非常重要。机器人能够通过特有的感知系统感知并确定前面障碍物的位置和周围的环境以完成躲避障碍物、自动寻路、测距等功能。超声波测距具有其他的测距技术没有的特点,比如测量精度高,成本低廉,对环境的要求低,使用简便等。将红外、灰度等传感器和超声波结合在一起将可以共同作用使机器人实现自动寻路和绕开障碍等功能。超声波由千传播方向较稳定、并且在介质里传播时能量削减缓慢,能够发送很远的距离,所以在测量距离的时候经常用到。超声波最普遍的应用是在汽车倒车雷达、物位测量仪、测距仪、研发移动机器人以及一些特殊工业现场等场合。以后超声波传感器很可能将会智能化、自动化,实现更加方便高效的测距仪器。

1.2主要意义

超声波测距技术是一种非常有前景的的技术,近距离的超声测距不会被光线影响,并且结构比较简单,成本经济实惠。超声波测量最重要的优点是:环境介质很普遍,空气、液体和固体都能使用,因此适合使用的范围非常大。更重要的是使用超声波检测能很大程度的降低劳动强度,可以避免工作人员在恶劣工作环境中可能受到的伤害,还能够提高距离结果的准确度;另外,超声波测距仪也可以作用到别的功能系统中,如在机器人的避障系统、车内置防撞系统、自动停车系统和倒车雷达,因此超声波测距仪对电子测量技术发展是非常重要的。

二、系统设计

2.1 系统要求

超声波发射、接收功能正常,可实时显示障碍物距离(数码管或液晶显示不限);本设计需使用超声波探头自行设计发射、接收电路,单片机使用情况不限。提高要求:

(1)距离小于30cm、15cm时进行区别报警,小于30cm为警戒距离,小于15cm为危险距离。

(2)测量距离误差小于2%。

(3)带有机械安装设计,使用方便,实用性好。

2.2 超声波发射与接收电路设计

设计总电路如下图1所示。

图1、超声波测距仪系统结构图

HC-SR04模块基本工作原理:

(1)单片机控制超声波的TRIG 口至少给10us的高电平信号,触发测距;

(2)模块会自动发送8个 40khz 的方波,并自动检测是否有信号返回;

(3)有信号返回,模块会通过 ECHO 口输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。公式:uS/58=厘米或者uS/148=英寸或是距离=高电平时间×声速(340M/S)。

2.3数码管显示

本设计数码管采用普中51开发板中的数码管模块,数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"abcdefgdp”的同名端在一起,另外为每个数码管的公共极COM增加位选通控制电路立选通由各自独立的1/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O 端口,而且功耗更低。

2.4 蜂鸣器报警电路

本设计蜂鸣器采用普中51开发板中的蜂鸣器模块,蜂鸣器是使用直流电压进行供电的使用整体结构的电子发声器,在计算器、儿童玩具、车辆电子设备、固定电话、传真机、打印机、各类报警器、定时装置等产品的发声模块中都有非常普遍的使用,在本设计中共采取两种不同频率蜂鸣器报警,分别表示距离小于30cm以及距离小于15cm。

三、系统主程序

3.1 主程序流程:

主程序的主要作用是把每个功能模块进行联系,读取出并计算HC-RS04 的测量的长度、测量距离的显示、通过按键控制有效距离限制、当测量的值超过了最大测量值时,蜂鸣产生长响的报警声。当测量距离小于报警距离时,蜂鸣器根据距离的大小产生频率不一样的声音,主流程如下图4所示。

图4、系统主程序流程图

3.2 显示距离子程序流程:

显示距离子程序的功能是把超声波模块测量出的时间差经过计算后得到的距离值传到单片机内,单片机通过处理把距值动态输出到数码管上,每次显示一位,逐位显示,流程图如下图5所示。

图5、显示距离子程序流程图

3.3 报警子程序流程:

报警子程序的主要作用是在测量距离小于30cm与小于15cm时发出不同频率报警。流程如下图6所示。

图6、报警子程序流程图

测试结果如下图所示。

图7、测试结果

工程文件及代码见:超声波自动测距(含一定距离内的报警功能)-单片机文档类资源-CSDN下载

超声波测距(含报警功能)相关推荐

  1. 基于51单片机的超声波测距及温度补偿

    具体实现功能 系统由STC89C52单片机+超声波测距传感器(HC-SR04)+DS18B20温度传感器+LCD1602液晶显示屏+按键+蜂鸣器+电源构成 具体功能:1.LCD1602液晶显示测量的距 ...

  2. 超声波测距测速升压可调中周倒车雷达变频器传感器1:10

    简 介: 通过对于是用于超声波测速变压器的基本分析,为后面构成150kHz 放大节能信标组的感应信号打下基础. 关键词: 中周,电压器,超声波 ▌01 中周变压器   购买到这个周中变压器主要是为了构 ...

  3. 【 FPGA 】超声波测距小实验(一)

    超声波测距原理: 超声波测距原理是在超声波发射装置发出超声波,它的根据是接收器接到超声波时的时间差,与雷达测距原理相似. 超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播 ...

  4. 51单片机c语言测距,求助 关于C51单片机超声波测距 C语言程序设计 高手帮帮忙...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 C51编程:超声波测距程序(附图) [请帮助] 2006-9-30 18:44:03 #include #define k1 P3_4 #define c ...

  5. Arduino的光敏传感器和超声波测距传感器测试代码

    光敏传感器测试代码 使用的是一个未知名4pin模块, 4pin依次为Vcc, Gnd, DO, AO, 板载一个可调电阻以及一个LED, 调节电阻大小, 可以控制LED亮灭和DO输出变化对光亮的灵敏度 ...

  6. arduino 超声波测距原理_超声波测距灯

    介绍硬件准备 本篇文章专门介绍用Arduino制作超声波测距灯,需要的材料是: 1. Arduino开发板 2. HC-SR04超声波模块 3. LED灯 4. 杜邦线若干 注意事项   之所以要写这 ...

  7. stm32超声波测距代码_超声波模块另类用法,悬浮,你也能做到

    今天,给大家介绍一个 「超酷的DIY声波悬浮」研究项目. 虽然超声波悬浮,不能像磁悬浮那样悬浮比较重的物品.不过能把小泡沫球.水滴或者蚂蚁这样的小物体悬浮起来也是很有意思的. 制作这样一个简易的超声波 ...

  8. 通过串口打印--超声波测距模块测得距离

    通过串口打印--超声波测距模块测得距离 原理 超声波测距模块 串口传输 实战代码 原理 超声波测距模块 在这里首先需要了解超声波测距模块的原理.在我的这篇博客有很多介绍.超声波模块介绍 串口传输 串口 ...

  9. 利用LCD1602显示超声波测距

    利用LCD1602显示超声波测距 介绍 一.需要的器件 二.原理 工程代码 一. LCD1602 二.超声波测距及主程序 运行图 介绍 一.需要的器件 51单片机:任意一款都可以,我这里使用的是STC ...

  10. 探测距离机器人模型:通过超声波测距控制舵机转向,LED灯,语音播放,蜂鸣器(米思齐mixly,arduino)

    ** ------------探测距离机器人模型:通过超声波测距控制舵机转向,LED灯,语音播放,蜂鸣器(米思齐mixly,arduino) 一. 初始化设置 在初始化这里要先设置波特率.并且把初始超 ...

最新文章

  1. ++i 和 i++ 效率分析(C++)
  2. 数学建模论文写作小技巧分享
  3. 雷赛运动控制卡能不能用c语言_基于PMAC控制卡的三坐标测量机控制系统
  4. 作为硬通货的学术引用,何以统治学术圈?
  5. linux如何安装infer
  6. VMware vSphere HA深入解析
  7. linux 64位 可移植性,linux – #!/ bin / sh vs#!/ bin / bash,实现最大的可移植性
  8. asp判断ajax请求 -asp.net,一个asp注册验证用户名是否重复的Ajax实例
  9. 项目中遇到的问题及解决办法
  10. 41. PHP MySQL 连接数据库
  11. Hyperledger fabric通道(Channel)的新建、管理、节点如何加入channel
  12. 如何让Linux上的GPG error 无法验证的这个公钥 NO_PUBKEY D97A3AE911FXXXXX 出错信息消失?
  13. 《Go程序设计语言》- 第3章:基本数据
  14. 【圆方树】CodeForces487E Tourists
  15. 页面中多次使用TWEEN.update()的坑
  16. 【C++零散】计时chrono
  17. 如何运营好微信公众号
  18. python语音唤醒功能_python语音唤醒-pocketsphinx
  19. 用批处理删除指定字符之前或之后的所有内容(FOR /F 中的Delims和Tokens总结)
  20. 首届DataEarth开发者大赛

热门文章

  1. 京瓷Kyocera TASKalfa 3051ci 一体机驱动
  2. Linxu终端远程协助工具termpair
  3. Win11录屏怎么录声音?Win11录屏幕视频带声音的方法
  4. 如何计算网络地址和广播地址
  5. 一次完整的 RPC 流程
  6. java 使用Lambda对集合排序
  7. 私域运营如何做到高转化高复购?快鲸scrm必不可少
  8. 软考嵌入式中级经验分享+真题教材
  9. oracle数据库中文乱码解决办法
  10. 目标检测(一)目标检测算法综述