您的当前位置:首页正文

超声波测距系统设计

来源:帮我找美食网
超声波测距系统设计

(一) 内容及要求

(1) 设计内容

采用40KHz的超声波发射和接收传感器测量距离。可采用发射和接收之间的距离,也可将发射和接收平行放在一起,通过反射测量距离。

功能:1)LED数码管显示测量距离,精确到小数点后一位(单位:cm)。 2)测量方式可通过硬件开关预置。 3)测量范围:30cm~200cm,

4)误差<0.5cm。

5)其它。 (2) 设计要求

1)掌握传感器的工作原理及相应的辅助电路设计方法。 2)独立设计原理图及相应的硬件电路。

3)设计说明书格式规范,层次合理,重点突出。并附上详细的原理图。

(二)传感器的工作原理

超声波测距原理是通过超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播时碰到障碍物就立即返回来, 超声波接收器收到反射波就立即停止计时。超声波在空气中的传播速度为v,而根据计时器记录的测出发射和接收回波的时间为t ,就可以计算发射点距障碍物的距离s,即: s=vt/2 由于超声波也是一种声波,其声速v 与温度有关,下表列出了几种不同温度下的声速。在使用时,如果温度变化不大,则可认为声速是基本不变的。如

表1 超声波波速与温度的关系表

温度 -30 声速 313 -20 319 -10 325 0 323 10 338 20 344 30 349 100 386

(三)系统框图

1

基于单片机的超声波测距仪框图如图1所示。该系统由单片机定时器产生

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

超声波接收器 放大电路 定时超声波发射器

图1 超声波测距系统框图

单片机控制 显示器 放大电路

(四)单元电路设计原理

1)89C51单片机

5l系列单片机中典型芯片(AT89C51)采用40引脚双列直插封装(DIP)形式,内部由CPU,4kB的ROM,256 B的RAM,2个16b的定时/计数器TO和T1,4个8 b的工/O端I:IP0,P1,P2,P3,一个全双功串行通信口等组成。特别是该系列单片机片内的Flash可编程、可擦除只读存储器(E~PROM),使其在实际中有着十分广泛的用途,在便携式、省电及特殊信息保存的仪器和系统中更为有用。该系列单片机引脚与封装如图2所示。

5l系列单片机提供以下功能:4 kB存储器;256 BRAM;32条工/O线;2个16b定时/计数器;5个2级中断源;1个全双向的串行口以及时钟电路。

空闲方式:CPU停止工作,而让RAM、定时/计数器、串行口和中断系统继续工作。

2

图2 89C51单片机引脚图

掉电方式:保存RAM的内容,振荡器停振,禁止芯片所有的其他功能直到下一次硬件复位。

5l系列单片机为许多控制提供了高度灵活和低成本的解决办法。充分利用他的片内资源,即可在较少外围电路的情况下构成功能完善的超声波测距系统。 2)超声波发射电路

超声波发射电路如图3所示,89C51通过外部引脚P2.0 输出脉冲宽度为250μs , 40kHz的10个脉冲串通过超声波驱动电路以推挽方式加到超声波传感器而发射出超声波。由于超声波的传播距离与它的振幅成正比,为了使测距范围足够远,可对振荡信号进行功率放大后再加在超声波传感器上。

图3中T为超声波传感器,是超声波测距系统中的重要器件。利用逆压电效应将加在其上的电信号转换为超声机械波向外辐射; 利用压电效应可以将作用在它上面的机械振动转换为相应的电信号, 从而起到能量转换的作用。市售的超声波传感器有专用型和兼用型,专用型就是发送器用作发送超声波,接收器用作接收超声波。兼用型就是收发一体, 只一个传感器头, 具有发送和接收声波的双重作用, 称为可逆元件。

3

图3 超声波发射电路

超声传感器结构

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

超声波接收及信号处理电路是此系统设计和调试的一个难点。超声波接收器接收反射的超声波转换为40KHz毫伏级的电压信号,需要经过放大、处理、用于触发单片机中断INT0。一方面传感器输出信号微弱,同时根据反射条件不同信号大小变化较大,需要放大倍数大约为100到5000倍,另一方面传感器输出阻抗较大,这就需要高输入阻抗的多级放大电路,这就会引入两个问题:高输入阻抗容易接收干扰信号,同时多级放大电路容易自激振荡。参考各种资料最后选用了SONY公司的专用集成前置放大器CX40106达到了比较好的效果。

