超声波传感器测距原理_第1页
超声波传感器测距原理_第2页
超声波传感器测距原理_第3页
超声波传感器测距原理_第4页
超声波传感器测距原理_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于单片机的超声波测距仪设计第13页共12页一、超声波测距原理超声波测距原理是通过超声波发射器向某一方向发射超声波,在发射时刻的 同时开始计时,超声波在空气中传播时碰到障碍物就立即返回来,超声波接收器 收到反射波就立即停止计时。超声波在空气中的传播速度为V ,而根据计时器记录的测出发射和接收回波的时间差 t ,就可以计算出发射点距障碍物的距离S , 即:S = v t / 2这就是所谓的时间差测距法。由丁超声波也是一种声波,其声速 斫温度有关,表1列出了几种不同温度下 的声速。在使用时,如果温度变化不大,则可认为声速是基本不变的。常温下超 声波的传播速度是334米/秒,但其传播速度V易受空气中

2、温度、湿度、压强等因 素的影响,其中受温度的影响较大,如温度每升高1 C ,声速增加约0. 6米/ 秒。如果测距精度要求很高,则应通过温度补偿的方法加以校正(本系统正是采 用了温度补偿的方法)。已知现场环境温度T时,超声波传播速度V的计算公式 为:V = 331.45 + 0.607T速确定后,只表1声速与温度关系表温度(C)-30- 20-100102030100声速 (米渺)313 !319325 i3323383441 349386要测得超声波往返的时间,即可求得距离。这就是超声波测距仪的机理。二、系统硬件电路设计图2超声波测距仪系统框图基丁单片机的超声波测距仪框图如图 2所示。该系统由

3、单片机定时器产生 40KHZ勺频率信号、超声波传感器、接收处理电路和显示电路等构成。单片机是 整个系统的核心部件,它协调和控制各部分电路的工作。工作过程:开机,单片 机复位,然后控制程序使单片机输出载波为 40kHz的10个脉冲信号加到超声波 传感器上,使超声波发射器发射超声波。当第一个超声波脉冲群发射结束后, 单 片机片内计数器开始计数,在检测到第一个回波脉冲的瞬间,计数器停止计数,这 样就得到了从发射到接收的时间差 t;根据公式、计算出被测距离,由显示 装置显示出来。下面分别介绍各部分电路:1、超声波发射电路超声波发射电路如图3所示,89051®过外部引脚P1.0输出脉冲宽度为2

4、50s , 40kHz的10个脉冲申通过超声波驱动电路以推挽方式加到超声波传感器而 发射出超声波。由丁超声波的传播距离与它的振幅成正比,为了使测距范围足够远,可对振荡信号进行功率放大后再加在超声波传感器上。图3中T为超声波传感器,是超声波测距系统中的重要器件。利用逆压电效应 将加在其上的电信号转换为超声机械波向外辐射 ;利用压电效应可以将作用在 它上面的机械振动转换为相应的电信号,从而起到能量转换的作用。市售的超声波传感器有专用型和兼用型,专用型就是发送器用作发送超声波,接收器用作接 收超声波。兼用型就是收发一体,只一个传感器头,具有发送和接收声波的双重 作用,称为可逆元件。U1 E40694

5、069图3超声波发射电路超声传感器结构超声波发生器T是一个超声频电子振荡器,当把振荡器产生的超声频电压加 到超声换能器的压电陶瓷上时,压电陶瓷组件就在电场作用下产生纵向振动。 压 电组件在超声振荡时,仿佛是一个小活塞,其振幅很小,约为(110. 2) Lm,但这种振动加速度很大,约(10103 ) g n , 丁是把电磁振荡能量转化为振动 能量,这种巨大的超声波能量,沿着特定方向传播出来。其关键技术是使超声波 波束变细,除待测物外不受其它构造物的影响。超声传感器是产生超声波必需的 能量转换装置,它把超声电磁振荡的能量转换为声波。.通过上述超声换能结构, 配以适当的收发电路,可以使超声能量的定向

6、传输,并按预期接收反射波,实现 超声遥控、测距、防盗等检测功能2、超声波接收电路超声波接收及信号处理电路是此系统设计和调试的一个难点。超声波接收器 接收反射的超声波转换为40KH此伏级的电压信号,需要经过放大、处理、用丁触发单片机中断INT0O 一方面传感器输出信号微弱,同时根据反射条件不同信号大 小变化较大,需要放大倍数大约为100到5000音,另一方面传感器输出阻抗较大, 这就需要高输入阻抗的多级放大电路,这就会引入两个问题:高输入阻抗容易接 收十扰信号,同时多级放大电路容易自激振荡。参考各种资料最后选用了SONY司的专用集成前置放大器CX20106S到了比较好的效果。CX2010圳:前置

7、放大器、限幅放大器、带通滤波器、检波器、积分器、整型 电路组成。其中的前置放大器具有自动增益控制功能,可以保证在超声波传感器接收较远反射信号输出微弱电压时放大器有较高的增益 ,在近距离输入信号强时 放大器不会过载。其带通滤波器中心频率可由芯片脚5的外接电阻调节。其主要指标:单电源5俶电,电压增益77 - 79DB ,输入阻抗27 KQ ,滤波器中心频率 30 K- 60 KHz。功能可描述为:在接收到与滤波器中心频率相符的信号时,其输 出脚7脚输出低电平。芯片中的带通滤波器、积分器等使得它抗十扰能力很强。CX2010猥用8脚单列直插式塑料封装,内部结构框图如图 4。超声波接收器 能将接受到的发

