基于单片机的超声波测距系统的设计
1 引言
超声波测距作为一种典型的非接触测量方法,与激光测距、红外线测距相比,超声波对外界光线、色彩和电磁场不敏感,更适于黑暗、电磁干扰强、有毒、灰尘或烟雾的恶劣环境,在识别透明及漫反射性差的物体上也更有优势。由于声波在空气中传播速度远远小于光线和无线电波的传播速度,对于时间测量精度的要求远小于激光测距、微波测距等系统,因而超声波测距系统电路易实现、结构简单和造价低,且超声波在传播过程中不受烟雾、空气能见度等因素的影响,在各种场合均得到广泛应用,如倒车防撞雷达、海洋测量、物体识别、工业控制,建筑工程测量和机器人视觉识别。
2超声波测距基本原理
超声波测距的基本工作原理是测量超声波在空气中的传播时间,由超声波传播时间和传播速度来确定距离障碍物的距离,即脉冲--回波方式。该方式的基本电路框图如图1所示。由发射传感器、发射电路、接收传感器、接收放大电路、回波信号处理电路和单片机控制电路等几部分组成。
发射电路是一个工作频率为40khz的多谐振荡器,多谐振荡器受单片机控制,产生一定数量的发射脉冲,用于驱动超声波发射传感器,并激励出超声波在空气中传播,遇障碍物反射而返回。超声波接收传感器通过压电转换的原理,将由障碍物返回的回波信号转换成电信号,由于该信号幅度较小(几到十几毫伏),因此须由低噪声放大、40khz带通滤波电路将回波信号放大到一定幅度,且干扰成分较少,并由回波波号处理电路转换成方波信号,送至单片机系统进行时间测量和距离的显示。
超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离(s),即:s=ct/2。
在启动发射电路的同时启动单片机内部的定时器t0,利用定时器的计数功能记录超声波发射的时间和收到反射波的时间。当收到超声波反射波时,接收电路输出端产生一个负跳变,在int0端产生一个中断请求信号,单片机响应外部中断请求,执行外部中断服务子程序,读取时间差,计算距离。
3 超声波测距的误差分析
3.1 环境温度对测量精度的影响
利用超声测距要考虑媒质的弹性模量和密度对声速的影响。在气体中,压强、温度、湿度等因素会引起密度的变化,气体中声速主要受密度影响,超声波在固体中传播速度最快,气体中传播速度最慢。气体中声速受温度影响最大,超声波在空气中传播速度为
式中t为绝对温度,c0=331.4m/s。
由于声速与温度有关,为了提高测量精度,设置了温度检测电路,根据实际测量的温度值利用公式计算超声波速度,对最终测量结果进行校正。
3.2 回波前沿检测误差对测量精度的影响
超声波从超声传感器发出,在空气中传播,遇到被测物反射后,再传回超声传感器。整个过程,由于吸收衰减和扩散损失,声强随目标距离增大而衰减;同时衰减系数还与超声波的频率有关。因此超声波测距在实际应用的局限性,影响了超声波测距的精度。一是超声波在空气中衰减极大,由于测量距离的不同,造成回波信号的起伏,使回波到达时间的测量产生较大的误差。二是超声波脉冲在发射、空气中传播和接收过程中,其回波信号被展宽,影响了测距的分辨率,尤其是对近距离的测量造成较大的影响。由于超声波收、发传感器均由压电陶瓷构成,压电陶瓷片在压电的双向转换过程中,均存在惯性、滞后等现象,导致回波信号被展宽。这些因素造成了回波正确到达时间的不确定性,对测量精度造成较大的影响。正确检测回波到达时间,能使超声波测距精度获得提高。
4系统组成结构
4.1 硬件结构
主要包括at89c51单片机、超声波发射电路、超声波接收电路、显示电路、测温电路等。
采用数字温度计ds18b20来采集温度信号,ds18b20是美国dalas公司推出的单线串行数字温度计,可直接与单片机连接,测量范围从-55℃~125℃,-10℃~85℃时测量精度为0.5℃。
超声波发射及驱动电路由功率放大电路和超声波发射传感器组成,其原理电路如图2所示。放大器输人端获得一个来自单片机送来工作频率为40khz的脉冲信号。通过功率放大电路放大到足够大的能量(增加超声波的传播距离),该能量加给超声波发射传感器,驱动超声波发射头,并发射出40khz脉冲波,通过空间向外传播出去。
超声波接收电路由高速运算放大电路和超声波接收传感器组成,其原理电路如图3所示。超声波在空气中传播时,其能量衰减程度与传播距离成正比,所以超声波传感器接收信号一般在1mv-iv之间。接收电路采用由lm318高速运算放大器组成两级信号放大电路对其进行放大,以满足增益带宽和转换速率的要求。当超声波接收传感器接收到返回的超声波信号,接收传感器将超声波脉冲变为交变电信号,经放大器放大后进行处理。
测距电路的输入端接单片机p1.0端口,单片机执行程序时,在p1.0端口输出一个40khz的脉冲信号,通过超声波发射电路发射出去,同时启动单片机内部的定时器t0,定时器开始计数。当反射物将超声波反射回来,超声波接收电路接受处理,输出端产生一个负跳变,在into端产生一个中断请求信号,定时器停止计数。单片机响应外部中断请求,执行外部中断子程序,读取超声波从发射到接收的时间差,最后经过换算得出超声波传感器与反射物之间的距离。
4.2 系统软件
系统软件包括主程序、温度采集子程序、发射子程序、计算子程序、数码显示子程序、外部中断子程序和定时器中断子程序。主程序完成初始化后调用发射子程序,由p1.0口发射脉冲,驱动超声波传感器发射超声波,并关外部中断,计数器t0开始计时;为防止虚假回波的干扰,在延时一段时间后,开中断。当有外部中断信号时,单片机就停止t0的计时,计算出渡越时间t并存储到e2prom中;然后调用测温子程序,采集超声波测距时的环境温度,并换算出准确的声速c,存储到e2prom;单片机再调用计算子程序,计算出传感器到目标物体之间的距离,最后把测量结果存储并通过数码管电路显示出来,完成一次测量。
设计中,超声波发射极和接收极距离较近,当发射极发射超声波后,有部分超声波没经过障碍物反射就直接绕射到接收极上,这部分信号是无用的,会引起系统误测。设计中采用延时技术来解决这个问题,并设定延时时间为1ms,即在发射极发射超声波1ms内,通过软件关闭所有中断,接收电路对此期间接收到的任何信号不予理睬,1ms后立即启动t0,这时接收到的信号才有效,并在接收到回波信号的同时,t0停。此时t0所记录的cpu发送脉冲信号的前沿到回波脉冲信号之间的时间才是需要的。因此系统存在测量盲区。主程序流程图如图4所示。
本文所设计的超声波测距系统,其结构简单、体积小、抗干扰性能好,若要满足更高的精度要求,还须进行适当改进。在某些特殊场合的应用中,还要考虑超声波的人射角、反射角以及超声波传播介质的密度、表面光滑度等因素。本系统不仅适用于距离的测量,还适用于水文液位测量和汽车间间距的测量,应用范围较广。
文章版权归西部工控xbgk所有,未经许可不得转载。