基于单片机的超声波测距仪Word文档下载推荐.docx
《基于单片机的超声波测距仪Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于单片机的超声波测距仪Word文档下载推荐.docx(33页珍藏版)》请在冰豆网上搜索。
它有发射器和接收器之分,主要原理就是利用电效应把电能和超声波相互转换,利用声波介质对被检测物进行非接触式无磨损的检测。
超声波传感器对透明或有色物体,金属或非金属物体,固体、液体、粉状物质均能检测。
本文所研究的超声波测距仪利用超声波指向性强、能量消耗缓慢、传播距离较远、中长距的高精度测距等优点,即用超声波发射器向某一方向发送超声波,将电能转换,发射超声波,同时在发射的时候单片机就开始计时,在超声波遇到障碍物的时候反射回来,超声波接收器在接收到反射回来的超声波回波时,将超生振动转换成电信号,同时单片机停止计时。
超声波测距原理一般采用渡越时间法TOF,设超声波在空气中的传播速度为C,从发射到遇到障碍物反射回来在空气中的传播时间为T,声源与障碍物的距离为L,则易知L=C*T/2,这样可以测出声源与障碍物之间的距离,然后在LED显示屏上稳定的显示出来[1]。
传感器的工作机理是依据压电材料的正逆压电效应,利用逆压电效应产生超声波,即逆压电效应是在压电材料上加上某种特定频率的交变正弦信号,材料就会产生随所加电压的变化规律而变化的机械形变,这种机械形变推动周围介质振动,产生疏密相间的机械波,如果其振动频率在超声范围内,这种机械波就是超声波[1]。
根据设计要求并综合各方面因素考虑,本文决定采用AT89C52单片机作为主控制器,超声波发射电路、超声波接收放大电路、显示电路,并用动态扫描法实现LED数字显示,超声波驱动信号用单片机的定时器完成。
超声波测距仪的系统硬件原理框图如图1-1所示。
微控制器
AT89C52
报警
信号产生驱动
信号放大整型
发生器
接收器
LED显示结果
功能键盘
温度检测
图1-1超声波测距系统硬件原理框图
超声波在标准空气中的传播速度为331.45米/秒,由单片机驱动产生12MHZ晶振,所以此系统理论上可以达到毫米级。
由发射器发送超声波出去,在遇到障碍物反射回来时的回波由接收器检测到信号,然后经过滤波、放大、整形之后送入AT89C52单片机进行计算,并将计算结果显示到LED液晶显示屏上。
超声波发生器可以分为两大类:
一类是用电气方式产生超声波;
另一类是用机械方式产生超声波。
电气方式包括压电型、电动型等;
机械方式有加尔统笛、液和气流旋笛等。
它们所产生的超声波的频率,功率和声波特性各不相同,因而用途也各不相同。
本文属于近距离测量,适合汽车的倒车雷达,故可采用常用的压电式超声波换能器[2]。
2超声波的相关知识
2.1超声波测距仪的主要功能概述[3]:
★实时稳定显示当前测量距离;
★实时稳定显示当前测量温度;
★具有近距离和远距离两种测量模式;
★能够实时报警功能;
★具有开机系统自检功能;
★耗电量低;
★可靠性高;
★高灵敏度和高声压
2.2超声波测距仪的主要技术指标
测量距离:
0.20m-1.3m
测温范围:
-10℃~115℃
测量距离精度:
1cm
实时功率:
0.05W
标准频率:
40kHz
声压级:
120±
3(公式:
S.P.L.=20logP/Pre(dB))
系统发射功率:
1mW(max)
工作电流:
80mA(min)、90mA(max)
输入电源电压:
5V
3系统设计原理[4]
超声波测距其实有很多的方法,包括声波幅值检测法、相位检测法、以及往返时间检测法等等,声波幅值检测法容易受到反射波损耗的映像,相位检测法虽然精度高,但是检测范围有限,所以本系统采用往返时间检测法,其原理就是利用超声波在空气介质中的传播速度,测量声波从发射到遇到障碍物反射回来的时间,根据发射和接收的时间差计算出发射点到障碍物的实际距离,进而达到测距的效果。
测距的公式表示为:
L=C*T/2(3-1)
式中L为被测量的距离长度;
C为超声波在空气中的传播速度;
T为测量距离传播的时间差(T为发射到接收之间时间数值的两倍)。
要想利用超声波准确的测得发射点与障碍物之间的实际距离,那么就应该准确的测得超声波在空气介质中得实际传播速度。
我们知道超声波是要随环境中的气压和介质温度的变化而变化,一般情况下受大气压力的影响非常小,但是受温度的影响确实非常大的,例如在摄氏0度时其传播速度为331.45m/s,在摄氏20度时其传播速度为343.869m/s,在摄氏30度时其传播速度为349.176m/s,具体参考表1。
故要考虑到温度给实际测量带来的影响,尽量使测距准确性大大提高,本方案中采用测量温度的方法来补偿声速,即用测温元件测量实际环境的温度来校正声速,这就是温度补偿法。
其中超声波在空气中的传播速度和温度有如下的关系:
V=331.4+0.607Tm/sT-℃(3-2)
其中V为超声波在该温度下的实际传播速度(单位为m/s),T为摄氏温度。
当温度知道的情况下,通过该式就可以知道该温度下超声波的传播速度了。
表1不同温度下的超声波传输速度
温度/℃
-30
-20
-10
10
20
30
100
声波/(m/s)
313
319
325
331
338
344
349
386
4超声波测距系统的硬件组成
4.1控制芯片的选择[5]
一般情况下采用AT89C51单片机,但是他的资源有限,只有4K的程序存储空间和两个定时器,而它的兄弟模块AT89C52单片机兼容MCS51指令系统,内部集成了8K的可反复擦写的程序存储空间(FlashROM),四个8位的双向I/O口,256x8bit内部RAM,2个串行中断,可编程UART串行通道,中断源增加一个,即额外增加了一个定时器/计数器T2,而且有PDIP、PQFP、TQFP及PLCC等几种封装形式,以适应不同产品的需求。
AT89C52支持串口程序下载,具有操作简便、价格便宜、应用简单等许多优点。
因此我们选用这一型号的单片机作为控制器实现对超声波模组进行控制,然后单片机不停的检测INT0引脚,当INT0引脚的电平由高电平变为低电平时就认为超声波已经返回。
单片机用P1.0端口输出超声波换能器所需的40kHz的方波信号,占空比50%,连续发10个波(3-15个波都可以),然后拉低(或拉高)50mS以上,接着再输出,如此循环。
利用外中断0口监测超声波接收电路输出的返回信号。
采用12MHz高精度的晶振,以获得较稳定时钟频率,减小测量误差,是后面计算的基础。
计数器所计的数据就是超声波所经历的时间,通过换算就可以得到传感器与障碍物之间的距离。
控制电路如图4.1-1所示。
图4.1-1超声波控制电路
4.2超声波发射电路[6]
MAX232是美国MAXIM公司专为串口路通信设计的芯片,它能将TTL电平和RS232电平相互转换,具有功耗低,只需要单一+5V电源供电,供电电流5mA;
内部集成2个RS-232C驱动器,高集成度,片外最低只需4个电容即可工作,所以这里超声波发射电路采用基于MAX232的方波发射电路。
电路前级主要由一块反向器芯片74LS04和超声波发射探头T构成,74LS04内部具有6个独立的反相器,通过将外部管脚的组合连接来实现对单片机发出的超声发射探头激励信号进行功率放大处理;
单片机P1.0端口输出超声波转化器所需的40KHz方波信号,占空比为50%的方波信号,一路通过74LS04内部一级反向器后送到超声波发射探头T的一个电极,另一路经两极反向器后送到超声波换能器的另一个电极。
用这种推挽形式将方波信号反相叠加到超声波换能器的两端,可以将超声波发射强度提高一倍。
同时输出端两路信号都采用两个反向器并联得方式,这样可以提高超声脉冲的驱动能力。
上拉电阻R10、R11一端接上正5V电源,另一端连接超声波发射探头T的一极,一方面可以提高反向器74LS04输出高电平的驱动能力,使发射探头发射超声波的能力更强;
另一方面还可以增加超声波发射探头T的自身阻尼效果,缩短其自由振荡的时间得到更加完整的超声脉冲波形,这样驱动MAX232实现从TTL电平到RS232电平的转换,具体电平转换图4.2-1所示[10]
图4.2-1MAX232电平转换图
图4.2-2基于MAX232的超声波发射电路
由于发射到换能器的电压高,波形比较完整,因此可以达到很高的发射功率与效率,可以测量到比较远的距离,同时用这个电路发射方波,电路工作稳定,适合单电源供电,功耗也非常小。
所以我们采用这个方案作为发射电路。
电路图如图4.2-2所示。
4.3超声波接收电路[7]
超声波接收电路所用的芯片,我们采用SONY公司生产的红外接收专用芯片CX20106A(内部结构如图4.3-1所示),它采用集成接收芯片对超声波回波信号进行放大和整形,由于红外线的载波频率和测距超声波频率40MKz非常接近,且具有很高的灵敏度和较强的抗干扰能力,可以利用它作为超声波接收电路。
外围电路简单易于实现,同时减少了生产调试的麻烦,因此我采用这个接收方案。
图4.3-1CX20106内部结构
当超声波接收头收到发射信号时,便通过CX20106进行前置放大、限幅放大、带通滤波、峰值检波和比较、积分及施密特触发比较得到解调处理后的信号。
7脚为信号输出口,没收到信号时为高电平,收到后变为低电平,之后又恢复高电平。
(a)为接收信号,(b)为有源峰值检波,如图4.3-2所示。
图4.3-2信号图
CX20106A内部集成了前置放大与限幅放大,总增益可达80dB,带通滤波电路,峰值检波,噪声抑制电路,自动增益控制电路和波形整形电路。
芯片CX20106A的2引脚与GND之间连接RC串联网络,它们是负反馈串联网络的一个组成部分,改变它们的数值便能改变芯片内部前置放大器的增益和频率特性,调整外部电阻R6可以的调整它的接收中心频率与增益,当R6阻值越大时,滤波器的中心频率越低。
当取R6=200kΩ时,fn≈42kHz,若取R6=220kΩ,则中心频率f0≈38kHz。
增大电阻R或是通过调整外部的电容C2,都将使负反馈量增大,放大倍数下降,反之则放大倍数增大。
这样便可以调节超声波接收探头R的接收灵敏度。
但电容C的改变会影响到频率特性,一般在实际使用中不必改动,直接使用推荐的参数值R=4.7Ω,C=3.3μF。
它工作稳定,灵敏度高,功耗小,接收回波能力强,所以我采用这个方案作为接收电路。
超声波接收电路如图4.3-3所示。
图4.3-3基于CX20106A的超声波接收电路
4.4温度检测模块[8]
检测模块采用DALLAS公司生产