基于40kHz超声波测距系统的设计

2013-08-26 02:48
机械与电子 2013年8期
关键词:子程序测距超声波

兰 羽

(陕西工业职业技术学院电气学院,陕西 咸阳 712000)

0 引言

超声波是指振动频率高于20kHz的机械振动,其有光的聚焦、折射及反射等特性,同时又穿透能力强、能量集中、指向性好和传输过程中衰减较小等优点。超声波测距技术是一种利用超声波信号在被测介质中传播到接收传感器的时间来测量距离的一种方法。它具有非接触式测量、精度高、范围宽和安装维护方便等特点[1-2]。为了克服超声波频率太高或太低对超声波测距的影响,系统采用40kHz的超声波,发射脉冲群含有8~16个脉冲,以单片机AT89C51为核心,设计了超声波测距系统。

1 超声波测距系统原理

超声波的测距原理如图1所示,AT89C51产生40kHz的脉冲,经超声波发射电路,加在B1向某一方向发射超声波,在发射的同时开始计时,超声波在空气中传播,途中碰到障碍物立即返回来,接收探头B2接收到反射波就立即停止计时[3]。在标准情况下,超声波在空气中的传播速度为340m/s,根据计数脉冲的重复周期T,得到渡越时间t=nT,因此,测量实际上变成读出距离计数器的数码值n。对目标距离R的测定转换为测量脉冲数n,从而把时间这个连续量变成了离散的脉冲数[4]。得到时间t,就可以计算出发射点距障碍物的距离s,即:s=340t/2,这就是超声波测距的基本原理。在超声波测距系统中,通常发射与接收探头之间有一定距离,为了提高测量精度,需要考虑图1中指示夹角θ。

图1 超声波的测距原理

v为超声波在介质中的传播速度;t为超声波从发射到接收所需要的时间。将式(2)代入式(1)得:

超声波的传播速度v在一定的温度下是一个常数,当需要测量的距离H远远大于2探头B1,B2之间距离时,则式(3)变为:H=。所以,只要测量超声波传播的时间t,就得出测量的距离H。

2 系统硬件电路设计

2.1 超声波传感器

超声波传感器是实现声、电转换的装置。这种装置能发射超声波和接收超声波回波,并转换成相应电信号。其按收发方式可分两类:一类是单晶直探头,超声波发射和接收分别是两种不同的分体式,此类传感器测距有效范围比较大,但不具备防尘、防水性能[5];另一类是收发一体式双晶直探头,此类超声波测距有效范围比较小,防尘、防水性能好。由于考虑到成本等因素,系统所选用分体式探头,超声波探头型号为TCT40T/R(直径16mm),外形如图2所示,TC为压电陶瓷超声波传感器;T为通用型;T为发射;R为接收。其中心频率为40kHz,相关参数是:发射声压≥117dB;标称频率为40kHz;静电容2000pF。

图2 超声波探头外形

2.2 超声波发射电路

单片机AT89C51内部的振荡产生40kHz的方波信号由P1.0口输出,经过发射电路以及超声波探头发射出去,由于超声波探头为压电陶瓷材料制造,单片机直接产生的方波不能直接加到换能器上。从单片机产生的40kHZ方波先通过二阶的低通滤波器把方波信号转变为正弦波信号,然后经过功率放大集成芯片LM386功率放大后发射出去。它通过1、8引脚位间电容的搭配,增益最高可达200。LM386可使用电池为供应电源,输入电压范围为4~12V,无作动时仅消耗4mA电流,且失真低。原理如图3所示。

图3 超声波发射模块原理

2.3 超声波接收电路

超声波信号在空气中传播一段距离后碰到运动物体反射回来。超声波接收电路原理如图4所示,其采用集成电路CX20106A,它是一款集放大、限幅、带通滤波、峰值检波和波形整形电路为一体的芯片。因红外遥控常用的载波频率38kHz与测距的超声波频率40kHz较为接近,可以利用它制作超声波检测接收电路[3]。图4中,通过适当的改变C3的大小,可以改变接收电路的灵敏度和抗干扰能力。

工作原理:CX20106A集成芯片是当超声波接收探头接收到超声波信号时,压迫压电晶体做振动,将机械能转化成电信号,由红外线检波接收集成芯片CX20106A接收到电信号后,对所接信号进行识别,若频率在38~40kHz,则输出为低电平,否则输出为高电平。

图4 CX20106A芯片构成的超声波接收电路

2.4 控制及显示模块