CX20106由:前置放大器、限幅放大器、带通滤波器、检波器、积分器、整型电路组成。其中的前置放大器具有自动增益控制功能,可以保证在超声波传感

4

器接收较远反射信号输出微弱电压时放大器有较高的增益,在近距离输入信号强时放大器不会过载。其带通滤波器中心频率可由芯片脚5的外接电阻调节。其主要指标:单电源5V供电,电压增益77 - 79DB , 输入阻抗27 KΩ , 滤波器中心频率30 K- 60 KHz。功能可描述为: 在接收到与滤波器中心频率相符的信号时,其输出脚7脚输出低电平。芯片中的带通滤波器、积分器等使得它抗干扰能力很强。

CX40106采用8脚单列直插式塑料封装。超声波接收器能将接受到的发射电路所发射的红外光信号转换成数十伏至数百伏的电信号,送到CX40106的①脚,CX20106的总放大增益约为80dB,以确保其⑦脚输出的控制脉冲序列信号幅度在3.5~5V 范内。总增益大小由②脚外接的R1、C1决定,R1越小或C1越大,增益越高。C1取值过大时将造成频率响应变差,通常取为1uf。C2为检波电容,一般取3.3uf。CX40106 采用峰值检波方式,当C2容量较大时将变成平均值检波,瞬态响应灵敏度会变低,C2较小时虽然仍为峰值检波,且瞬态响应灵敏度很高,但检波输出脉冲宽度会发生较大变动,容易造成解调出错而产生误操作。R2为带通滤波器中心频率f0的外部电阻,改变R2阻值,可改变载波信号的接受频率,当f0偏离载波频率时,放大增益会显著下降,C3为积分电容,一般取330pf,取值过大,虽然可使抗干扰能力增强,但也会使输出编码脉冲的低电平持续时间增长,造成遥控距离变短。⑦脚为输出端,CX20106 处理后的脉冲信号由⑦脚输出给单片机处理从而获得显示输出。

本系统中应用的接收电路见图4 , 当89C51的P1.7为高电平时三级管V1导通,+5V电源通过继电器线圈和V1的发射结到地,使继电器K1接通,R2和R3并联组成5Ω电阻通过C1组成RC电路,控制红外接收专用集成电路CX20106的增益,使其7脚输出一定幅度的电压信号到89C51的P0.2口以触发中断。另外该芯片价格在三到五元,非常节省系统成本。

5

图4 超声波接收电路

(五)软件设计

开始 初始化定时器 启动定时器T0 发射超声波 开中断准备接收 声波返回 Y 关闭定时器 N 读取所记数值 图5 主程序流程图

6

本系统采用模块化设计,由主程序、发射子程序、接收子程序、定时子程序、显示子程序等模块组成,图5为程序流程图。该系统的主程序处于键控循环工作方式,当按下测量键时,主程序开始调用发射子程序、查询接收子程序、定时子程序,并把测量结果用显示子程序在数码显示器上显示出来。 软件实现程序见附录一。

(六)完整电路图

完整电路图见附录二。

(七)总 结

由于时间和其它客观上的原因,此次设计没有做出实物。但是对设计有一个很好的理论基础。设计的最终结果是使超声波测距仪能够产生超声波,实现超 声波的发送与接收,从而实现利用超声波方法测量物体间的距离。以数字的形式显示测量距离。超声波测距的原理是利用超声波的发射和接受,根据超声波传播的时间来计算出传播距离。实用的测距方法有两种,一种是在被测距离的两端,一端发射,另一端接收的直接波方式,适用于身高计;一种是发射波被物体反射回来后接收的反射波方式,适用于测距仪。此次设计采用反射波方式。

超声波测距仪硬件电路的设计主要包括单片机系统及显示电路、超声波发射电路和超声波检测接收电路三部分。单片机采用AT89C51或其兼容系列。采用12MHz高精度的晶振,以获得较稳定时钟频率,减小测量误差。单片机控制HC-SR04超声波发射与接收模块进行信号的发射与接收。