8、射电路所发射的红外光信号转换成数十伏至数白伏的电信号,送到CX20106勺脚,CX20106勺总放大增益约为80dB,以确保其脚输出的控制脉 冲序列信号幅度在3.55V范内。总增益大小由脚外接的R1、C1决定,R1越小 或C1越大,增益越高。C1取值过大时将造成频率响应变差,通常取为 1uf。C2为 检波电容,一般取3.3uf。CX20106采用峰值检波方式,当C2容量较大时将变成 平均值检波,瞬态响应灵敏度会变低,C2较小时虽然仍为峰值检波,且瞬态响应 灵敏度很高,但检波输出脉冲宽度会发生较大变动, 容易造成解调出错而产生误 操作。R2为带通滤波器中心频率f0的外部电阻,改变R2阻值,可改变

9、载波信号的 接受频率,当f 0偏离载波频率时,放大增益会显著下降,C3为积分电容,一般取 330pf,取值过大,虽然可使抗十扰能力增强,但也会使输出编码脉冲的低电平 持续时间增长,造成遥控距离变短。脚为输出端,CX20106处理后的脉冲信号 由脚输出给单片机处理从而获得显示输出。图4 CX20106内部结构框图本系统中应用的接收电路见图5 ,当89C51的P1.7为高电平时三级管V1导 通,+5如源通过继电器线圈和V1的发射结到地,使继电器K1接通,R曾"R听联 组成5Q电阻通过C1ffl成R(fe路,控制红外接收专用集成电路CX20106勺增益,使 其7脚输出一定幅度的电压信号到8

10、9C51的P0.2 口以触发中断。另外该芯片价格在 三到五元,非常节省系统成本。图5超声波接收电路3、距离显示电路图6显示电路超声波显示电路如图6所示。是利用单片机的申行输出。只用单片机的 TXDRXD!即可显示数字。三、软件程序设计本系统采用模块化设计,由主程序、发射子程序、接收子程序、定时子程序、 显示子程序等模块组成,图8为程序流程图。该系统的主程序处丁键控循环工作 方式,当按下测量键时,主程序开始调用发射子程序、查询接收子程序、定时子 程序,并把测量结果用显示子程序在数码显示器上显示出来。图8软件程序框图定时器中断子程序外部中断入口卜关外郭中断/诙取时间值卜 1计廓浦结果输出中开外部中

11、断卜返回侦liJ外部中断服务子程序四、具体程序#include<reg51.h>#include<math.h>/*定义数据类型*/#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

12、=P3.2; /*外部中断0检测接收信号*/char idata disp9;/*显示数据*/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 */*/void dispfb() /* 显示5位数据 ( char i;for(i=0;i<5;i+)( dispi=tablenumberi; disp3=disp3+1;/*置小数点*/TI=0;for(i=0;i<6;i+)(SBUF=di

13、spi; while(TI=0);/* 通用延时子程序 */void delay( int j )( int i; for(i=0;i<j;) i+; /* 初始化定时器,CTC0、CTC1用于定时 */ void init_CTC(void ) (TMOD = 0x21;/* 设 CTC1 工作于模式 2 */ET0 = 0;/*不允许 CTC0中断 */void init_INT( )/* 外部中断初始化为高优先级,并开中断*/( IP=0x01;/* 置外部中断INT0优先级为高*/TCON=0; /*设置外部中断0的中断方式为电平触发*/void serve_INT0( ) in

14、terrupt 0(/*外部中断0,用于检测接收信号 */TR0=0;/* 关闭定时器0 */EX0=0;/* 关中断 */ time=(long)TL0;time+=(long)TH0*256;CLflag=1;/* CTC1中断服务程序,12.5us中断一次,用于发射 */void CTC1_INT () interrupt 3(VOLCK=VOLCK;cshu+;void CTC0_INT () interrupt 1(TR0=0;ET0=0;void Timetojuli( )/*将测量的时间转换为距离*/(long i;i=(long)time;i=i*340;/*十米 */i=i/

15、2;number4=i/10000000;i=i-number4*10000000;number3=i/1000000;/* 米 */i=i-number3*1000000;number2=i/100000;/* 分米 */i=i-number2*100000;number1=i/10000;/* 厘米 */i=i-(long)number1*10000;number0=i/1000;/* 毫米 */uchar getkey( ); /* 读键盘 */*主程序*/void main()(int i, key;init_CTC();/* 初始化定时器 */init_INT();/*初始化外部中断

16、*/CLflag=1;/* 测量标志 */for(i=6;i>4;i-) dispi=0xff; cshu=0;/* 传数 */delay(200);/* 延时 */;IE=0x80;/* 开中断 */ET1=0;ET0=0;TR1=0;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的初始时间 */TR

17、0=1;/* 启动定时器0,开始记时*/TR1=1;/*启动定时器1,发送信号*/ET1=1;while(cshu<12);ET1=0;/* 发十个脉冲串 */TR1=0;delay(95);EX0=1;while(!CLflag);if( cshu>=10 && CLflag=1) Timetojuli();dispfb();uchar getkey( )char flag;uchar key, keytemp;flag=0;keytemp=P1;if(keytemp=0xff) return(255);else flag=1;delay(100);key=P1;

18、if(key=keytemp) return(key);else return(255);五、实验结果及分析表2是利用本文的测距仪进行实际测量的结果。由表中数据可见,在20150cm范围内误差相对较小;小于20cm范围内误差较大,这是因为超声波距离 测量存在一定范围的盲区,盲区的出现是因为发出信号必须有一个上升时间,当 距离太近时计算机系统已不能处理迅速返回的反射波信号,所以距离小于0.2米 测量误差明显增加。300cn后的数据误差明显增大,这是由于发射功率不够大,接收到的信 号很微弱,引入了一些十扰因素。但电路引入温度补偿电路后总的实验结果误差 在厘米级,基本上可以满足测量要求。实际距离/cm20.030.040.050.060.070.090.010

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论