基于单片机的超声波测距仪设计
扫描二维码
随时随地手机看文章
摘要:介绍了一种基于单片机的超声波测距仪的设计。详细给出了超声波测距仪的工作原理、超声波发射电路和接收电路、测温电路、显示电路等硬件设计,以及相应的软件设计。设计中采用升压电路,提高了超声换能器的输出能力;采用红外接收芯片,减少了电路间相互干扰,提高了灵敏度;同时,考虑了环境温度对超声波测距的影响,采用温度传感器,提高了测量精度。该设计试验运行良好,系统结构简单、操作方便、价格低廉,具有广阔的推广前景。
关键词:超声波测距仪;超声波换能器;单片机;温度传感器
0 引言
目前,常用的测距方法主要有毫米波测距、激光测距和超声波测距三种。超声波测距较前两种测距方法而言,具有指向性强、能耗缓慢、受环境因素影响较小等特点,广泛应用于如井深、液位、管道长度、倒车等短距离测量。
本设计选用频率为40 kHz左右的超声波,它在空气中传播的效率最佳。在超声测距方法上,本文选用渡越时间法,据文献所提供的数据,渡越时间法简单,成本低,可应用的距离范围较大,可测量的范围为0.39~10.3 m。由于超声波测距主要受温度影响较大,所以本设计增加了温度补偿电路。本设计具有电路简单、操作简便、工作稳定可靠、测距精确和能耗小、成本低等特点,可实现无接触式测量,应用广泛。
1 超声波测距仪工作原理
1.1 超声波测距原理
根据超声波发射后返回的回波幅值、相位和超声波发出到返回的时间差不同,有声波幅值检测法、相位检测法和渡越时间法。本文采用渡越时间检测法,其基本思想如图1所示,发射器发射超声波,经过障碍物反射后被接收器接收,测量发射器和接收器发射和接收超声波的时间差,利用式(1)即可测得障碍物与测试点之间的距离L:
式中:c为超声波在空气中的传播速度;t为超声波在空气中传播的时间。
同时,超声波在空气中的传播速度c受环境温度τ的影响较大,考虑了环境温度对传播速度的影响后,距离公式修正为:
1.2 超声波换能器
超声换能器是基于正(负)压电效应制成的声电传感器,在超声频率范围内将交变的电信号转换成为声信号(正压电效应),或者是将声信号转换成为电信号(负压电效应)。
本文选用防水型收发一体式双晶片压电振动式超声换能器TCF40-25TR,其主要性能指标如下:
(1)中心频率:(40±1)kHz;
(2)发射声压:在10 V(0 dB=0.02 mPa)时大于等于100dB;
(3)接收灵敏度:在40 kHz(0 dB=V/Pa)时大于等于-55 dB;
(4)静电容量:在1 kHz,小于1 V(PF)时为2 000±20%;
(5)余振时间小于等于1.2 ms;
(6)波束角度特性如图2所示。
1.3 超声波测距的波速特性与超声测距的盲区
超声波从换能器发射后,在空间传播是有指向性的,指向性最强的为主瓣,其余的为旁瓣,如图3所示。超声波的这种指向性的存在可以达到定向集中能量和减小干扰的目的。然而,旁瓣的出现还是造成了一定的干扰。如图4所示,从障碍物返回的超声波主瓣被接收器接收,同时,直接从超声波探头发出的旁瓣也可能被接收,造成旁瓣干扰。
通常,在用渡越时间法测距的过程中,压电换能器中的振子产生机械振动而发出超声波,驱动脉冲停止后,压电换能器将由于惯性继续振动而产生余振,反映到接收端的信号上,产生“拖尾”,如图5所示。因此,在软件处理上需要加入一段延时,略过这段时间。常将“拖尾”时间设置为1 ms。设标准状况下,声速为331.6 m/s,则不可测距离为331.6 m/s×10-3=0.33 m,此即测距盲区。
2 超声波测距仪的硬件设计
超声波测距需要用到两个参数:超声波从发射到接收的时间t及环境温度τ。因此相应地,超声波测距仪的硬件系统包括单片机及其外围电路、超声波发射电路、超声波接收电路、温度补偿电路和显示电路等。其硬件系统框图如图6所示。
2.1 单片机及其外围电路的设计
在本设计中,主控芯片选择的是单片机AT89S52。最小系统由AT89S52芯片以及外围电路组成(如图7所示)是整个超声波测距系统的核心部分。
2.2 超声波发射电路
超声波发射电路在测距时通过方波发生器产生脉冲信号,从而激发压电换能器发射超声波。为了提高超声波的发送能力,让其可以传输更远的距离,需要对信号电压进行放大。因此,超声波发射电路主要包括方波发生器和升压电路,如图8所示。
本文选择NE555芯片搭建超声波发射电路。双极型555时基电路的电压范围为4.5~15 V,而CMOS型的电源适应范围更宽,为2~18 V。可以和模拟运算放大器及TLL或CMOS电路共用一个电源。555时基电路中,4脚为复位输入端,当4脚为低电平时,输出脚3稳定输出低电平;需要555时基电路输出波形时,4脚应当接高电平或者悬空。方波产生以后需要对方波信号的电压进行放大,因此要求电路产生足够大的驱动电压。本设计中用MAX232对电路进行升压,只需要+5 V电源供电。
2.3 超声波接收电路
超声波接收电路的作用是将超声波探头接收到的微弱信号放大、滤波和整形后,输出台阶信号,提示单片机计算超声波在空气中的传播时间t。
本设计中,超声波接收部分采用红外遥控方式,所用调制芯片为CX20106A,其调制频率为38~40 kHz,采用脉冲位置调制法(PPM),提高了红外接收的抗干扰性能。
超声波接收电路如图9所示。回波信号整形输出为方波信号,之后输入单片机的外部中断0的输入端P3.2,以计算接收到超声波回波的具体时刻,从而确定超声波在空气中的传播时间t。
2.4 测温电路
本设计采用的温度传感器是DS18820。它无需任何外围硬件,直接将温度数字信号输入单片机P1.1口。同时,垓芯片可从单片机I/O口取电,而无需额外电源。DS18B20片内含有一个64位的ROM,用于存储自身的序列号,作为器件独有的ID号码,尤其适合进行多点温度测量。该芯片的的测温范围为-55~125℃,在-10~85℃范围内精度为±0.5℃;适用电压范围为3.0~5.5 V。测温电路如图10所示。
2.5 显示电路
本设计中采用四位一体共阳极数码管SM410564作为显示器件。其非公共端接到单片机的P0口上,公共端接到P2口的P2.0~P2.3四个引脚上,以动态扫描的方式进行扫描。由于P2口的驱动能力有限,因此数码管的公共端没有直接接到P2口上,而是通过P2口控制四个三极管的导通与关断来给数码管供电的。显示电路如图11所示。
3 超声波测距仪的软件系统设计
超声波测距的软件系统主要包括主程序、外部中断程序、定时中断程序,以及需要调用的若干个子程序。
3.1 主程序
主程序流程图如图12所示,系统初始化后调用超声波发射子程序送出一个超声波脉冲,为了避免超声波从发射器直接传送到接收器而引起直射波触发,延时后,方打开外中断0接收返回的超声波信号。主程序检测到成功接收的标志位后,进入计算子程序,获得被测物体与测距器之间的距离。
3.2 测温子程序
测距时,单片机与DS18B20通信经过如下三个步骤:对DS18B20复位、复位之后发送ROM指令、发送RAM指令。由于本设计为单点温度测量,只用到一片DS18B20,所以,发送的ROM指令为跳过ROM指令(0CCH)。测温子程序流程图如图13所示。
3.3 定时中断程序
定时中断程序的作用是判断发射时间、延时时间和接收时间。在不同的时间间断内,确保系统内的全局变量S作出相应的变化。定时中断程序的流程如图14所示。
4 结论
本文设计了一种基于单片机的超声波测距仪。设计中采用MAX232对电路进行升压,提高了超声换能器的输出能力,从而提高了测距的距离。采用了红外接收芯片CX20106A,减少了电路之间的相互干扰,提高了接收信号的灵敏度。同时,设计中采用数字温度传感器DS18B20为温度补偿电路,提高了测量精度和智能化程度,并在一定程度上降低了系统成本。本超声波测距仪经试验运行良好,性能优良、成本低、能有效改善测量技术,适合于机器人检测、家具安防、汽车倒车等小距离测量。