在元件及调试方面,由于采用的电路使用了很多集成电路。外围元件不是很多,所以调试应该不会太难。一般只要电路焊接无误,稍加调试应该会正常工作。电路中除集成电路外,对各电子元件也无特别要求。通过这一周的学习,学到了不少的知识!不仅纠正了课程学习过程中出现的许多错误,还在运行protel时验证了自己的一些猜想。在学习的过程中有失败,当然也有困惑,有成功,当然就有喜悦。虽然只是课程设计,但我拿出了自己的全部精力去对待,能学到知识固然值得骄傲,能认识到自己的过错和不足不也是一件幸事吗!做学问也是做人,在做学问的过程中体味做人的道理不也是一种收获吗?记得古语中说:“学,然后知不足”!希我必将更加努力的学习它完善自己。我想这就是我这次做课程设计最大感受吧。

7

参考文献

[1] 梁森,欧阳三泰,王侃夫.自动检测技术与应用[M].北京.机械工业出版社.2006.10.

[2] 单成祥.传感器设计基础——课程设计与毕业设计指南[D].国防工业出版社. [3] 藏日章. 基于AT89C51单片机的超声波测距系统.电气时代[J].2005年第7期. [4]马忠梅. 单片机的C 语言应用程序设计[M]. 北京航天航空大学出版社.2001年.

[5] 刘瑞星.单片机原理及应用教程[M].机械工业出版社.2006年.

8

附录一

软件程序:

#INCLUDE #DEFINE K1 P3_4

#DEFINE CSBOUT P3_5 //超声波发送 #DEFINE CSBINT P3_7 //超声波接收 #DEFINE CSBC=0.034 #DEFINE BG P3_3 UNSIGNED CHAR

CSBDS,OPTO,DIGIT,BUFFER[3],XM1,XM2,XM0,KEY,JPJS;//显示标识 UNSIGNED CHAR

CONVERT[10]={0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F};//0~9段码

UNSIGNED INT S,T,I, XX,J,SJ1,SJ2,SJ3,MQS,SX1; BIT CL; VOID CSBCJ();

VOID DELAY(J); //延时函数 VOID SCANLED(); //显示函数

VOID TIMETOBUFFER(); //显示转换函数 VOID KEYSCAN(); VOID K1CL(); VOID K2CL(); VOID K3CL(); VOID K4CL(); VOID OFFMSD(); VOID MAIN() //主函数 {

EA=1; //开中断

TMOD=0X11; //设定时器0 为计数,设定时器1 定时

9

ET0=1; //定时器0 中断允许 ET1=1; //定时器1 中断允许 TH0=0X00; TL0=0X00; TH1=0X9E; TL1=0X57; CSBDS=0; CSBINT=1; CSBOUT=1; CL=0; OPTO=0XFF; JPJS=0; SJ1=45; SJ2=200; SJ3=400; K4CL(); TR1=1; WHILE(1) {

KEYSCAN(); IF(JPJS<1) { CSBCJ(); IF(S>SJ3) {

BUFFER[2]=0X76; BUFFER[1]=0X76; BUFFER[0]=0X76; }

ELSE IF(S10

{

BUFFER[2]=0X40; BUFFER[1]=0X40; BUFFER[0]=0X40; }

ELSETIMETOBUFFER(); }

ELSE TIMETOBUFFER(); //将值转换成LED 段码 OFFMSD();

SCANLED(); //显示函数 IF(SVOID SCANLED() //显示功能模块 {

DIGIT=0X04;

FOR( I=0; I<3; I++) //3 位数显示 {

P3=~DIGIT&OPTO; //依次显示各位数 P1=~BUFFER; //显示数据送P1 口 DELAY(20); //延时处理

P1=0XFF; //P1 口置高电平(关闭) IF((P3&0X10)==0) //判断3 位是否显示完 KEY=0;

DIGIT>>=1; //循环右移1 位 } }

VOID K1CL()

11

{

SJ1=SJ1+5; IF(SJ1>100) SJ1=30; S=SJ1; }

VOID K2CL() {

SJ2=SJ2+5; IF(SJ2>500) SJ2=40; S=SJ2; }

VOID K3CL() {

SJ3=SJ3+10; IF(SJ3>500) SJ3=100; S=SJ3; }

VOID K4CL() {

SX1=SJ1-1; SX1=SX1/4.5; }

VOID OFFMSD() {

IF (BUFFER[0] == 0X3F) BUFFER[0] = 0X00; }

12

因篇幅问题不能全部显示,请点此查看更多更全内容

Top