第一篇:一种基于超声波的测距系统
摘要
随着科技的快速发展,人们对于超声波的认知已经变的越来越普遍,在近几年来超声波应用技术已经变得成熟起来了,超声波具有定向性、穿透性、反射性以及对于某一方向的集束性等特点。所以,超声波测距技术在此应运而生,超声波测距技术是运用超声波在空气中、水中、固体之间的传播特性来对周围环境的进行测量。本文对超声波测距进行了简介,通过单片机在空气中发射超声波,并且反射回收,分析声波的状况,然后得出障碍物的信息,还介绍了单片机的性能和特点,及超声波测距构想的主要参数和设计,通过一系列的子程序的运算得出被测物体的距离。
关键词
单片机;
超声波;
测距
目录
摘要
第一章:绪论
1.1超声波简介
1.2对于测量方面的简介
1.3 单片机简介 第二章:基本构造
2.1测距原理
2.2 常见超声波传感器
2.3系统参数
2.3.1工作频率
2.3.2 超声波的速度
2.3.3 脉冲的宽度
2.3.4 测量盲区
第三章:硬件的设计
3.1 发射电路
3.2 接收电路
3.3 单片机系统和显示电路
第四章:软件的设计
4.1算法设计
4.2主程序
4.3发射中断程序
4.4接收中断程序
4.5 显示子程序
4.6 距离计算子程序
结束语 参考文献
谢辞
绪论
超声波是一种频率高于2000hz的声波,它具有方向性好,穿透力强,集束性好等众多优点,因此,在近十年的时间中,超声波应用技术得到了很大的发展,超声波是一种基于物理,电子,机械的技术,超声波通过声波的发射、传递、反射、接收的过程完成对物体的测距技术,它可以利用超声波在介质中的传播特性来对密度、湿度、强度、缺失的物体进行测量,其实际原理主要是声波在传播过程中遇到不同的物体,产生了反射、折射、衰减等现象,从而使传播的超声波振幅、波形、频率发生了变化,通过测量这些变化数据,便可得到物体的内部构造情况或距离。它与以前的超声使用技术完全不一样,这种超声波测距技术拥有很多优秀的特点:它可以在不破坏物体结构的情形下进行一种非接触式的测距,探测环境能力极佳,同时也可以进行距离测量。
1.1超声波简介
普通人耳可听到的声波是一种频率为20Hz~20kHz的声波,即为可听声波,对于超出此频率范围的声音,我们把频率高于20000hz的声波称为“超声波”,频率低于20hz的声波称为“次声波”,超声波主要有一下几个优点:
(1)超声波可在气、液、固中传播。在传播的时候,有较强方向功能和能量。
(2)超声波可以传递很强的能量,并且可以对于一些物体进行粉碎处理。
(3)超声波容易产生反射、衰落、等现象,并且容易携带有关物体内部情况的信息。
因此,我们可以利用用超声波共振的特性做成超声波传感器。声波在空气中的速度约为每秒340 米,所以超声波的应用技术在生活中会变得非常简单。
1.2 对于测量方面的简介
超声波测量技术近代在物理、医学、航空、工业、生活等诸多方面有了广泛的运用,它不仅能检测潜藏的安全隐患,还可以为人们治愈疾病,并节约能源、降低成本的作用。超声波和其他的电磁波、光波等的区别,是它拥有了超强的穿透功能。正因为超声波的频率大于20khz,所以超声波成为了一种特殊声波,不仅具有普通声波的反射、传播、扩散、衰减等特性,还具有穿透里强,集向性好的特点,在遇到不同介质可以反射大部分能量,可以是声波检测变得更加方便、迅速。于是,超声波测量技术广泛地在汽车入库、B超检测、方向测距或者施工工地等场合进行使用。
超声波传播时,通过不同物体对声波的反射,用来测量和检验的技术称为超声检测。超声波以脉冲的形式在介质中传播时,会有反射的现象出现,利用这一原理可以对钢材等固体介质进行探测检验;在医学上,可以用于人体的检测,并对疾病进行治愈(如:胆结石)。超声波的共振特性,它可以用于测量轮船底部的腐蚀程度。超声波的衰减特性,可以测出各种材料的特性和功能。若超声波探测到物体时,它可以用来测量运动速度。若以超声波为载体时,可以将它制成水中电话。超声波还可以利用他的特点来检测温度和不合格的物体等。
由于超声波可以在任何介质中传播,我们可以用来了解一些特殊物体的变化,运用超声波技术的设备会变得结构更加简便、成本低廉、使用方便,随着科技的发展,超声波技术会得到广泛的运用。
1.3 单片机简介
计算机迅速的发展,单片机技术也得到了一定的研究,并且逐步称为一门新的技术,对于它的运用也变得成熟起来,特别在这几年中单片机在生产方面形成了重量级的作用。
单片机是一种微型计算机,主要用于控制技术,所以也可称为微型控制器(Microcontroller Unit)。单片机是一块集成电路芯片,它将所有功能集成在一块芯片上,称为单片机(Microcontrollers)。
单片机基本组成部分是中央处理单元、存储器、输入/输出接口、总线、中断系统。
单片机封装图 基本构造
2.1 测距原理
单片机超声波测距是通过不断对发射出的超声波的反射回波的检测,从而测出发射和回收的平均时间差t,然后根据S=Ct/2(C为超声波实际波速),在测量过程中有很多因素影响测距结果:超声波幅度、反射的地域、声波之间的夹角和接收器的灵敏度。
表2-1 温度与波速的关系表
超声波属于声波其中对于声波影响最大的当属于温度的变化。所以当测距的时候必须根据不同的温度来对应出不同的速度,然后可以得出较为精确的距离。
2.2常见的超声波传感器
超声波传感器是一种能将其他能量转变成特定频率的超声波或者将其转化成同频率的其他能。现在的超声波传感器主要分为两种:电声型和动力型。其中压电传感器和静电传感器,属于电声型,动力型可以分为气体和液体。因为传感器工作目的的不同,所以超声波传感器的具体结构可以是不一样的的,各自的器材名称也可以是多样化的。
压电传感器是电声型,零件包括是压电晶片、楔块、接头,是超声波检测中经常见到的电能和声能相互转换的传感器。其中组成压电传感器的材料又可以分为压电陶瓷和近体两种,前者属于锆钛酸铅。而近体则由石英组成。
传感器中的压电晶片受到脉冲激发后产生震动,发出声波脉冲产生逆压电效应,从而用于超声波的发射。当超声波作用时,晶片受到震动引起形变转化成电信号,这就是压电晶体的正压电效应,用于超声波的接受。超声波传感器通常采用双压电陶瓷晶片制成,因为它的耗材少,价格便宜,且对于气体和液体有较强的实用性。
双压电晶体适用与超声波传感器,由AB两个部件构成,当AB之间有交流电压时,若电场方向与极化方向相同时,则方向相反,因此,AB伸缩,形成超声波振动如图 2-1 所示。
内部电路图
传感器内部的压电陶瓷晶片有一个中心频率,在超声波发射时,交流电
压会与他的震动频率相同。
2.3 系统参数
2.3.1 工作频率
传感器的工作频率是测距的主要参数,它的变化影响了声波的传播、反射、吸收等因素。
工作频率大部分由这几点决定的:
(1)当测距要求过高时,声波的损失就会增大,因为介质的吸收和声波的频率比例成正比,所以要降低工作频率。
(2)工作频率变得高,对传感器的方向性,要求是越尖锐则测量结果越准确,因此测量复杂的物体,工作频率要提高。
(3)频率越低对于传感器的尺寸变得越大,技术也越困难,安装的地方也需要更多的空间。
所以,超声波传感器应选择量程中等,工作频率40khz的传感器。
2.3.2 超声波的速度
声速的精确性决定了测距仪的数值的准确,声波随着介质的温度、压力而改变。声速的计算公式为V=331.4+0.607T(mm/ms),T代表了温度的变化,由于实验是在室内,所以超声波的传播速度通过计算公式得出340m/s。
2.3.3脉冲宽度
测距仪的发射脉冲有了一定的测量盲区,同样影响了测量的精度,如果减小发射脉冲宽度,可以提高测量精度,减小测量盲区,同时存在着回收的不便。反之,增大脉冲宽度,则可以使回收变得越发容易。
但在具体的实验中,通过比较了三种脉宽:24μs(1 个 40KHz 脉冲),48μs(2个 40KHz 脉冲),240μs(10 个 40KHz 脉冲),实验结果得知,还是48μs(2个 40KHz 脉冲)的脉冲宽度对于实验更准确。
2.3.4测量盲区
由于脉冲发射器的本身具备了一定的宽度,还有放大器的阻塞,在接近发射脉冲的一段时间内,有一定的缺陷不能呗发现,这被称为盲区。
3硬件的设计
测距仪硬件部分由系统和显示电路、发射电路和接收电路组成。单片机采用的是89S51系列。采用了高精度的晶振,用来获得较为稳固的频率,减少测量误差。单片机用P1.0接口,输出超声波换能器需要的40KHz的信号,使外中断0口监测接收电路输出的返还信号。显示电路则采取4为LED共阳数码管,段码采取74LS245驱动,位码采取PNP三极管9012驱动。
3.1 发射电路
发射电路图如3-1所示,发射电路由反向器74LS04和换能器T所组成,单片机P1.0端口输出40kHz信号,途经一级反向器然后送到超声波换能器的一个电极,另一路经过两级反向器后送到超声波换能器的另一个电极。用这种形式将方波信号送到换能器两端,从而提高了超声波发射的强度。为了提高效率,可以让俩个输出端并联,电阻R10、R11可以提高反向器74LS04输出高电平的驱动效果,还可以提高了超声波换能器的阻尼效果,使其缩短自由振荡的时间。
发射电路原理图
3.2 接收电路
接收电路图
超声波在遇到障碍物反射时,进过接受放大器后,产生了一个低电平信号,通过这个信号触发了单片机的外部中断,然后停止计时,并计算出超声波在介质中的传播时间。
图中的接受电路主要由集成电路、电阻、电感组成。可以按照用处的不同转变电阻、电容,从而改变了电路的灵敏度。
3.3 单片机的系统和显示电路
单片机采取的是AT89S51系列。采用12MHz高精度的晶振,从而有了较为稳固的时钟频率,减少了测量误差。单片机用P1.0端口输出超声波换能器所需的40KHz方波信号,然后利用外中断0口检测超声波接收电路的返回信号。显示电路采取了4位共阳LED数码管,段码采用74LS245驱动,位码采用PNP三极管9012驱动。如图3-4所示 软件的设计
超声波测距器的软件部分由主程序、超声波发生子程序、超声波接收中断程序和显示子程序构成的。因为汇编语言程序有很高的效率,而且可以准确的计算出程序运行的时间,所以可以运用它计算出准确的距离和实际的运行时间。
4.1 算法设计
超声波测距的原理是超声波的发出器t发出一个超声波信号,声波遇到被测物体然后反射回来,被接收器收到,单片机测出超声波的在外发射的时间,从而算出与物体与测距一起的距离,具体的计算公式为d=s/2=(c×t)/2。D为实际距离,S为来回的路程,C为外界温度下的声速,T为来回接收的时间。
4.2 主程序
主程序首先对系统进行初始化,t0设置为16位计数模式,总是允许中断为清零,之后超声波子程序发出一个脉冲,避免超声波通过接收器进行直射波的触发,从而需要延迟0.1ms,才可以打开外中断,其中计数器T0中的数值可以用公式d=s/2=(c×t)/2=172T0/10 000 cm 计算,T0为计数器T0的计数值,测出结果后传送到LED显示,0.5s后再次发出超声波进行重复测量,如图4-1所示。
开始系统初始化开启T0调用显示子程序测距成功标志位为1?Y禁止中断N调用计算距离子程序允许中断标志位清零显示结果0.5秒开启T0
4.3 发射中断程序
超声波发生子程序是通过P1.0端口发出2个超声波脉冲信号(一种具有40kHz的方波信号),脉冲宽度12μs,同时T0当即进行计时。如图是T0中断程序和T1中断程序的流程图。
保护现场重写TO开T1中断开启TO,T1返回
T0中断程序流程图
P1.0取反R4-1→R4NR4=0?Y关闭T1R4←4开启外部中断0返回
T1中断程序流程图
4.4 接收中断程序
超声波测距仪应用外中断检测返回的超生波信号,一旦接到信号,当即进入中断程序,计时器终止计时,并将测距标记位为1。表示是成功的。
如果没检测到回返信号,T0溢出中断会关闭,系统自动标记为2,表示是失败的。
关闭计数器读取TO的值置测距成功标志位为1返回
4.5 显示子程序
首先进行动态显示初始化,然后指针进行选位,选取显示的数,将其变成段码,然后送入段控制器,再进行延时,判断是否是最后一位和是否显示完毕,如果没有则继续修改缓冲区的指针和位码。
动态显示初始化位选-7FH选通数码管读要显示的数位选字右移一位送位选码到数码管修正地址指针显示完毕Y返回N 显示子程序流程图
4.6 距离计算子程序
为了降低编写程序的难度,将计算公式d=(C×t)/2=172×T0/10000 cm,简化为d=17×T0/1000 cm,然后进行两字节无符号数乘法程序,然后调用两次四字节/两字节无符号数除法程序,最后将数据转换成BCD码进行显示。
将要计算的数移入处理单元调用两字节无符号数乘法程序调用两次四字节/两字节无符号数乘法程序将计算所得数转化成十进制BCD码将BCD码移入被显示的单元返回
计算距离子程序
5结束语
近年来,超声波测距技术已经进入了普遍化的应用,国内的测距技术多数使用的是集成电路,这使得仪器的成本价值变得很高。然而以单片机为中心的测距仪可以弥补这一缺陷,并且可以进行显示和报警等多种功能的应用,并且操作十分简单,稳定,本文通过具体的介绍了一种基于单片机的超声波测距仪,简述了,超声波的原理、应用和具体的实现方式。使单片机技术得到了充分的利用,体现了它在控制、操作等领域的优点。
在一个学期的学习过程中,我逐步的了解了单片机的原理,对于超声波的认识,并且在设计的过程中得到了很多的知识,不仅让我将书本上的东西得以应用,还锻炼了我思考问题的能力,并且开扩了我的视野,使我以后学习的过程中具有了一定的经验。
6谢词
首先感谢我的指导老师陈远老师,在设计的过程当中,给予了我悉心的引导和耐心教导。当我遇到问题时,陈老师会指导我如何解决问题的方法,提供我很多思路和专业方面的知识。陈老师会提供我一些资料,也会指点我在哪可以找到更多的资料源。
在探讨问题和解决问题时,老师给了我悉心指导,在他的帮助下,我的毕业设计得以顺利完成。在整个毕业设计中,老师细心的教导,严谨的治学态度,和丰富的专业知识深深的感染我,在我心中留下深刻印象。
在以后的工作与生活中,我将时刻铭记老师的教导,并且会更加积极、努力的学习的。
第二篇:超声波测距总结
超声波测距
超声波传感器用于超声控制元件,它分为发射器和接收器。发射器将电磁振荡转换为超声波向空气发射,接收器将接受的超声波进行声电转换变为电脉冲信号。实质上是一种可逆的换能器,即将电振荡的能量转换为机械振荡,形成超声波;或者有超声波能量转换为电振荡。常用的传感器有T40-XX和R40-XX系列,UCM-40T和UCM-40R系列等;其中T代表发射传感器,R代表接收传感器,40为中心频率40KHZ。
超声波的传播速度
纵波、横波及表面波的传播速度取决于介质的弹性常数以及介质的密度。
1.液体中的纵波声速:
C1=
k/
2.气体中的纵波声速:
C2=
P·/
式中:K——体积弹性模量
——热熔比
P——静态压力
——密度
注:气体中声速主要受温度影响,液体中声速主要受密度影响,固体中声速主要受弹性模量影响;一般超声波在固体中传播速度最快,液体次之,气体中传播速度最慢。超声波测距原理
通过超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播时碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。超声波在空气中的传播速度为v ,而根据计时器记录的测出发射和接收回波的时间差△t ,就可以计算出发射点距障碍物的距离S ,即: S = v·△t /2
这就是所谓的时间差测距法 或:
由于超声波也是一种声波, 其声速C与温度有关,表1列出了几种不同温度下的声速。在使用时,如果温度变化不大, 则可认为声速是基本不变的。常温下超声波的传播速度是334 米/秒,但其传播速度V 易受空气中温度、湿度、压强等因素的影响,其中受温度的影响较大,如温度每升高1 ℃, 声速增加约0.6 米/ 秒。如果测距精度要求很高, 则应通过温度补偿的方法加以校正(本系统正是采用了温度补偿的方法)。已知现场环境温度T 时, 超声波传播速度V 的计算公式为:
V = 331.45 + 0.607T
声速确定后, 只要测得超声波往返的时间,即可求得距离。这就是超声波测距仪的机理。
超声波发生器可以分为两类:
1、使用电气方式产生超声波;
2、用机械方式产生超声波。电气方式包括压电型,磁致伸缩型和电动型等;机械方式有加尔统笛、液哨和气流旋笛等。它们所产生的超声波的频率、功率和声波特性各有不同,因而用途也各有不同。目前较为常用的是压电式超声波发生器,其又可分为两类:(1)顺压电效应:某些电介物质,在沿一定方向上受到外力作用而变形时,内部会产生极化现象,同时在其表面上会产生电荷;当外力去掉后,又从新回到不带电的状态,这种将机械能转换为电能的现象称顺压电效应(超声波接收器的工作原理)。(2)逆压电效应:在电介质的极化方向上施加电场,会产生机械变形,当去掉外加电场时,电介质的变形随之消失,这种将电能转化为机械能的现象称逆压电效应(超声波发射器的工作原理)。
系统框图
超声波发射电路 方案一
利用555定时器构成多谢振荡器产生40KHz的超声波。如下图为555定时器构成的多谢振荡器,复位端4由单片机的P0.4口控制,当单片机给低电平时,电路停振;当单片机给高电平时电路起振。接通电源后,电容C2来不及充电,6脚电压Uc=0,则U1=1,555芯片内部的三极管VT处于截止状态。这时Vcc经过R3和R2向C2充电,当充至Uc=2/3Vcc时,输出翻转U1=0,VT导通;这时电容C2经R2和VT放电,当降至Uc=1/3Vcc时,输出翻转U1=1.C2放电终止、又从新开始充电,周而复始,形成振荡。其振荡周期t1和放电时间t2有关,振荡周期为:
T=t1+t20.7(R3+2R2)C2
f=1/T=1/(t1+t2)1.43/(R3+2R2)C2=40KHz 有上面公式可知,555多谐振荡器的振荡频率由R2,R3,C2来确定。所以在电路设计时,先确定C2,R2的取值,即C2=3300pf,R2=2.7K。再将R2和C2的值代入上式中可得:
R3=1.43/C2·f-2R2 为了方面在实验中使用555芯片的3脚输出40KHz的方波,在这里将其用10K的电位器代替。
为了增大U1的输出功率,将555芯片的8脚接+12v的电压,同时将其复位端4脚接高电平,使用示波器观察555芯片3脚的输出波形,通过调节电位器R3的阻值,使其输出波形的频率为40KHz。
方案二
该超声波发射电路,由F1至F3三门振荡器在F3的输出为40KHz方波,工作频率主要由C1、R1和RP决定,用RP可调电阻来调节频率。F3的输出激励换能器T40-16的一端和反相器F4输出激励换能器T40-16(反馈耦合元件)的另一端,因此,加入F4使激励电压提高了一倍。电容C2、C3平衡F3和F4的输出使波形稳定。电路中的反相器用CC4069六反相器中的四个反相器剩余两个不用(输入端应接地)。电源用9V叠层电池;测量F3输出频率应为40KHz,否则应调节RP,发射波信号大于8m。
方案三
该超声波发射电路由VT1、VT2组成正反馈振荡器。电路的振荡频率决定于反馈元件的T40-16,其谐振频率为40KHz;频率稳定性好,不需做任何调整,并由T40-16作为换能器发出40KHz的超声波信号;电感L1与电容C2调谐在40KHz起作谐振作用。本电路电压较宽(3v至12v),且频率不变。电感采用固定式,电感量5.1mH,整工作电流约25mA,发射超声波信号大于8m。
方案四
该发射电路主要有四与非门电路CC4011完成谐振及驱动电路功能,通过超声波换能器T40-16辐射出超声波去控制接收器。其中门YF1和门YF2组成可控振荡器,当S按下时,振荡器起振,调整RP改变振荡器频率为40KHz;振荡信号分别控制由YF3、YF4组成的差相驱动器工作,当YF3输出高电平时,YF4输出低电平,当YF3输出低电时,YF4输出高电平。此电平控制T40-16换能器发出40KHz超声波。电路中YF1至YF4采用高速CMOS电路74HCOO四与门电路,该电路特点是输出驱动电流大(大于15mA),效率高等;电路工作电压9V,工作电流大于35mA,发射超声信号大于10m。
方案五
本电路采用LM386对输出信号进行功率放大,LM386多用于音频放大,而在本电路中用于超声波发射。如图所示,LM386第1脚和第8脚之间串接的E1和R1,使电路获得较大的增益;TO为单片机输入口的脉冲信号,经功率放大后由5脚输出,驱动探头发射超声波。
超声波接收器模块 方案一
超声波接收传感器通过压电转换的原理,将由障碍物返回的回波信号转换为电信号,由于该信号幅度较小(几到几十毫伏),因此须有低噪声放大、40kHz带通滤波电路将回波信号放大到一定幅度,使得干扰成分较小,其电路如下所示。在此电路中,为了防止在超声波接收器上始终加有一直流信号让其工作导致传感器的寿命缩短,从而加上一隔直电容C4,从而C4和R5构成滤波电路。
在电路中,放大部分采用的是高速型运放TL084。综合考虑了反相放大器、同相放大器和测量放大器的优缺点后,最终选择了同相放大电路。因为同相放大器的理想输入阻抗为无穷大,理想输出阻抗为零,其带负载能力较强等因素。在此电路中,根据同相放大器的闭环增益公式:Af=1+Rf/Rr 由于接收到的信号幅度为几到几十毫伏,所以需要将其放大400多倍使得其接收到的40KHz信号不会被干扰信号给掩盖。为了防止引起运算放大器的自激振荡,在第一级的放大电路中,R7取值为470 K,R8取值为10K,其增益放大: Af1=1+R7/R8=48 在第二级放大电路中,R11的取值为100K,R12的取值为10K,其放大增益: Af2=1+R11/R12=11 两级增益为:Af=Af1·Af2=528 同相放大器的平衡电阻R6和R10的取值均为10K。平衡电阻公式为:
Rp=Rf/(Rf+Rr)C5和R9构成了一阶滤波电路。
方案二
该电路主要有集成电路CX20106A和超声波换能器TCT40-10SI构成。利用CX20106A做接收电路载波频率为38KHz;通过适当的改变C7的大小,可以改变接收电路的灵敏度和抗干扰能力。
工作原理:当超声波接收探头接收到超声波信号时,压迫压电晶体做振动,将机械能转化成电信号,由红外线检波接收集成芯片CX20106A接收到电信号后,对所接信号进行识别,若频率在38KHz至40KHz左右,则输出为低电平,否则输出为高电平。
方案三
双稳式超声波接收电路
电路中,由VT5、VT6及相关辅助元件构成双稳态电路,当VT4每导通一次(发射机工作一次),触发信号C7、C8向双稳电路送进一个触发脉冲,VT5、VT6状态翻转一次,当VT6从截止状态转变成导通状态时,VT5截止,VT7导通,继电器K吸合•••调试时,在a点与+6V(电源)之间用导快速短路一下后松开,继电器应吸合(或释放),再短路一下松开,继电器应释放(或吸合),如果继电器无反应,请检查双稳电路元件焊接质量和元件 参数。
方案四
单稳式超声波接收电路
本电路超声波换能器R40-16谐振频率为40kHZ,经R40-16选频后,将40kHZ的有用信号(发射机信号)送入VT1至VT3组成的高通放大器放大,经C5、VD1检出直流分量,控制VT4和VT5组成的电子开关带动继电器K工作。由于该电路仅作单路信号放大,当发射机每发射一次超声波信号时接收机的继电器吸合一次(吸合时间同发射机发射信号时间相同),无记忆保持功能。可用作无线遥控摄像机快门控制、儿童玩具控制、窗帘控制等。电路中VT1β≥200,VT2≥150,其他元件自定。本电路不需要调试即可工作。如果灵敏度和抗干扰不够,可检查三极管的β值与电容C4的容量是否偏差太大。经检测,配合相应的发射机,遥控距离可达8m以上,在室内因墙壁反射,故没有方向性。电路工作电压3V,静态电流小于10mA。
方案五
在本接收电路中,结型场效应VT1构成高速入阻抗放大器,能够很快地与超声波接收器件B相匹配,可获得较高接收灵敏度及选频特性。VT1采用自给偏压方式,改变R3的阻值即可改变VT1的工作点,超声波接收器件B将接收到的超声波转换为相应的电信号,经VT1和VT2两极放大后,再经VD1和VD2进行半波整流为直流信号,由C3积分后作用于VT3的基极,使VT3由截止变为导通,其集电极输出负脉冲,触发器JK触发D,使其翻转。JK触发器Q端的电平直接驱动继电器K,使K吸合或释放;由继电器K的触点控制电路的开关。
盲区形成的原因及处理
1、探头的余震及方向角。发射头工作完后还会继续震一会,这是物理效应,也就是余震。余震波会通过壳体和周围的空气,直接到达接收头、干扰了检测;通常的测距设计里,发射头和接收头的距离很近,在这么短的距离里超声波的检测角度是很大的,可达180度。
2、壳体的余震。就像敲钟一样,能量仍来自发射头。发射结束后,壳体的余震会直接传导到接收头,这个时间很短,但已形成了干扰。(注:不同的环境、温度对壳体的硬度和外形会有所变化,导致余震时间会略有改变)
3、电路串扰。超声波发射时的瞬间电流很大,瞬间这么大的电流会对电源有一定影响,并干扰接收电路。通常这三种情况情况在每次超声波发射时都会出现,即超声波在发射的时候,是一个高压脉冲,并且脉冲结束后,换能器会有一个比较长时间的余震,这些信号根据不同的换能器时间会有不同,从几百个uS到几个mS都有可能,因此在这个时间段内,声波的回波信号是没有办法跟发射信号区分的.因此,被测物体在这个范围内,回波和发射波区分不开,也就无法测距,从而形成了盲区.。
在硬件方面通常将超声波转换器之间的距离适当增大来减少盲区的范围;如果发射探头和接收探头分开,收发不互相影响,必须要求发射电路和接收电路的地线隔离很好,发射信号不会通过地线串扰过去,否则也是不能减小盲区的。
在软件中的处理方法就是,当发射头发出脉冲后,记时器同时开始记时。我们在记时器开始记时一段时间后再开启检测回波信号,以避免余波信号的干扰。等待的时间可以为1ms左右。更精确的等待时间可以减小最小测量盲区。(注:超声波探头方向角越小、发射头和接收头位置越远,盲区就越小,测量距离也就越小)
第三篇:超声波测距总结报告
电子技术实验课程设计
超声波测距系统
总结报告
自03 胡效赫 2010012351
自03 胡效赫 2010012351
一、课题内容及分析
首先根据课程所给的几个题目进行选择,由于自己最近在做电子 设计大赛的平台设计,希望对超声波测距在定位方面应用有更详尽的了解,所以选择课题三——超声波测距作为课程设计,内容如下:
对课题进行分析:实验提供超声波传感器T40-16和R40-16,利用面包板和小规模芯片搭接电路,实现距离的测量及显示。大致思路即驱动发射端发出超声波,接收端收到返回的脉冲进行处理与计算得到测量距离并通过数码管和蜂鸣器显示。
二、方案比较与选择
由于超声波测距方案原理基本相同,只要能够检测出发射到接收的时间,并通过相应计算就可以得到所测距离。所以问题大致分为驱自03 胡效赫 2010012351 动发射端、接收端检测、间隔时间计算与计算结果显示四部分。具体的方案设计如下:
闸门脉冲源产生基准宽度为T 的闸门脉冲,该脉冲一方面控制计数电路的计数启动和并产生计数器清零脉冲,使计数器从零开始对标准脉冲源输出的时钟脉冲(频率为17KHz)计数。同时开启控制门,超声波振荡器输出的40kHz脉冲信号通过控制门,放大后送至超声波换能器,由发射探头转换成声波发射出去。该超声波经过一定的传播时间,达到目标并反射回来,被超声波换能器的接收探头接收变成电信号,经放大、滤波、电压比较和电平转换后,还原成方波。图中的脉冲前沿检测电路检测出第一个脉冲的前沿,输出控制信号关闭计数器,使计数器停止计数。则计数器的计数值反映了超声波从发射到接收所经历的时间(或距离)。
自03 胡效赫 2010012351
三、模块化设计及参数估算
1、闸门控制模块 设计思路
555振荡电路产生频率为2Hz的脉冲,作为闸门脉冲源。RC微分电路将输出的2Hz脉冲进行微分运算产生脉冲信号,作为计数启动和计数清零的信号,分别控制D触发器的置高端和74LS90的清零端。 参数设计:
555振荡电路T =(R1+2*R2)*C*ln2。其中R1取4.7kΩ,R2接入10kΩ滑动变阻器,最后实测7.51kΩ,C取47uF。RC微分电路R为1kΩ,C为4.7nF
2、超声波发生模块 设计思路
555振荡电路产生频率为40kHz的脉冲,作为驱动超声波发射端 自03 胡效赫 2010012351 的基础脉冲信号。
同时由2Hz闸门信号作为门控(高电平有效)。
再利用电压比较器,对555脉冲信号进行整形,而后输出。 参数设计
555振荡电路T =(R1+2*R2)*C*ln2。其中R1取2kΩ,R2接入 1kΩ滑动变阻器,最后实测440Ω,C取10nF。
3、超声波接收模块 设计思路
电压放大电路,利用LF347放大超声接收端信号
电压比较电路,利用电阻分压设计阈值电压VREF,当没有接收到信
号时V-大于V+,输出为负,当接收到信号时V-小于V+,输出为正。稳压电路,电压比较器输出端接1kΩ电阻,反接5V稳压管接地,自03 胡效赫 2010012351 使没有信号即输出为负时,输出-0.7V电平,有信号即输出为正时,输出5V电平。 参数设计
放大电路电阻值为1kΩ和750kΩ,放大倍数为750。
电压比较器VREF由100kΩ电阻和100kΩ的滑动变阻器分压决定,最终滑动变阻器阻值取为5.68kΩ,VREF取值大致为-0.6V。
4、计数控制模块 设计思路
计数控制模块由,计数启动和计数停止控制组成。由D触发器进行实现 当计数开始时闸门信号的微分电路给出低电平脉冲将Q置高,计数信号有效。而接收到回波后,接收信号由低变自03 胡效赫 2010012351 高,CLK产生上升沿将Q置低,计数信号关闭。
5、计数模块 设计思路
555振荡电路产生17kHz的脉冲型号用来计数 三个74LS90级联,采用十进制接法计数,分别对应米、分米、厘米。
计数信号控制源由计数控制模块的D触发器的Q信号给出 计数信号清零源由闸门控制信号的微分模块经由缓冲器后给出高脉冲清零。 参数设计
555振荡电路T =(R1+2*R2)*C*ln2。其中R1取5.1kΩ,R2接入
47kΩ滑动变阻器,最后实测18.98kΩ,C取2.2nF。
6、报警模块 设计思路
令A[4],B[4],C[4]分别对应米、分米、厘米,同时当模块计数时报 警应该无效,设D触发器输出信号为Q,则 逻辑函数Alarm = A1’A0’B3’B2’B1’Q 自03 胡效赫 2010012351 利用与非、或非及非逻辑运算搭接电路
四、实验电路总图
1、电路原理图
自03 胡效赫 2010012351
2、时序图
3、面包板布局
五、实验结果与实验中出现的问题分析
1、实验结果 结果:基本要求及提高要求全部完成。其中四个地方用到了滑动变阻器分别是三个555的脉冲源(产生2Hz、17kHz和40kHz的方波)和接收模块的电压比较器阈值电压VREF的确定。调试结果的各自03 胡效赫 2010012351 阻值已在模块设计中标明。
2、实验中出现的问题及分析
A.微分电路输出信号的检查
开始分模块调试时,不会测量微分电路输出的脉冲信号,然后不能确定问题出现在下级还是本级。经过老师的提示,只要把示波器显示的波形调到最粗最亮,调成相应扫描速度,可以看到面板上有亮点间歇显示。从而验证微分电路输出信号无误,并且幅值正确。
B.数码管显示不稳定
数码管显示不稳定,多数原因是由于数字电路与模拟电路相互干扰,计数器中混有杂波和高频信号。用示波器测量计数电路的74LS90的信号,发现有17kHz的杂波。首先将模拟地和数字地分开将555振荡电路的地直接由引线接到学习机上,而后数码管开始显示,但仍不太稳定。再在VCC和GND之间跨接0.1uF的电容滤掉杂波。之后数码管稳定显示。
C.信号输出不正确
D触发器输出电平Q在未接受到信号时应该是低电平,但始终是高电平。开始时不确定前级各模块的正确与否,有些停滞,之后确定前级信号正确,D触发器接线正确,而输出信号不对,则一定芯片的问题。换了芯片之后,输出正常。
六、收获、体会和建议
1、收获与体会 本次实验充分体会电路模块设计与调试的过程,对于设计电路和自03 胡效赫 2010012351 测试电路的能力有了更一步的提升。首先,搭接与调试电路时,应该本着自顶向下逐步求精的原则,在理解原理并确定原理正确之后,先对于面包板的布局进行规划,把相应的芯片测试后,插到相应部分,保证后面搭接时方便并且思路清晰。然后,按分模块逐级搭接调试的原则测试电路,保证了每一级的输入信号都是正确的后,如果输出不正确,去检查接线,接线正确后检查芯片是否正常工作。最后,发现信号干扰问题,尝试用滤波,分离数字地和模拟地,以及简单的搭接电容的方法,解决干扰。依照上述方法调试电路,保持一颗正常心态,可以高效并且正确的完成问题。
2、建议 由于整个实验过程中只需要,测量接收波形的上升沿,所以对于模拟电路中波形整形处理部分现对简单。现提出以下课程建议: 建议老师将提高要求的测量距离改为高于3m,这样同学们利用波形放大然后与阈值电压比较的方法就不能实现了,因为相应的杂波干扰也会随之放大,冲过阈值电压,影响结果。所以此时同学应该使用选频电路选出40kHz的波形,控制后面的计数模块,对于模拟电路部分会有更高的锻炼。
附工作日志
8月21日 自03 胡效赫 2010012351 经过周末的预习,查找了关于超声传感器的原理知识和超声测距的相关内容。分析了超声测距的实现方案,并将电路分为各个模块实现,每个模块进行了相应仿真(但有些仿真结果不理想,待硬件实测)。
本日上午首先针对超声测距系统方案中的几个模块与同学进行了讨论,包括方波频率的选择与实现,闸门信号的实现与清零,以及面包板的布局合理性。
而后首先搭接了三个555方波发生器。上午只搭接测试出了,40kHz的方波 本日下午再次对于板子的规划进行思考,并大致划分了区域,把相应用到的芯片放到了相应的位置。然后搭接测试出了2Hz方波。分别测试两种方波的频率均很稳定,效果不错。而后开始搭接超声发射模块的实现,将两种频率的方波进行逻辑运算,经由LS00,信号传至运算放大器LF347,将信号与2.5V电压值进行比较,得到最终的大约0.5s驱动一次超声波发射器的效果。
但是遇到的问题是,当2Hz和40kHz的方波共同输入到LS00中时,对2Hz的方波进行测量,示波器显示的频率很难稳定下来,发现混有杂波,可能是40kHz的杂波,也可能是交流成分。进行了各种测试,重新退到上一步骤,检查芯片的问题,等等。但是问题并没解决,后来怀疑是示波器测量可能不是很准。直接测量最终运放发射的信号,发现效果正常。问题解决。
而后进行超声接收信号接收处理的部分电路的搭接,以及触发器电路的搭接。之后搭出17kHz的脉冲源后,下课。
晚上又把数码显示和蜂鸣器部分搭出来了,明天分模块测试。8月22日
由于昨天已经把各个模块全部搭好,今天开始分模块测试和模块的联调测试。今天下来调试结果:
超声波发射模块调试通过正常运行,并且接收模块可以接收到相应信号,在示波器上显示相应波形。40kHz的555脉冲源正常,2Hz的555脉冲源正常,经过LS00运算后,到LF347正常驱动T40-16,而相应的R40-16接收到反射的超声波信号后,产生较大幅值的波形(较之原有的干扰信号),可以通过放大,与阈值电压比较后得到相应的脉冲信号(没有接收到信号时,信号为0,大于阈值电压,最终输出低电平信号-0.7V;接收到信号后,信号为负,小于阈值电压,最终由于稳压管稳压后输出高电平5V)。即,当调整出较好的阈值电压后接收到超声信号后会产生相应的上升沿信号。
对于闸门信号的作用部分,由74LS74双上升沿D触发器来完成。对2Hz脉冲信号进行微分运算,上升沿时给出正脉冲,经由40106COMS施密特反相器可以得到一直是高电平闸门信号时给出低电平和一直是低电平闸门信号时给出高电平的信号。将LS74的置高端接前者信号,给出低电平脉冲时D触发器被置高,而只有CLK信号给出上升沿后才能将D触发器置低。
!!但是输入信号都测出来了,输出不对哎有木有 所以明天LS74是重点哎有木有!!
而后是计数器显示模块,需要有17kHz的555脉冲源,搞定。与经由闸门信号控制锁存后的Q输出端进行逻辑运算(LS00),结果输出到LS90中进行计数并在数码管中显示。同时从计数的信号端中做组合逻辑实现低于0.2m时报警。同时计数器的清零信号由闸门信号微分运算后COMS施密特反相器整形后得到。
开始没有产生555脉冲信号的时候,将CLK和CLR用学习机模拟,效果很好,接上555后发现数码管不稳,有木有!!
模拟地和数字有干扰有木有!!想办法有木有!!自03 胡效赫 2010012351 数电电子技术实验考核的时候就有这个问题木有解决,明天上午一定要解决有木有!!
8月23日
今天来到实验室后重新整理了思路,调整了心态。理清了各个模块的作用关系,由最初级开始逐级测试,当确定D触发器的输入信号均正常,并且接线正常,而输出不正常,所以果断换了74LS74。突然之间信号变好了,然后数码管开始工作了,无比的开心。直接找助教验收基本实验,助教发现信号并不是很稳定,然后感觉计数器和数码管显示部分仍有杂波干扰,在VCC和GND之间接入0.1uF,信号稳定了,基本实验调试通过。好开心,有木有。而后通过改变阈值电压,使阈值电压接近0V,将距离较远处的返回信号,也作为有效信号。然后通过了提高要求。搞定!
第四篇:超声波测距模块总结报告
超声波测距模块总结报告
董升亮
Senscomp公司的超声波测距系统包括两个部分,分别是测距模块(6500)和静电换能器(600)。前者驱动后者,后者负责发送和接收超声波,之后用户便可根据超声波发收这一时间间隔计算出与目标物之间的距离。经过多次户外实验与优化,目前可实现一片单片机对4个超声波测距模块的控制,并且每个的探测距离都可达到10米左右。
一、超声波测距原理
超声波是指频率高于20khz的机械波。为了以超声波作为检测手段,必须产生超声波和接收超声波。完成这种功能的装置就是超声波换能器或超声波探头。超声波换能器有发送器和接收器,600系列换能器同时具有发送和接收声波的作用。超声波换能器是利用压电效应的原理将电能和超声波相互转化,即在发射超声波的时候,将电能转换,发射超声波;而在收到回波的时候,则将超声振动转换成电信号。
超声波测距原理也很简单,就是测出超声波从发射到遇到障碍物返回所经历的时间,再乘以超声波的速度就可以得到二倍的声源与障碍物之间的距离。
即:D=C*T/2。其中,D为600换能器到障碍物之间的距离;C为超声波此时在空气中的传播速度;T为超声波的发收时间。在空气中,声波的传播速度一般受温湿度的影响,在没有温湿度传感器或对测量精度要求不高的情况下,一般取340m/s。在以上几次实验中,程序中采用C=340m/s。
二、6500驱动模块
我们所采用的这款6500驱动模块,手册上说可以实现6英寸-35英尺(0.152m-10.668m)的准确测距,但由于所采用的600模块是自发自收的,在发送过程中从障碍物返回的信号就无法捕获。另外,超声波换能器有一定的惯性,发送结束后还留有一定的余振,这种余振经换能器同样产生电压信号,扰乱了系统捕捉返回信号的工作。因此,在余振未消失以前,还不能启动系统进行回波接收(要等待2.38ms),以上两个原因造成了超声传感器具有测量一定的测量范围。模块最近可以到测量37cm。当然实际实验过程中会在这些标准上稍有浮动。该模块操作简单,但要特别注意的是它的噪声干扰问题。该模块共有九个引脚如图1。
图1
1引脚:接地
2引脚:BLNK,多返回模式时,用于控制(拉低)ECHO信号 3引脚:不用
4引脚:INIT,拉高启动模块发射超声波。拉低时,ECHO也同时拉低 5引脚:不用
6引脚:OSC,6500模块内部时钟,一般用不到
7引脚:ECHO,当超声波遇到障碍物返回至换能器时,该引脚拉高。该引脚需要一个470KΩ的电阻上拉至Vcc 8引脚:BINH,可使能探测37cm以内的障碍物 9引脚:Vcc,4.5V-6.8V供电,我们采用5V供电 说明:在这9个引脚当中,我们只用到其中的4个(Vcc,GND,INIT,ECHO)。另外一点值得强调的是,由于BLNK和BINH受内部噪声影响比较大,因此这两个引脚直接连接到GND。并且6500模块与单片机控制板之间的连接排线长度尽量要短。
6500驱动模块具有两种工作方式。第一种工作方式测量的是换能器到其前方第一个障碍物之间的距离。第二种工作方式可探测多个障碍物的回波,其区分能力为间隔3英寸以上的障碍物。
图2 单返回模式,控制时序实例
三、600系列换能器
此超声波换能器是集发送与接收一体的一种换能器。传感器里面有一个圆形的薄片,薄片的材料是塑料,在其正面涂了一层金属薄膜,在其背面有一个铝制的后板。薄片和后板构成了一个电容器,当给薄片加上频率为49.4khz、电压为300vacpk-pk左右的方波电压时,薄片以同样的频率震动,从而产生频率为49.4khz的超声波。当接收回波时,6500内有一个调谐电路,使得只有频率接近49.4khz的信号才能被接收,而其它频率的信号则被过滤。
换能器在将电信号转化成声波的过程中,所产生的声波并不是理想中的矩形,而是一个类似花瓣一样形状,发送超声波的波束角大约为30度,见图3。在实际应用中,该波束应为一个立体的圆锥形,这也导致两个问题:
1)随着探测距离的延长,探测障碍物方位的准确性下降。即无法对障碍物进行准确定位。
2)探测距离越远,能量扩散越严重,在障碍物不理想的情况下,返回信号减弱,以至于在标准探测范围内,返回脉冲也达不到600换能器的判断阈值。
图3
四、单片机控制模块
系统采用PIC30F4011控制芯片,同时集成串口和CAN总线两种数据传输方式。该电路共配置了8个6500模块接口,目前已经用到了其中的4个。为了减小相互之间的干扰,每个模块之间都采用了LC滤波电路。同时在每个模块的电源到地之间增加了一个1uF的旁路电容和一个470uF的铝电解电容,前者用来消除内部干扰对BINH引脚的影响,后者起储能作用,这两者视情况可选择使用。其电路连接如图4,PCB布线如图5。两者中的电感用相近引脚间距的电容做了代替。
图4
图5
五、程序控制模块
由于该单片机控制多个超声波测距模块,因此在编程过程中要首先考虑到各个模块之间的相互影响,最基本的要求是某一个模块突然的硬件错误不会对其他模块的正常运行造成影响。最初考虑到在uCOS-II上进行编程,但实施过程中发现要借用互斥信号量与多个邮箱,任务多且复杂,既费时又费力,并且会对超声波往返时间的计时产生影响,同时也使对程序的阅读更加困难。最终放弃了这个方案。
新方案采用多重循环来进行模块控制调度,为避免陷入死循环,程序中采用了goto语句。在此程序中,我们定义了一个整型变量Con6500,让他分别等于1、2、3、4来分别控制这四个模块,同时还用到了3个定时器:
Timer1:用于设置6500模块探测周期。
Timer2:用于记录各个模块超声波往返时间。Timer3:用于防止某一模块超时。
程序中对各个模块的返回引脚均采用查询的方式,整个程序的关键代码如下: int main(void){ //CAN、UART、Timer、IO初始化 Con6500=1;//从第一个模块开始探测 //……
while(1){ StartChk:while(Timer1Lock==1)//有一个6500模块开启
{
while(Con6500==1)//开启的是第一个模块(6500-1)
{
TMR3=0;//为第一个模块计时,以避免其超时
while(1)//查询6500-1返回引脚
{
if(PORTDbits.RD1==1)//ECHO1有返回
{
ECHO1();//完成距离计算及数据发送
LATBbits.LATB8=0;//关闭6500-1超声波换能器
Con6500=2;//下一次6500-2模块发送
Timer1Lock=0;//标记所有模块都关闭
goto StartChk;//等待下一个模块开启
}
else if(TMR3>=WaitTMR3)//如果6500-1超时
{
LATBbits.LATB8=0;//关闭6500-1超声波换能器
Con6500=2;//下一次6500-2模块发送
Timer1Lock=0;//标记所有模块都关闭
goto StartChk;//等待下一个模块开启
}
}
}
while(Con6500==2)//若开启的是第二个模块(6500-2)
{
TMR3=0;//为6500-2计时,避免其超时
while(1)//查询6500-2返回引脚
{
if(PORTEbits.RE1==1)//ECHO2有返回
{
ECHO2();//完成距离计算及数据发送
LATBbits.LATB7=0;//关闭6500-2超声波换能器
Con6500=3;//下一次6500-3模块发送
Timer1Lock=0;//标记所有模块都关闭
goto StartChk;//等待下一个模块开启
}
else if(TMR3>=WaitTMR3)//若6500-2超时
{
LATBbits.LATB7=0;//关闭6500-2超声波换能器
Con6500=3;//下一次6500-3模块发送
Timer1Lock=0;//标记所有模块都关闭
goto StartChk;//等待下一个模块开启
}
}
} //……其它模块
} } } /*定时器1中断服务程序*/
void __attribute__((__interrupt__))_T1Interrupt(void){ IFS0bits.T1IF=0;//清除T1中断标志
if(Con6500==1){
TMR2=0;//超声波收发时间计时开始
LATBbits.LATB8=1;//开启6500-1超声波换能器
Timer1Lock=1;//标记有模块开启
} if(Con6500==2)//判断SonarLock=1是为了防止6500-1不工作
{
TMR2=0;//超声波收发时间计时开始
LATBbits.LATB7=1;//开启6500-2超声波换能器
Timer1Lock=1;//标记有模块开启
} //…… }
六、关于噪声干扰
噪声问题是必须要注意和解决的问题,否则它将影响测距模块的可靠性和准确性,有时甚至会直接导致其无法正常工作。对超声波测距模块产生的干扰主要包括内部干扰和外部干扰。
1、内部干扰
内部干扰主要来自超声波发送时产生的发送脉冲,6500模块的内部电路见图6。
图6 其中TL851是一个数字12步测距控制集成电路。内部有一个420khz的陶瓷晶振,6500系列超声波距离模块开始工作时,在发送的前16个周期,陶瓷晶振被8.5分频,形成49.4khz的超声波信号,然后通过三极管Q1和变压器T1输送至超声波传感器。发送之后陶瓷晶振被4.5分频,以供单片机定时用。在发生脉冲的过
程中,通过示波器观察,会发现在GND和BINH上会有多个尖峰脉冲,其峰峰值有时甚至达到4V,这将导致在发送超声波时,ECHO引脚被突然拉高,从而导致根本无法探测障碍物。其原因为BINH引脚对噪音过于敏感,官方提供的解决办法为将BINH直接连接到地,同时在Vcc与GND之间加1uF的旁路电容。但在实际应用过程中我们发现,即便单个模块调试成功,当将多个6500模块集成在一个板子上同时工作时,仍会有干扰发生从而影响某一个或几个模块的正常工作。经过反复调试,我们发现有必要在6500模块排线的末端加一大容量的铝电解电容来稳定供电电压滤除噪音。
TL852是专门为接收超声波而设计的芯片。因为返回的超声波信号比较微弱,需要进行放大才能被单片机接收,TL852主要提供了放大电路,当TL852接收到4个脉冲信号时,就通过REC给TL851发送高电平表明超声波已经接收。由此可见,当返回超声波信号太弱或者达不到4个返回脉冲时,将不能实现准确测距。
2、外部干扰
外部比较复杂,包括外部事物产生与该超声波类似的噪音;不理想的障碍物对测距的干扰;以及个测距模块之间的相互干扰。
虽然多数超声波传感器的工作频率为50Khz左右,远远高于人类能够听到的频率。但是周围环境也会产生类似频率的噪音。比如,电机在转动过程会产生一定的高频,轮子在比较硬的地面上的摩擦所产生的高频噪音,机器人本身的抖动。这些都将对换能器接收信号造成影响。但这一类噪音出现的几率比较低,有时可以忽略不计。
由于换能器发送的超声波并不是理想的圆柱型,而是开口呈30度的圆锥形。这将导致测距模块对障碍物的方位判断产生误差。即超声波可能会先碰到周围的物体产生返回信号,从而无法准确探测换能器与目标物体之间的距离。这个问题也是在后期实验过程中验证了的。在这种情况下,可采用复合返回模式,但这样又极易造成内部干扰。因此在对测距精度要求不高的情况下,我们还是采用单返回模式。
最后一个要注意的是多模块之间的交叉问题,由于我们所采用的超声波测距模块发射的超声波几乎完全相同,这就导致相互间产生干扰的几率增大,其解决方案为增大模块之间的朝向角,也可以在换能器前加一遮挡物,前提是不影响超声波的发送。
七、实验过程及测试结果分析
实验过程完全没有预想中的那么顺利,看似操作简单的测距模块,至今为止已经耗费了一个多月的时间。总结起来,大部分时间都耗费在了消除噪音上。
第一阶段主要是对第一套测距模块的测试和相关电路的设计修改。但在一开始就遇到了麻烦,主要原因归结于自己的粗心大意和不重视官方材料。以至于在电路设计时忽略了ECHO引脚的上拉电阻,导致无法测得返回信号。由于英语水平并不很高和当时的习惯问题,并未意识到从官方网站上查找相关资料,而是仅仅局限于对电路电气规则的检查。
第二阶段主要集中于对噪声的发现与处理。在相关电路及元件问题解决后,模块仍无法正常工作,具体表现就是ECHO引脚的突然拉高从而导致无法进行正常测量,这也是该超声波测距模块最常见的问题。其原因是BINH引脚对噪声过于敏感,而噪声有来源于模块内部,即在每次发送超声波时产生的脉冲会对供电电压造成影响。经过示波器观察会发现在BINH引脚和GND引脚上有峰峰值(大约为3.6V)较大脉冲信号。我们采取的主要解决办法是将BINH和BLNK引脚在排线末端直接
连接到地,并在Vcc与GND之间加一个1uF的滤波电容。后期实验我们发现,即使这样也会存在问题。
第三阶段主要是对多个6500模块控制程序的编写。由于PIC30F4011控制芯片只有两个外部中断引脚,于是我们选择用查询的方式监测返回信号。经过多次尝试,最终放弃了在操作系统上进行编程。新方案的详细介绍见第五部分:程序控制模块。
第四阶段为对4个模块的组装与调试。由于有先前积累的经验与教训,这一阶段耗时相对较少,主要问题仍然是噪音处理,将个别模块1uF的滤波电容换成了330uF,主要用来稳定改模块的供电电压。实验时,我们将四个6500模块和单片机控制电路安装在小车上,其中两侧各一个,前方两个。为了减震,将4个模块和控制电路固定在了一块泡沫砖上。实验场地前期选在一楼东门口的丁字路口上,后期沿路行进至环校公路。各个6500模块的探测周期设定为1次/秒。
静态测量时,地点选在东门口,测试数据稳定,效果较好。后来选取一10米左右障碍物(楼梯),该障碍物形状很不规范。对4个6500模块进行分别测量测试数据基本稳定,但偶尔会无返回信号,测试数据见附件。在移动测量时,发现有时测得的数据并不反映真实情况,特别是在周围环境比较复杂的情况下,会无法探测到与前方障碍物之间的真正距离。但总体来讲,效果还可以。另外还有一点需要注意,那就是车子不能移动太快,否则将会影响超声波返回信号的接收。
实验至此还存在的不足是,其中的一个模块仍不很稳定,其内部干扰有时会影响正常。一般断电重启就能解决。
八、心得体会
经过这么长时间的锻炼,得到的最重要的一点体会是:不能急功近利,遇事不能浮躁,要想解决问题最终还是要靠静下心来仔细分析。遇到困难不能退缩更不能半途而废,不懂的可以上网查,这也是一个不断学习和不断积累经验的过程。另外实验室的设备齐全,要学会充分利用。
对于烧毁的那个三极管Q1,其原因最终还要归结于TL851芯片的XMIT引脚脉冲持续时间过长,导致Q1长时间导通,而三极管的集电极与发射极又直接与Vcc和GND相连,从而致使短路电流持续时间过长,超过三极管允许极限,进而将其烧毁。
九、附件说明
附件1为东门口静态测试,单位为米。为了便于观察,对串口输出做了规范,1
至4列分别对应1至4个模块测得的数据,空白单元代表无返回数据。
附件2为静态远距(9m-10m)测试结果。
附件3为由东门口行至南楼西侧以及返回所得数据。附件4为该测距系统的相关电路与PCB板图。里面电感用相同引脚电容做了代替。
附件5为PIC30F4011芯片的4模块控制程序。
十、补充
ECHO引脚会出现一个尖峰脉冲影响对返回时间的判断,需要接一104电容加以滤除。
第五篇:超声波测距试验心得(精选)
超声波测距试验心得
/*............................IO口可以由高电平接地拉成低电平,但是不能由低电平接Vcc拉成高电平.............................*/ #include
_nop_();_nop_();_nop_();
} while(--t);} void main(){
EA=1;//开总中断
EX0=1;//开外部中断0 TMOD=0xf1;//采用定时器0的定时模式的工作方式1 /*..............................................这里有一个疑问就是,必须采用定时器的定时模式才能
将TH0和TL0里的数值读出来,而采用计数模式(将0xf1改成0xf5)
就不行
...............................................*/
IT0=1;//外部中断为负跳变触发方式
TH0=0;//定时器高8位和低8位都赋值为0 TL0=0;while(1){ trig=1;//单片机给trig引脚一个20微秒的触发信号
delay10us(2);trig=0;if(distance<0.1)//如果障碍物距离小于10cm,则亮第一位LED led=0;else led=1;
delay10us(6);//延时60微秒
} } /*.....................................................中断服务程序,外部中断的中断服务程序的执行时间可以很长,没有时间的限制,不像定时器中断,中断服务程序执行时间有 一定要求,即在下一次中断请求到来之前本次中断必须执行完毕。.......................................................*/ void wb0()interrupt 0 { TR0=1;//启动定时器,TH0和TL0开始计数
while(echo);//当返回脉冲信号(echo上的高电平脉冲)结束时关闭定时器
TR0=0;
distance=(TH0*256+TL0)*1.08507/1000000*340/2;//计算障碍物距离
//distance=(定时器高8位*256+低8位)*一个机器周期*声速/2 TH0=TL0=0;//清零TH0和TL0,准备下一次测距
}
解释:在不加Q2三极管的情况下你,即Echo直接连接到单片机的IO口,单片机将会检测不到Echo输出的高脉冲信号。单片机的管脚在没有设定的情况下,默认输出高电平。然后看超声波测距模块的时序图,Echo在没有给触发信号的情况下保持低电平,有了触发信号之后,Echo输出一个高电平。按道理说如果将Echo引脚直接连接在单片机的IO口上,该IO口将会被Echo引脚拉为低电平,在Echo输出高脉冲的时候,单片机IO口保持原来的高电平。当Echo为低电平的时候,那么该IO口就会向Echo引脚灌电流。但是在实际电路中,Echo并不能将IO口拉低,我猜原因是Echo接受灌电流的能力太小,灌入的电流过大,导致该脚电平为不确定状态。解决的措施有两个,第一就是直接用外部中断引脚检测“低脉冲”(因为外部中断选用的触发方式是下降沿触发,所以原来的高脉冲信号要加一个三极管反相器,就变成了低脉冲),这样就变成IO口检测低电平了。第二就是上图里的方法,不将Echo直接连接在单片机的IO口上,而是将Echo通过一个PNP型的三极管连接在单片机IO口上。这样当Echo输出低时,三极管导通,单片机的这个IO口就会被三极管的集电极拉为低。当Echo输出高脉冲时,三极管截至,该IO口通过上拉电阻R4保持默认的高电平。这就解决了Echo接受灌电流能力不够的问题。
2016-3-13 张海波