刘燎原
(江苏建筑职业技术学院 信电工程学院,江苏 徐州 221116)
超声波指向性强,能量消耗慢,经常被用来测量距离。目前,市场上的超声波测距仪功能单一,无法查询和记录前几次测量结果,不具有记忆功能;没有盲区设置功能,无法设置合理的盲区使超声波测距仪测量准确。
超声波测距是利用超声波在空气中的传播速度为已知,测量声波在发射后遇到障碍物反射回来的时间,根据发射和接收的时间差计算出发射点到障碍物的距离。实际使用超声波测距仪时不光要测量当前距离,在很多情况下还要保存前几次的测量结果,用来和当前结果形成对比,为测量者做出正确的判断提供依据。本系统可以保存4次测量结果,并可以通过按键翻查前3次测量结果,并且在测量、参数设置和数据翻查时都有对应的指示灯指示[1]。
盲区是由于换能器在发送了超声波后会有余震导致不能识别回波而形成检测盲区,任何一款超声波测距仪都存在超声波测距盲区值选择问题。如果测距盲区选择不当,超声波测距仪就不能正常使用。可以适当增大发射探头和接收探头之间的距离,收发不互相影响,那要求地线隔离要很好,否则不能减小测量盲区[2]。本系统具有参数设置功能,可以通过按键来调整测量盲区,并可以把设置的测量盲区数据保存起来,根据测量盲区来校准输出电压,根据电压大小反映盲区是否设置得当。
本系统硬件模块由单片机、独立按键、数码管显示、超声波传感器、EEPROM存储、DAC电压输出、LED指示灯构成,如图1所示。本系统首先利用单片机P1.0发出40 kHz的方波到发射超声波探头发射超声波,根据接收探头接收到反射波的时间换算出所测距离,在8位数码管上显示测量结果。系统有4个独立按键,包括“测距”“查询”“翻页/步进”“盲区调整”按键,系统在测距、数据翻查、参数设置等功能时,分别有L1、L2、L3指示灯来指示工作,供用户直接判别。EEPROM用来存储4次的测量结果和设置的盲区距离,供用户查询。用户可根据DAC电压校准输出来判断是否处于测量盲区[3]。
图1 超声波测距仪原理
本系统的超声波发射电路如图2所示,N-A1和单片机P1.0相连,超声波接收电路如图3所示,N-B1和单片机P1.1相连[4]。
图2 超声波传感器发射电路
图3 超声波传感器接收电路
本系统首先利用单片机P1.0产生40 kHz的方波信号,加到超声波发射电路的N-A1引脚,通过反相器构成的推挽电路来提高该方波信号的驱动能力和发射强度,最后通过超声波发射探头T发射出去,同时启动单片机的T0来计时。
超声波在空气中传播,当这个超声波信号遇到被测物体后就立即反射回来,超声波接收探头R接收到反射波后加到超声波接收电路的超声波接收专用芯片CX20106A上,该芯片对反射波进行放大、限幅、带通滤波、峰值检波、整形、比较等,最后该芯片的N-B1引脚输出低电平加到单片机的P1.1引脚,并且立即停止T0计时,一次完整的测距过程结束。利用定时器T0换算出超声波从发射到接收的时间t,声波在空气中的传播速度为340 m/s,就可以计算出发射点距障碍物的距离s,即s=340 m/s×t/2。
本系统利用AT24C02芯片来存储信息,它是一种通过IIC总线接口进行操作的EEPROM,内部含有256个8位字节单元,有一个专门的写保护功能。该芯片接口线少、占用的空间非常小、控制简单、通信速率较高。本系统利用AT24C02来存储4次的测量结果和设置的盲区距离,供用户查询,详细的电路连接如图4所示。
图4 AT24C02的连接电路
本系统统有4个独立按键,包括 “测距”“查询”“翻页/步进”“盲区调整”按键。本系统的程序流程如图5所示。
图5 主程序流程
本系统利用单片机综合实训平台来测试。系统一上电,8位数码管显示提示符“--------”,表示准备就绪。若按下“测距”按键一次,启动一次测距过程,8位数码管同时显示本次测量结果和上次测量结果,单位为厘米,供用户参考。“C”表示当前为测距状态,前3位“013”为本次测量结果,后3位 “009” 为上次测量结果。每次的测量结果都被存入AT24C02,但它只记录保留最近4次测量结果,按下“查询”按键,可以切换到4次测量数据的翻查功能,此时配合“翻页/步进”按键,每按下“翻页/步进”按键一次,显示一次的测量数据。“4”表示查询前第几次测量,“009”为第四次测量结果。再次按下“查询”按键,数码管又切换到测距显示界面。
“盲区调整”按键为盲区参数设置按键,按下该键,数码管切换到当前盲区数值的调整界面,此时每按下“翻页/步进”一次,盲区数值步进10 cm,参数可在0~30 cm循环调整。“F”表示为盲区调整状态,“20”为当前设置的盲区值。再次按下“盲区调整”按键,把设置的盲区数值保存到AT24C02中,数码管又切换到测距显示界面。
系统通过PCF8591实现DAC输出功能,DA输出的电压值取决于超声波测距的结果。当所测距离小于测量盲区时,电压输出为0;当所测距离大于测量盲区,电压输出的值=(所测距离-测量盲区)×0.02,用户可根据DAC电压校准输出来判断是否处于测量盲区。为了正确区分指示本系统的各种功能,系统在测距、数据翻查、参数设置等功能时,分别有L1、L2、L3指示灯来指示工作,供用户直接判别。
本系统功能全面,具有记忆功能,可以查询和记录最近4次测量结果,对测量者做出正确的判断提供依据,还具有盲区参数设置功能,利用盲区值来校准DAC输出电压,用户可根据DAC电压校准输出来判断是否处于测量盲区。本系统有很广泛的使用场合,可以用于建筑工地的测距、泊车辅助系统、智能导盲系统、移动机器人的避障、液位高度的测量等应用场合。