系统采用AT89C51作为数据处理芯片,AT89C51构成的最小单片机系统如图5所示,时钟采用外部12MHz振荡电路,系统通过S键进行复位。P1.0口与超声波发射电路连接,P3.5口与超声波接收电路连接。系统采用LCD1602A液晶屏,LCD1602液晶第1、2脚接驱动电源;第3脚VL为液晶的对比度调节,通过在VCC和GND之间接一个10kΩ多圈可调电阻,中间抽头接VL,可实现液晶对比度的调节;液晶的控制线RS、R/W、E分别接单片机的P2.5,P2.6,P2.7;数据口接在单片机的P0口;BL+、BL-为液晶背光电源[6]。液晶显示器(LCD)具有超薄、功耗低和体积小等优点,被广泛用于低功耗电子产品和智能仪表中[7]。

图5 单片机控制显示模块

3 系统软件设计

系统程序采用C语言编写。程序分为2部分,主程序如图6所示,主程序完成初始化工作、各路超声波发射和接收顺序的控制。中断服务程序如图7所示,定时中断服务子程序完成三方向超声波的轮流发射,外部中断服务子程序主要完成时间值的读取、距离计算和结果的输出等工作。在启动发射电路的同时,启动单片机内部的定时器T0,利用定时器的计数功能,记录超声波发射的时间和收到反射波的时间。当收到超声波反射波时,接收电路输出端产生一个负跳变,在INT0或INT1端产生一个中断请求信号,单片机响应外部中断请求,执行外部中断服务子程序,读取时间差,由H=vt计算距离。

图6 主程序

图7 定时中断程序

主程序首先是对系统环境初始化,设置定时器T0工作模式为16位定时计数器模式。置位总中断允许位EA并给显示端口P0清零。然后调用超声波发生子程序送出一个超声波脉冲,为了避免超声波从发射器直接传送到接收器引起的直射波触发,需要延时约0.1ms后,再打开外中断接收返回的超声波信号。由于采用的是12MHz的晶振,计数器每计一个数就是1μs,当主程序检测到接收成功的标志位后,将计数器T0中的数(即超声波来回所用的时间)按式H=1/2vt计算,即可得被测物体与测距仪之间的距离,在20℃时的声速为344m/s则有:H=1/2vt=172×t0m,t0为计数器 T0的计算值。测出距离后,结果LCD1602显示约0.5s,然后再发超声波脉冲重复测量过程。

4 系统调试

将程序编译好下载到单片机试运行。根据实际情况可以修改超声波发生子程序每次发送的脉冲宽度和2次测量的间隔时间,以适应不同距离的测量需要。测试条件:超声波2探头中心轴线平行并相距0.05m,环境温度为20°对应超声波速度v=344 m/s,经多次重复测试实验,系统不断优化[8]。最终测试结果如表1所示。由测试数据知系统测量范围为0.05~3m,相对误差小于3%。

表1 测距实验结果

5 结束语

系统采用AT89C51单片机为主控核心,以40kHz的超声波做探测波,设计了一种超声波测距系统。在软件设计时对声速进行了温度补偿,并考虑了超声波收发探头之间的距离,以提高系统测量精度。系统具有测量结构简单、硬件电路简单易于集成、成本低和、操作简单方便等优点。经测试表明,测距范围从0.08-3m,测量相对误差小于3%,绝对误差小于0.04m。可在自动控制系统中的距离、物位和液位要求较高的测量环境中应用。

[1]时德刚,刘 哗.超声波测距的研究[J].计算机测量与控制,2002,9(10):31-33.

[2]曹建海,路长厚,韩旭东.基于单片机的超声波液位测量系统[J].仪表技术与传感器,2004,(1):39-40.

[3]兰 羽,周 茜.超声波测距系统接收电路研究[J].电子设计工程,2012,20(14):81-83.

[4]罗本成,原 魁,刘晋东.机器人多路超声波环境探测器的研制[J].中国科学院研究生院学报,2002,19(2):173-176.

[5]何希才.传感器技术及应用[M].北京:北京航空航天大学出版社,2005.

[6]兰 羽,张玉洁.光电探测中低噪声前置放大器的设计[J].国外电子测量技术,2012,31(6).84-86.

[7]兰 羽,卢庆林.仪表放大器在激光外差玻璃测厚系统中的应用[J].国外电子测量技术,2012,31(3):79-82.

[8]苏 伟,巩壁建.超声波测距误差分析[J].传感器技术,2004,3(4):17-20.

猜你喜欢
子程序测距超声波
类星体的精准测距
基于Niosll高精度超声波流量计的研究
浅谈超声波测距
蝙蝠的超声波
超声波流量计的研究
超声波流量计在兰干渠上的应用
浅谈子程序在数控车编程中的应用
基于PSOC超声测距系统设计
子程序在数控车加工槽中的应用探索
相对差分单项测距△DOR