《超声波传感器测距原理》由会员分享,可在线阅读,更多相关《超声波传感器测距原理(12页珍藏版)》请在金锄头文库上搜索。
1、基于单片机的超声波测距仪设计第 1 页 共 13 页一、超声波测距原理超声波测距原理是通过超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播时碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。超声波在空气中的传播速度为 v ,而根据计时器记录的测出发射和接收回波的时间差 t ,就可以计算出发射点距障碍物的距离 S ,即 :S = v t /2 这就是所谓的时间差测距法。由于超声波也是一种声波, 其声速C与温度有关,表1列出了几种不同温度下的声速。在使用时,如果温度变化不大, 则可认为声速是基本不变的。常温下超声波的传播速度是334 米/秒,但其传播速度
2、V 易受空气中温度、湿度、压强等因素的影响 ,其中受温度的影响较大,如温度每升高 1 , 声速增加约 0. 6 米 / 秒 。 如果测距精度要求很高, 则应通过温度补偿的方法加以校正(本系统正是采用了温度补偿的方法)。已知现场环境温度 T 时 , 超声波传播速度 V 的计算公式为:V = 331.45 + 0.607T 声速确定后, 只要测得超声波往返的时间,即可求得距离。这就是超声波测距仪的机理。基于单片机的超声波测距仪设计第 2 页 共 13 页二、系统硬件电路设计图2 超声波测距仪系统框图基于单片机的超声波测距仪框图如图 2所示。该系统由单片机定时器产生40KHZ的频率信号、超声波传感器
3、、接收处理电路和显示电路等构成。单片机是整个系统的核心部件,它协调和控制各部分电路的工作。工作过程:开机,基于单片机的超声波测距仪设计第 3 页 共 13 页单片机复位,然后控制程序使单片机输出载波为 40kHz的 10个脉冲信号加到超声波传感器上,使超声波发射器发射超声波。当第一个超声波脉冲群发射结束后,单片机片内计数器开始计数,在检测到第一个回波脉冲的瞬间,计数器停止计数,这样就得到了从发射到接收的时间差t;根据公式、计算出被测距离,由显示装置显示出来。下面分别介绍各部分电路:1 、超声波发射电路超声波发射电路如图3所示,89C51通过外部引脚P1.0 输出脉冲宽度为250s , 40kH
4、z的10个脉冲串通过超声波驱动电路以推挽方式加到超声波传感器而发射出超声波。由于超声波的传播距离与它的振幅成正比,为了使测距范围足够远,可对振荡信号进行功率放大后再加在超声波传感器上。图3中T为超声波传感器,是超声波测距系统中的重要器件。利用逆压电效应将加在其上的电信号转换为超声机械波向外辐射; 利用压电效应可以将作用在它上面的机械振动转换为相应的电信号, 从而起到能量转换的作用。市售的超声波传感器有专用型和兼用型,专用型就是发送器用作发送超声波,接收器用作接收超声波。兼用型就是收发一体, 只一个传感器头, 具有发送和接收声波的双重作用, 称为可逆元件。1 2 3 4 5 6ABCD65432
5、1DCBATitleNumber RevisionSizeBDate: 28-Mar-2006 Sheet of File: E:声声声声声声声声声声2声声声声声.ddb Drawn By:P1.0T1 21U1A40693 41U1B40695 61U1C406989 1U1D40691011 1U1E40691213 1U1F4069图3 超声波发射电路超声传感器结构基于单片机的超声波测距仪设计第 4 页 共 13 页超声波发生器T是一个超声频电子振荡器, 当把振荡器产生的超声频电压加到超声换能器的压电陶瓷上时, 压电陶瓷组件就在电场作用下产生纵向振动。压电组件在超声振荡时, 仿佛是一个小
6、活塞, 其振幅很小, 约为(1 10. 2) Lm,但这种振动加速度很大, 约(10 103 ) g n , 于是把电磁振荡能量转化为振动能量, 这种巨大的超声波能量, 沿着特定方向传播出来。其关键技术是使超声波波束变细, 除待测物外不受其它构造物的影响。超声传感器是产生超声波必需的能量转换装置, 它把超声电磁振荡的能量转换为声波。.通过上述超声换能结构, 配以适当的收发电路, 可以使超声能量的定向传输, 并按预期接收反射波,实现超声遥控、测距、防盗等检测功能 。 2、超声波接收电路超声波接收及信号处理电路是此系统设计和调试的一个难点。超声波接收器接收反射的超声波转换为40KHz毫伏级的电压信
7、号,需要经过放大、处理、用于触发单片机中断INT0。一方面传感器输出信号微弱,同时根据反射条件不同信号大小变化较大,需要放大倍数大约为100到5000倍,另一方面传感器输出阻抗较大,这就需要高输入阻抗的多级放大电路,这就会引入两个问题:高输入阻抗容易接收干扰信号,同时多级放大电路容易自激振荡。参考各种资料最后选用了SONY公司的专用集成前置放大器CX20106达到了比较好的效果。CX20106由:前置放大器、限幅放大器、带通滤波器、检波器、积分器、整型电路组成。其中的前置放大器具有自动增益控制功能,可以保证在超声波传感器接收较远反射信号输出微弱电压时放大器有较高的增益,在近距离输入信号强时放大
8、器不会过载。其带通滤波器中心频率可由芯片脚5的外接电阻调节。其主要指标:单电源5V供电,电压增益77 - 79DB , 输入阻抗27 K , 滤波器中心频率30 K- 60 KHz。功能可描述为: 在接收到与滤波器中心频率相符的信号时,其输出脚7脚输出低电平。芯片中的带通滤波器、积分器等使得它抗干扰能力很强。CX20106采用8脚单列直插式塑料封装,内部结构框图如图4。超声波接收器基于单片机的超声波测距仪设计第 5 页 共 13 页能将接受到的发射电路所发射的红外光信号转换成数十伏至数百伏的电信号,送到CX20106的脚,CX20106的总放大增益约为80dB,以确保其脚输出的控制脉冲序列信号
9、幅度在3.55V 范内。总增益大小由脚外接的 R1、 C1决定, R1越小或 C1越大,增益越高。 C1取值过大时将造成频率响应变差,通常取为1uf。 C2为检波电容,一般取3.3uf。CX20106 采用峰值检波方式,当 C2容量较大时将变成平均值检波,瞬态响应灵敏度会变低, C2较小时虽然仍为峰值检波,且瞬态响应灵敏度很高,但检波输出脉冲宽度会发生较大变动,容易造成解调出错而产生误操作。 R2为带通滤波器中心频率 f0的外部电阻,改变 R2阻值,可改变载波信号的接受频率,当 f0偏离载波频率时,放大增益会显著下降, C3为积分电容,一般取330pf,取值过大,虽然可使抗干扰能力增强,但也会
10、使输出编码脉冲的低电平持续时间增长,造成遥控距离变短。脚为输出端,CX20106 处理后的脉冲信号由脚输出给单片机处理从而获得显示输出。图4 CX20106内部结构框图本系统中应用的接收电路见图5 , 当89C51的P1.7为高电平时三级管V1导通,+5V电源通过继电器线圈和V1的发射结到地,使继电器K1接通,R2和R3并联组成5电阻通过C1组成RC电路,控制红外接收专用集成电路CX20106的增益,使其7脚输出一定幅度的电压信号到89C51的P0.2口以触发中断。另外该芯片价格在三到五元,非常节省系统成本。基于单片机的超声波测距仪设计第 6 页 共 13 页图5超声波接收电路3、距离显示电路
11、基于单片机的超声波测距仪设计第 7 页 共 13 页图6 显示电路超声波显示电路如图6所示。是利用单片机的串行输出。只用单片机的TXD,RXD端即可显示数字。三、软件程序设计本系统采用模块化设计,由主程序、发射子程序、接收子程序、定时子程序、显示子程序等模块组成,图8为程序流程图。该系统的主程序处于键控循环工作方式,当按下测量键时,主程序开始调用发射子程序、查询接收子程序、定时子程序,并把测量结果用显示子程序在数码显示器上显示出来。基于单片机的超声波测距仪设计第 8 页 共 13 页图8 软件程序框图定时器中断子程序基于单片机的超声波测距仪设计第 9 页 共 13 页外部中断服务子程序四、具体
12、程序#include#include/*定义数据类型*/#define uint unsigned int#define uchar unsigned char/*定义系统常数*/long int time; /* 时间 */bit CLflag; /* 测量标志 */char cshu; /* 串数 */#define T12us (256-12) /*定时器设初值 T=(256-T12us)*12/12MHZ */*定义功能位,串口用于显示 */sbit VOLCK=P1.0; /* 发射 */sbit MING=P3.2; /* 外部中断 0 检测接收信号 */char idata di
13、sp9; /* 显示数据 */char idata number9; /* 显示数据 */char code table =0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09;/* 码表 0,1,2,3,4,5,6,7,8,9 */基于单片机的超声波测距仪设计第 10 页 共 13 页void dispfb() /* 显示 5 位数据 */ char i;for(i=0;i4;i-) dispi=0xff;cshu=0; /* 传数 */delay(200); /*延时*/;IE=0x80; /* 开中断 */ET1=0; ET0=0;TR1=0
14、; TR0=0;TL1=T12us; TH1=T12us;while(1)key=getkey( ); /* 读键盘 */if(key=0x0fe & CLflag=1 ) /* 测量 */key=0; CLflag=0;cshu=0;TL1=T12us; TH1=T12us;TL0 = 0; TH0 = 0; /* 定时器 0 的初始时间 */TR0=1; /* 启动定时器 0,开始记时 */TR1=1; /* 启动定时器 1,发送信号 */ET1=1;基于单片机的超声波测距仪设计第 12 页 共 13 页while(cshu=10 & CLflag=1) Timetojuli( );dis
15、pfb();uchar getkey( )char flag;uchar key, keytemp;flag=0;keytemp=P1;if(keytemp=0xff) return(255);else flag=1;delay(100);key=P1;if(key=keytemp) return(key);else return(255);五、实验结果及分析表2是利用本文的测距仪进行实际测量的结果。由表中数据可见, 在20150cm 范围内误差相对较小;小于20cm 范围内误差较大,这是因为超声波距离测量存在一定范围的盲区,盲区的出现是因为发出信号必须有一个上升时间, 当距离太近时计算机系统已不能处理迅速返回的反射波信号, 所以距离小于0.2米测量误差明显增加。300cm以后的数据误差明显增大, 这是由于发射功率不够大, 接收到的信号很微弱, 引入了一些干扰因素。但电路引入温度补偿电路后总的实验结果误差在厘米级,基本上可以满足测量要求。基于单片机的超声波测距仪设计第 13 页 共 13 页实际距离/cm20.0 30.0 40.0 50.0 60.0 70.0 90.0 10