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