李世军,周惠芳,金徐欢
(1.湖南工程学院 电气信息学院,湘潭 411101;2.湖南电气职业技术学院,湘潭 411101)
基于单片机的超声波测距仪的研究与设计
李世军1,周惠芳2,金徐欢1
(1.湖南工程学院 电气信息学院,湘潭 411101;2.湖南电气职业技术学院,湘潭 411101)
介绍了一个完整的基于单片机的超声波测距系统的设计,该系统包括超声波发射电路、接收电路、温度采集电路和PC机数据采集系统.经多次实验证明,测距范围为0.4~6 m,误差在±1 cm以内.可以满足移动机器人、智能小车避障等应用要求,具有一定的理论与现实意义.
超声波测距系统;单片机;温度补偿
测距有多种方式,比如微波测距,激光测距,红外线测距和超声波测距等.但是超声波沿直线传播,具有方向性好、穿透力强、传播距离较远、在介质中传播时在不同的分界面上会产生反射波,所以被广泛应用于测量距离、厚度、液位等领域.特别是在物体识别、机械手控制、倒车防撞雷达等方面有着更深的应用.超声波测距属于非接确式的测量方式,对于在黑暗、有毒气、有灰尘、烟雾等恶劣环境下有较强的适用能力.基于这些优点和特点,超声波测距具有广阔的前景,研究以提高测距精度和开辟新的应用场合具有较高的理论与现实意义.
超声波测距的方法多种,如时间渡越法、相位检测法和声波幅值检测法.本设计中采用时间渡越法.即利用S=(v×t)/2来计算被测距离.式中S为收发与被测物间的距离,v为超声波在介质中的传播速度,t为超声波发送到接收的时间间隔.声波在空气中的传播速度为:v=331.4m/s,其中T为环境温度,在测量精度要求高的场合必须考虑温度T的影响.在一般的应用场合可以只通过在软件调整补偿.
超声波传感器是一种换能器,在发射端它把电能或机械能转换为声能,接收端相反.本次设计中采用的是压电式的超声波换能器,利用压电晶体的谐振工作.当它的两极外加脉冲信号,其频率等于压电晶片的固有振荡频率时,压电晶片将会发生共振,并带动共振板振动,产生超声波.反之,如果两电极间未外加电压,当共振板接收到超声波时,将压迫压电晶片作振动,将机械能转换为电信号,就成为超声波接收器.械能转换为电信号,就成为超声波接收器.在超声波电路中,发射端输出一系列脉冲方波,脉冲宽度越大,输出的个数越多,能量越大,所能测的距离也越远.[1]
如图1所示,该系统由STC89C52单片机、超声波发射、超声波接收、温度测量、温度 LCD显示、串口通信卡、上位机等组成.
采用的定时器中断从P1.7口产生40 kHz的方波信号,超声波传感器由74LS04组成的驱动电路实现一定功率的超声波发射.定时器T0中断产生40 kHz的方波信号通过超声波探头将其发射出去,超声波遇见障碍物反射回来,反射回来被超声波接收探头所接收.但是由于超声波探头接收到的信号很微弱很小,所以还必须经过一个放大电路进行放大,因为单片机不能直接接收这样的信号,所以最后再通过波形变换电路将信号转换成单片机能接收的信号进行接收.单片机接收信号后关闭计时器、禁止P1口工作,根据渡越时间法算出距离送LCD显示测量的数据,并通过串口卡通信上到上位机PC机.[2]
图1 超声波测距系统图
如图2所示,超声波发射电路是通过超声波发射探头向测量目标发射出40 kHz的方波,由单片机I/O口P1.7通过定时器定时输出,但其输出功率不够.
将其送入一个由74LS04组成的推挽式功率放大以便使发射距离足够远.[2,3]
图2 超声波发射电路
超声波接收电路接收到回波后转换变成电信号,并对此电信号进行放大、滤波、整形等处理.采用了一块集成电路CX20106A,它是一款红外线检波接收的专用芯片,常用于电视机红外遥控接收器.考虑到红外遥控常用的载波频率38 kHz与测距的超声波频率40 kHz较为接近,并且具有很高的灵敏度和较强的抗干扰能力,适当更改电路电容的大小,可以改变接收电路的灵敏度和抗干扰能力,可以利用它作超声波检测接收电路,如图3所示.第7引脚为输出端,平时为高电平,接收到回波信号时下降成低电平,把它作为单片机的外部中断请求信号,送入单片机P3.3(/INT1)引脚.[4]
图3 超声波接收检测电路
温度采用DS18B20数字温度计,测温范围-55~+125℃,由于芯片采用1-wire总线方式,不需要外围调理电路,可以和单片机直接相连,控制硬件简单易行,可直接通过单片机I/O进行读写数据,本设计将DS18B20直接与单片机P1.2口进行读写.DS18B20正常使用时测温分辨率为0.5℃,当测量系统需要更高的精度时,采取直接读取DS18B20内部暂存寄存器的方法,将DS1820的测温分辨率提高到0.01~0.1℃.其温度与声速的关系表见表1,作为距离计算的修正.[3,4]
表1 温度与声速关系表
串行通信实现上位机PC机与下位机测距板的联络,主要负责测距数据与温度数据的实时上传,以及相应的控制命令和进行人机交互.上位机采用VB6.0进行人机交互界面设计,其测距采集界面如图4所示.并用其MSComm控件实现与下位机简单而高效的串行通信.充分发挥了单片机在实时数据采集图形处理、显示以及数据库管理上的优点.由于上下位机串行口工作电平不一致,它们之间通过MAX232芯片将单片机TT L电平转换为RS232电平,在系统中采用一个串口卡实现电平的转换,当通信距离较大时,串口卡可以将RS232转化为RS485进行远距离通信.
图4 超声波测距仪界面
超声波软件采用模块化的结构编程,主要由主程序、超声波发射程序、超声波接收后的中断服务程序、定时器中断服务程序、温度转换子程序、距离计算程序及显示子程序、数据上传等组成.
超声波发射器通过P1.7发出的40 kHz超声波的同时启动定时器T1计时,经过障碍物反射后,被接收电路接收,经过放大和整形后送到单片机的P3.3(外部中断/INT1)口.单片机接收到发射电路送来的信号即进入外部中断 INT1程序并停止T1计时,测量计时开始与中断之间的时间差,并根据采集来的温度进行温度补偿后,计算出所测距离,将距离送液晶显示和上位机PC机.[4,5]
图5 主程序和中断子程流程图
本文利用STC89C52单片机设计的超声波测距仪结构精简,成本低廉,可靠性强,测距范围为0.4~6 m,误差在±1 cm以内,易于产品化,具有较强的实用价值.采用单对发射和接收器以测量点到点和点到面的距离,如用于液面、井深测量等.采用多对可以测量点到点的距离,并进行方位的确定,如方位入侵报警、汽车防撞及倒车雷达等.
[1]黄 丽.基于Multisim仿真的超声波测距系统的设计与实现[J].湖南工程学院学报,2009,(2).
[2]张 健.超声波测距系统的研究与设计[J].合肥工业大学学报,2004,(6).
[3]李娣娜.一种新超声波测距系统的设计[J].延安大学学报,2008,(3).
[4]李利品.基于DSP的高精度超声波流量控制系统[J].仪表技术与传感器,2009,(3).
[5]王文生.一种高精度超声测距方法的研究[J].传感技术学报,2002,(9).
Research and Design of Instrument for Ultrasonic Distance Measurement Based on MCU
LI Shi-jun1,ZHOU Hui-fang2,JIN Xu-huan1
(1.College of Electrical&Information Engineering,Hunan Institute of Engineering,Xiangtan 411101,China;2.Hunan Electrical College of Technology,Xiangtan 411101,China)
T his paper introduces the design of a complete ultrasonic ranging system based on microcontroller which includs ultrasonic transmit circuit,receiving and magnifying circuit,temperature acquisition circuit and data acquisition of PC.The experiments prove that the metrical range is between 0.4m~6 m and the maximum error is±1cm.It can meet the application requirements of mobile robots and intelligent obstacle-avoidance car,and have certain theoretical and practical significance.
ultrasonic ranging system;MCU;temperature compensation
TP212
A
1671-119X(2011)02-0013-03
2010-11-03
2010年湖南省大学生研究性学习和创新性实验计划项目(299);湖南省教育厅科研资助项目(09C266).
李世军(1982-),男,工学硕士,讲师,研究方向:嵌入式系统.