一种高精度超声波测距系统研究
扫描二维码
随时随地手机看文章
摘要:介绍了一种以单片机AT89S52为核心,同时用74LS04驱动超声波发射探头,用CX20106A对接收信号进行放大、滤波、检波并输出负脉冲的低成本、高精度超声波测距系统的硬件和软件设计方法。实验证明,这套超声波测距系统软硬件设计合理、抗干扰能力强、实时性好。
关键词:超声波;测距;单片机;高精度
0 引言
随着科学技术的快速发展,超声波在测距仪中的应用越来越广。但就目前技术水平来说,人们可以具体利用的测距技术还十分有限,因此,超声波测距还是一个正在蓬勃发展而又有无限前景的技术及产业领域。为了能顺利地完成汽车的停放,应用测距电路能更准确、即时地得到汽车与障碍物的距离。
智能机器人进入人们的家庭不再是科幻片里面的情节,现在已经有很多机器人开始普及,如智能清洁机器人、智能防盗机器人等。而这些机器人是需要感觉周围的环境来做出判断的,测距系统就能发挥很大的作用。因此,设计高稳定性、高精度的超声波测距仪就显得特别重要。
1 超声波测距原理
和蝙蝠探测障碍物的方法一样,用超声波测距时,先由超声波测距仪向前方发射超声波,超声波在空气中直线传播。当前方有障碍物时,超声波发生反射并被接收端接收。这样,通过比较反射回来的超声波与发射超声波的时间差,就可以计算出测距仪到阻碍物之间的距离。
反射超声波与发射超声波的时间差比较容易获取,且计算只与超声波在空气中的传播速度有关,因此,这种方法将得到普遍应用。若超声波以速度v在空气中传播,遇到物体后反射,由接收器接收的时间差为t,那么,由s=vt/2,就可以计算出所测距离。但是,超声波也是一种声波,其声速v与温度有关,如果测距精度要求很高,就需要通过温度补偿的方法加以校正。
2 系统的总体设计
超声波测距系统的整个系统由单片机来控制。启动测量时,由单片机发出一个控制信号去触发发射电路,使发射电路起振,同时驱动超声波发射器发射出一串超声波脉冲(六个脉冲),并同时启动单片机的定时计数器开始计数,也就是开始测量渡越时间。当这些脉冲到达被测目标时,将发生反射,并经空气传播被超声波接收器接收,再由放大电路进行选频放大。接收到的第一个脉冲去触发单片机的外部中断,使定时计数器停止计数,这样,根据计数器的值就可以算出时间。
2.1 系统硬件设计
2.1.1 超声波发射电路
超声波传感器利用压电效应的原理将电能和超声波相互转化。其发射电路原理图如图1所示。该发射电路主要由反相器74LS04和超声波发射换能器构成。单片机的P2.1端口输出的方波信号一路经一级反向器后送到超声波换能器的一个电极,另一路经两级反向器后送到超声波换能器的另一个电极,用这种推挽形式将方波信号加到超声波换能器的两端,可以提高超声波的发射强度。输出端采用两个反向器并联,可以提高驱动能力。上位电阻R1、R2一方面可以提高反向器74LS04输出高电平的驱动能力;另一方面,还可以增加超声波换能器的阻尼效果,缩短其自由振荡时间。
2.1.2 超声波接收电路
集成电路CX20106A是一款红外线检波接收的专用芯片,常用于电视机红外遥控接收器。考虑到红外遥控常用的38 kHz载波频率与测距的40 kHz超声波频率较为接近,设计时可以利用它制作超声波检测接收电路,图2所示就是本文的超声波接收电路。实验证明,利用CX20106A接收超声波,具有很好的灵敏度和较强的抗干扰能力。另外,适当更改电容C4的大小,还可以改变接收电路的灵敏度和抗干扰能力。
2.2 超声波测距的软件设计
超声波测距的原理为超声波发生器T在某一时刻发出一个57 603 Hz的超声波信号后,将立即启动定时计数器和外部中断。当这个超声波遇到被测物体后反射回来,就被超声波接收器R所接收。此时,CX20106A会产生一个负脉冲触动外部中断,同时读出并保存计时器寄存器的值,关闭外部中断,同时测量温度,计算超声波速度、测量距离。如果测量距离大于23 cm或是没有接收到回波,就再发送40 kHz的超声波驱动脉冲,重新测量。
然后再根据前面所述原理计算距离,计算公式为:
S=T(s×100)/2-0.75 (1)
式中,S为所测距离,单位为cm;T为发射超声波与接收超声波的时间差,单位为s;s为超声波速度,单位为m/s,由于发射超声波与接收超声波期间,超声波传播的距离为测量距离的两倍,所以要除以2;后面的0.75为实验得出的补偿值。其补偿公式如下:
s=331.4+0.61temp (2)
式中,temp为环境温度;s为超声波传播速度,单位为m/s。
3 系统测试
笔者通过实验对该超声波测距系统进行了实验,表1所列是实验所得出的实际测量数据。
4 结语
本文对低成本、高精度超声波测距仪进行了全面的介绍,给出了超声波测距的软硬件设计方法。采用AT89S52单片机作为核心处理单元来降低整体仪器的体积和成本。本设计使用74LS04并以推挽形式驱动超声波发射探头,同时选用CX20106A对接收信号进行放大、滤波、检波并输出负脉冲,完成超声波测距仪自动控制,由超声波驱动频率检测距离。最后在单片机的控制下,将测量距离和环境温度通过液晶屏显示出来。