《基于单片机的超声波测距系统设计.doc》由会员分享,可在线阅读,更多相关《基于单片机的超声波测距系统设计.doc(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、基于单片机的超声波测距系统设计摘 要 超声波技术是一项应用十分广泛的实用的非接触式技术。它具有传播距离远、聚向性能好、能源在传播过程中消耗缓慢等优点,而超声波测距更是借助了超声波的上述优点外还有如原理简单易懂、相关配件价格实惠等优势而被大量推崇。文章首先介绍超声波测距的测距原理和系统构架,然后分别对制作超声波测距的硬件电路和软件编程思路进行阐述,最后介绍调试超声波测距仪中的一些测试结果。关键词 单片机;超声波;测距系统众所周知,城市轨道交通的检修为了不打扰正常的运营通常放在半夜进行,而在此过程中如要进行一些非接触式的检测项目时,往往由于现场的光线昏暗或是检测条件有限,通常是由检修的老员工通过自
2、己多年的经验来主观判断是否存在误差。这样凭自己的主观工作经验而下的判断无疑是给列车的安全出行埋下了安全隐患。超声波测距技术正是一项非接触式的测距技术,它具有传播距离远、能量消耗少、聚向性能佳等优势,特别适用于传播媒介是空气的应用环境之中。由于在空气中波速较慢,因此容易检测出反射信号的信息,具有很强的分辨能力。同时,它能做到实时控制和检测可靠优势而使其具有很高的工业实用价值,因此它被广泛地应用,而且价格相对低廉,不会给企业和个人使用增加太多的成本负担。一、超声波测距的工作原理目前超声波的测距原理主要有三种方式:分别是渡越时间检测法、相位检测法和声波幅值检测法1 。相位检测法虽然通过相位之间的角度
3、计算能够得出比较高的精确度2,但是计算方式比较复杂,而且相关的硬件设备价格较贵;而采用声波幅值检测方法的话,主要的瓶颈在于它容易受到反射波的干扰,而造成灵敏性和精确度不高3。综合比较下来,渡越时间检测法的检测原理简单易懂同时反射波也不会对其造成干扰而使其灵敏度和精确度下降,最终笔者选择的超声波测距原理是渡越时间检测法。渡越时间检测法的原理就是:检测从超声波发射器发出的超声波,经气体介质的传播到接收器的时间,即渡越时间4。而用在传媒介质为空气中声波的速度乘以该渡越时间就可以得出我声波总的传播距离。由于该距离是发射到发射面后再有接收端口接收到的,因此实际的距离则是之前声波乘以渡越时间的一半。而对于
4、时间的计算则是通过51单片机的内部定时器来实现。测距的具体过程如下:通过超声波发射装置向某一方向或是某一反射面发射超声波,同时激发单片机内部的定时器开始计时。在超声波发射后遇到障碍物则被反射回来,之后被超声波的接收端所接收到;与此同时,单片机的内部定时器停止计时。那么在单片机的内部定时器中的这段时间就是渡越时间,之后将这段时间送给单片机进行读取并计算,最后单片机将最终的结果显示到数码管上。二、超声波测距系统的组成整个测距系统的话主要是由c51单片机作为核心的控制系统以及发射模块、接收模块、报警模块、显示模块、电源模块等组成。具体如图1所示:在这其中单片机作为主要的核心,它的主要的功能将会是为发
5、射端口提供40khz的高频方波信号,经过换能器和驱动电路后将超声波发射出去。而接收电路接收到反射波后,向单片机发送一个低电平的信号。单片机接收来自接收模块的低电平信号后停止计时并读取出内部定时器的数值,同时进行相应的计算,对最后的结果进行处理后使其能显示在3位的共阳数码管上。而如果当测距的距离超出最大的测距范围时,单片机也能及时触发相应的报警模块进行蜂鸣报警。其他例如显示模块、报警模块、发射模块等将在测距硬件部分中介绍。三、超声波测距系统的硬件模块组成(一)发射电路模块发射电路主要是由超声波发送头、超声波脉冲变压器、电阻、三极管组成。其中脉冲变压器的主要功能就是对超声波发送头处的电压进行升压处
6、理。这样处理的好处就是能够有效地提高发送的功率,使得我的超声波发射的距离能够大大地提高。发送的过程就是我单片机通过编程使其产生了40khz的高频信号,然后该信号通过变压器后加载到了发送头上,从而驱动了超声波的发送头发送出高频超声波。(二)接收电路模块接收电路主要是由放大电路、检波电路、比较整型电路所构成。放大电路主要是由两组三极管所构成,而其他2个电路则是由三极管、电容和检波二极管所组成。通常情况下从发射段发射出去的超声波经反射回来后会有一定程度的衰减。所以接收电路首先要做的就是对接收到的信号进行放大处理。通过两组的三级管构成的放大电路进行放大,每组放大倍数定为70倍。之后通过由in4148构
7、成的检波电路和电容组成的整型电路后,输出的直流信号能被单片机有效地读取到。采用这种电路设计方法可以使得接收性能稳定且结构简单。(三)显示电路显示电路主要是由3位共阳级的数码管为主体所构成的。由于笔者所采用的是动态扫描的读取方式,因此还加上了s9012三极管来驱动数码管的工作。(四)报警电路报警电路的主要是由蜂鸣器、电阻、三极管所组成。在其中设定当在进行测量中测量的距离值小于预先设好的值时,蜂鸣器将会被触发,并给予报警信号。一旦高于设定的值时,将会停止报警。三、软件编程设计与思路超声波测距仪的软件编程主要是可以将软件执行的主要过程分为几个模块来思考。将其分为主程序模块、超声波输出模块、超声波接收
8、模块以及显示模块。主程序将作为整个程序的核心,根据相应的需要来调用其他的相应子模块。同时在程序的执行过程中,由于该软件程序既涉及到有时间要求较高的控制过程(比如对于单片机内部定时器的开关的触发)又涉及到一系列复杂的计算问题(比如数值类型的转换和计算等),因此综合比较分析下来,使用单片机的c51语言编程比汇编语句更加有效。(一)主程序模块主程序模块首先进行的是整个系统的环境初始化,对所用的变量恢复原始设置。之后便是对定时器开始进行一定的配置。其值为0时代表其执行计数功能,而其值为1则代表执行定时功能。过了初始化这个步骤后,当定时器标定位是0时进行的就是调用超声波输出模块,使得40khz的方波信号
9、从超声波发射头中发射出去,同时启动单片机的内部定时器,开始计时。随后紧接着一步就是进行判断,判断测距的距离是否在标定的范围内,如果不在则调用相应的报警功能。如果在相应的标定距离则进入while循环语句中,调用显示模块,用来不间断显示测距的结果值。流程图如图2所示:(二)超声波输出及接收子程序设计思路该子程序模块的调用条件即是当之前单片机内部定时器的标定位为1时被触发。此时程序执行的就是由单片机发送4个一定频率的超声脉冲加载到超声波发送头上,之后立即激发定时器开始计时。之后将要执行一个延时子程序。这个延时子程序的作用就是防止当我的超声波从发射头中发射出去时直接就被我的接收部分的接收头收到。这种由
10、引起的直射波触发如果不进行延时处理,将会对整个测距的准确性带来严重的误差。同样也正是因为这个原因,造成测距会有一个最小测距距离,也就是俗称的盲区值5。之后就进入到接收子程序中。接收子程序主要就是进行一个判断,这次的判断主要针对接收端是否接收到了回波的信号。如果收到了回波信号则单片机内部定时器及时停止计时。下一步开始根据时间计算出相应的测量值。而如果接收端没有收到回波则,检查延时时间是否已到,如果已经到达了延时时间则停止计时;如果没有到,则继续检测接收端是否收到回波。具体如图3所示。(三)显示子程序的设计思路显示子程序的主要思路就是在显示之前先加段位转换的小程序。根据之前测距距离的判断结果调用之
11、前存在静态存储区内的段位组合情况。之后再使用动态扫描的方法将其显示出来。由于这部分知识包括动态扫描等方法都是单片机技术中一些比较常见和通用方法。在此也就不加详细阐述了。四、结 语在完成了硬件的焊接和软件编程后,为了验证这个测距系统的精确性能指标,笔者在学院实验室内进行了实际的测试,发现在范围50500cm之间都能准确测量,最大误差在1cm之间。整个系统相对于传统的测距设备相比具有性能稳定,结构简单、体积较小、价格便宜等优点。而误差的原因经分析主要是由于反射面的不平整及自身的延时所致。可根据实际的情况对脉冲宽度、频率等参数作相应的调整即可。参考文献1王红云 基于超声波测距的倒车雷达系统设计j.国外电子元器件,2008,(8).2王革思,李柏松,丁坚.相位差法超声波流量计的研制j.信息技术,2008,(12).3彭建盛,梁光艳,郭留涛.基于无线单片机cc2510的多点超声波测距系统 河池学院学报j. 2009,4(2).4卜英勇,何永强,赵海鸣,等.一种高精度超声波测距仪测量精度的研究j.郑州大学学报,2006,(1).5刘成安,孙涛.智能超声波测距仪的研制j.单片机开发与应用,2007,(6).