超声波测距仪毕业设计

2025-02-28 版权声明 我要投稿

超声波测距仪毕业设计(共8篇)

超声波测距仪毕业设计 篇1

关键词:超声波;测距仪;AT89C52;DS18B20;报警

Design and Realization of ultrasonic range finder based

ABSTRACT The design objective is to design and implement microcontroller based ultrasonic range finder. The main use of AT89C52, HC-SR04 ultrasonic sensor alarm system complete ranging production. We AT89C52 as the main chip, by calculating the round-trip time ultrasound to measure the distance to obstacles in front of, and displayed in the LCD. SCM ultrasonic

transmitter. Then the microcontroller for processing operation to measure the distance and set alarm values are compared to judge distance, when measured distance is less than the set value, AT89C52 issue commands to control the buzzer alarm, and control each member refresh AT89C52 measured values. Because at different temperatures, ultrasonic wave propagation velocity is a difference, so we DS18B20 temperature measurement by the temperature

compensation unit, reducing errors due to temperature changes, and improve measurement

accuracy. Good design can achieve precise range ultrasonic distance within 4m, proven error is less than 3mm.

Keywords:Ultrasonic;Location;AT89C52;DS18B20;Alarm

目录

第一章 前言 ..................................................................................................................................................... 1

1.1 课题背景及意义 .............................................................................................................................. 1

1.1.1超声波特性 .............................................................................................................................. 1

1.1.2超声波测距 .............................................................................................................................. 2

1.2 超声波模块基本介绍 ........................................................................................................................ 3

1.2.1 超声波的电器特性 ............................................................................................................... 3

1.2.2 超声波的工作原理 ............................................................................................................... 5

1.3主要研究内容和关键问题 .............................................................................................................. 6

第二章 方案总体设计 ..................................................................................................................................... 7

2.1 超声波测距仪功能 ............................................................................................................................ 7

2.2设计要求 ............................................................................................................................................. 8

2.3系统基本方案 ..................................................................................................................................... 9

2.3.1方案比较 .................................................................................................................................. 9

2.3.2方案汇总 ................................................................................................................................. 11

第三章 系统硬件设计 ................................................................................................................................... 13

3.1 单片机最小系统 .............................................................................................................................. 13

3.2 超声波测距模块 ............................................................................................................................. 13

3.3 显示模块 .................................................................... 15

3.4温度补偿电路 ................................................................ 15

3.5 蜂鸣报警电路 ................................................................................................................................. 16

第四章 系统软件设计 ................................................................................................................................... 17

4.1 AT89C52程序流程图 ...................................................................................................................... 17

4.2 计算距离程序流程图 ...................................................................................................................... 19

4.3 报警电路程序流程图 ...................................................................................................................... 19

4.4 超声波回波接收程序流程图 .......................................................................................................... 20

第五章 系统的调试与测试 ......................................................................................................................... 21

5.1 安装 .................................................................................................................................................. 21

5.2 系统的调试 ...................................................................................................................................... 21

第六章 总结 ................................................................................................................................................... 23

参考文献......................................................................................................................................................... 24 致 谢........................................................................................................................... 错误!未定义书签。

附录 ................................................................................................................................................................ 26

附录1 整机电路原理图 ........................................................................................................................ 26

附录2 超声波温度和速度的关系 ........................................................................................................ 27

附录3 部分源程序 ................................................................................................................................ 29

第一章 前言

1.1 课题背景及意义

1.1.1超声波特性

众所周知,振动产生声波。通常每秒声波振动的次数被称为频率,单位是Hz。人的听觉范围为20?20,000Hz,即我们无法获取振动频率小于20Hz和大于20,000Hz的声波。所以科学家把声波按照人类的听觉范围进行了分类:振动频率大于20,000Hz的成为超声波,小于20Hz的称为次声波。

超声波是一种超越人类听力极限的声波,频率大于20KHz,是在弹性介质中的机械振荡。超声波能够在固体、液体和气体中传播,不同的传播介质传播的速度不相同。超声波和其他机械波一样,在传播的过程中也会因折射和反射而衰减。超声波有以下特性:

1.波长

通常我们把波的传播速度用波长乘以频率来表示。电磁波传播的速度非常快,高达3×108m/s,但是声波传播的速度很慢,在空气中常温常压下仅为343m/s(20℃、101KPa)。在波传播的速度比较低的情况下,波长非常短,更容易辨识,如果用超声波来测距,也就代表着我们能够在距离和方向上获得更高的分辨率。有了更高的分辨率,才可能使我们在测量过程中得到更高的精度。

2.反射特性

通过捕获在目标上反射的超声波,从而检测到物体的存在。因为金属、水泥、玻璃、木材、橡胶与纸能够反射将近100%的超声波,用超声波能够很轻易地找到这些对象。但是像布匹、棉毛等材料,它本身吸收超声波,用超声波来检测它们很困难。同时,要想探测位于凹凸表面和斜坡表面上的物体,由于被测物的不规则使得反射波变得不规则,测量难度会加大。超声波本身的特性决定了空旷的场所是超声波的理想测试环境,并且被测物体一定要能够反射超声波。

3.温度效应

超声波在空气中传播是随环境温度温度变化的,可以用c =331.5+0.607t(m/s)来表示声波的传播速度。 其中“c”为声波传播速度(m/s),“t”表示温度(℃)。所以,要想精确地测量障碍物的距离,实时检测环境温度并进行补偿是非常必要的,尤其冬季

室内外温差较大,对超声波测距的精度影响很大,此时可用温度补偿模块来减小温度变化所带来的测量误差。考虑到本设计的测试环境是在室内,而且超声波主要是用于实现避障功能,对测量精度要求不高,所以关于温度效应对系统的影响问题在这里不做深入的探讨。超声波在空气中传播时,温度与速度的关系会在附录中,供查阅。

4.衰减

在空气中传播的超声波,会因为在球形表面上发生衍射现象导致能量扩散损失,也会因介质吸收能量造成吸收损失,并且波强衰减量与距离是成正比的。超声波的衰减率还与频率成正比。如图6所示,超声波的频率增高,衰减率就越高,传播的距离也就越短。由此可见超声波的衰减特性直接影响了超声波传播的有效距离。

1.1.2超声波测距

在现实生活中某些特殊场合,有些传统的测距方式存在着难以克服的缺陷,例如电极法测量液位,运用差位分布电极,通过给电或发射脉冲来进行液面检测,由于电极长时间浸泡在液体中,非常容易被腐蚀和电解,进而失去灵敏性。使用超声波测距就能够很好地解决这些问题。当下市面上超声波测距系统存在体积庞大、价格昂贵、精度偏低等种种问题,使其在一些中小规模的测距中难以得到普遍的使用。在这样的背景下,本文设计了一款基于AT89C52单片机的低成本、高精度、微型化的超声波测距仪。

超声波较之于其他机械波,具有以下特有性质:超声波为定向传播,绕射少,反射能力强;超声波衰减很小,穿透能力强,在空气中传播速度较慢,也可在液体固体中传播;当超声波从一种介质入射到另一种介质时,由于在两种介质中的传播速度不同,在介质面上会产生反射、衍射等现象。因此,它在军用,农牧业,医学,工业有广泛的应用。并且能够实现洗涤、焊接、粉碎、测速测距等功能。

虽然目前的技术水平,人类利用超声波传感器的技术成果还是很有限的,但是随着科学技术的飞速发展,超声波传感器的应用领域将越来越广泛。这是一个蓬勃发展的技术和工业领域,有着无限的发展前景。展望未来,超声波传感器在各方面都是一个新的重要的工具,将有巨大的发展空间。在运动测距中将有更高精度的方向定位,以满足社会日益增长的需求。声纳定位的精度的提高,可以满足未来秘密武器进行打击的需要。无需多言,未来的超声波传感器、自动化智能集成联合其他的传感器,可以实现多传感器的一体化协同作业。伴随传感器技术的进步,传感器将具有简单的学习功能,自动确定发展方向的功能,并最终具有创造性。

2

1.2 超声波模块基本介绍

1.2.1 超声波的电器特性

1.声压特性

声压级 (S.P.L.) 是表示音量的单位,利用下列公式予以表示。

S.P.L.= 20logP/Pre (dB)式中,“P”为有效声压 (μbar),“Pre”为参考声压 (2×10-4μbar)如图1所示为几种常用超声波传感器的声压图。

图1 超声波传感器的声压图

2.灵敏度特性

灵敏度是一个用来表示声音接收级的单位,如下式所列。

灵敏度= 20log E/P (dB),此式中,“E”是产生的电压 (V),“P”是输入的声压(μbar)。超声波收发器的灵敏度直接决定系统的测距范围,如图8所示为几种中常见超声波传感器的灵敏度图,从图中可以发现40KHz时传感器的声压级最高,也就是说40KHz时所对应的灵敏度最高。

3

图2 超声波传感器灵敏度示意图

3.辐射特性

把超声波传感器安装在台面上。然后,测量角度与声压 (灵敏度) 之间的关系。为了准确地表达辐射,与前部相对比,声压 (灵敏度) 级衰减6dB的角度被称为半衰减角度,用θ1/2表示。超声波设备的外表面尺寸较小易于获得精确的辐射角度。图3展示的是几种常见的超声波传感器的辐射特性。

图3 超声波传感器的辐射特性

分析以上研究结果不难看出超声波传感器工作在40KHz范围内具有最大的声压级和最高的灵敏度,这为设计中选择合适的超声波传感器指明了方向。

4

1.2.2 超声波的工作原理

市面上常见的超声波传感器多为开放型,

超声波传感器的内部结构如图4所示,复合式振动器巧妙地固定在底座上。这种复合振动器是由谐振器、金属片和电陶片构成的双压电晶片的元件振动器。谐振器是圆锥形的,目标是可以有效辐射因振动而产生的超声波,而且能够有效地聚合超声波于振动器中心。

当电压被施加到压电陶瓷,用于机械形变的电压与频率将会改变。另外,振动会使压电陶瓷产生电荷。运用这个原理,由两片压电陶片或者一片压电陶片和一片金属片组成的振子称作双压电晶片元件,当向其时间电信号时,它将弯曲振动产生超声波。反向操作,即将超声波振动施加到双压电晶片元件,就会产生电信号。

图4 超声波传感器内部结构图

图5 声压在不同距离下的衰减特性

5

1.3主要研究内容和关键问题

因为超声波检测更加快捷、便利,并且运算简便,更易完成实际控制。所以超声波测距在移动机器人领域得到广泛使用。在实际工业运用中,用超声波测距可以使机器人在移动中自动避开障碍物。也因此要求系统必须能够及时获取障碍物的位置信息(距离和方向)。因为超声波测距系统的这些特点,其在车辆倒车雷达的制造上也已被广泛使用。

本设计主要研究通过单片机控制各模块工作,是通过单片机来控制各模块协同工作,控制超声波发射器发射超声波信号,使超声波接收器捕捉辨识回波信号,利用发射回收波信号的时间差,再利用温度补偿函数从而换算测量距离。

生活中运用本设计时,测量距离可能会随时改变,为了及时捕捉改变的距离值,即提高超声波测距仪的灵敏度,通过设定采样周期来实现实时测距。

主要有以下问题需要解决:

1.超声波回波检测

超声波信号发送后,会在障碍物表面进行反射和衍射,有些反射波可能会经过多次反射,超声波接收器会接收到多个回波信号,如何在众多回波中正确辨别是一个难点。

因为本设计研究的是短距离测距,那么如果在发射波后,一段时间内没有接收到回射波,我们就判定为超距,结束本次作业,返回清零,重新开始测距。

2.温度的影响

超声波在空气中传播时,它的速度是受外部温度影响的,我仔细的查阅了不同温度下对应超声波速度值,发现温度会严重影响测量精度。所以使用一种方法将外部温度对超声波测距精度的影响降到最低显得十分迫切。

3.如何报警

当测量距离小于一定范围时,属于危险范围,因为不论是机器人还是汽车,在与障碍物距离很近时,由于惯性原因难以避免与其相撞,所以与障碍物相距一定范围内时,要求系统会自动报警。报警通过什么实现,用什么方式,如何判定,这便成为我研究的另一个问题。我们考虑的是设计的实用性,用何种方法简便快捷的实现是研究重点。

6

第二章 方案总体设计

2.1 超声波测距仪功能

为了实现测距,本设计由硬件和软件两部分组成。主要由MCU控制单元、温度补偿模块、超声波模块、按键输入模块、显示模块、报警模块等组成。在这个设计中的核心模块是单片机。其中硬件有单片机、各功能模块、输入输出设备和各组成电路,软件是所有工作程序的统称。单片机通过系统急性比较处理,从而控制蜂鸣器报警。系统总体的功能方框图如图5所示。

图5系统功能方框图

主控制模块由AT89C52构成,就相当于人的大脑,主要起到控制协调各模块作业的作用。通过超声波发射接收的往返时间差,利用 L= vt/2精确测量出障碍物的距离,并显示在液晶屏上,同时显示当前温度T及该报警设定值。

由AT89C52控制的定时器负责产生超声波脉冲并计时,遇到障碍物后反射, 超声波接收模块对声波进行捕捉,再次计时。然后根据超声波往返的时间差、当前温度下超声波传播的速度代入温度补偿后的算式L=vt/2算得障碍物距离。超声波接收模块以及超声波发射模块就相当于人的眼睛,是获取外部信息最主要的通道。

按键输入模块有四个按键组成,主要作用是设置超声波测距仪的最小报警距离。 测温模块由主要作用是测量实际温度,把数据传输到主控模块,从而提取出相应温度下超声波在空气中传播的速度

显示模块由LCD1602构成,主要作用是显示测距结果、温度、以及最小报警距离。

7

报警模块由蜂鸣报警器组成,主要作用是在所测距离小于设置最小距离时发出蜂鸣、报警。应用如倒车雷达,当车尾离障碍物的实际距离小于一定值后,倒车雷达会报警提示。

信号通过单片机的各个模块处理进行综合分析,实现超声波测距仪的功能。在此基础上,完成系统方案的总体设计,并最后通过硬件和软件实现各功能。并附有硬件电路图、程序流程图、功能框图,特定系统配置、电路的原理与程序设计相伴。该系统的控制是很容易的、可靠的、测距精度高、可读性和流程明了等优势。实现后的作品可用于需要测量距离参数的各种应用场合。

2.2设计要求

考虑到设计的应用,本设计主要有以下设计要求:

1.主控模块

本设计旨在设计实现微型超声波测距仪,语言要求:C语言

低成本的51单片机是很好的选择,要求使用者要熟悉51单片机集成开发环境,单片机的内部结构、资源以及硬件和软件调试设备的基本方法和技能,而且可以使用C语言编写项目文件。

2.测量距离范围:4m

超声波测距仪,由于超声波方向性强、渗透力强、容易得到声能等较集中的优势,因为声衰减问题,因此并不适用于长距离范围。目前主要应用于倒车雷达,导航失明,视力矫正等。

盲人导航主要是判断当前方向的障碍物距离,从而帮助盲人选择正确的路线,此设计可以搭配GPS导航、语音播报等系统共同协助视力障碍者选择正确的前进路线。

视力矫正主要适用于坐姿不正确,读书、看电视、玩电脑离书本和屏幕太近的人群,首先根据实际需要设定报警距离,当使用者超过报警距离后自动报警。

以上都是短距测距,所以本设计4m的测量距离完全可以满足测量需要。

3.误差范围:3mm

超声波测距可能因为障碍物不规则、温度影响等原因影响测量精度,本设计添加了

8

温度补偿模块,大大提高了测量精度,知道老师要求精度优于1%,考虑到在实际中的应用,我查取了相关资料,觉得控制在3mm误差范围内是比较合适且可实现的。

4.温度补偿

自行构建基于单片机的最小系统,完成相关硬件电路的设计实现

5.显示

利用数显装置显示障碍物的距离值(以cm为单位,误差不超过1cm);了解超声波测距原理,温度补偿实现方法。

6.报警

当被测距离小于预定的距离时,向蜂鸣器发送信号报警。

2.3系统基本方案

2.3.1方案比较

1. 主控制器模块

方案1:

系统的核心部件选择一块CPLD(复杂可编程逻辑器件,诸如EPM7128LC84-15),以实现功能的控制和处理。 CPLD具有速度快、易于编程、资源丰富、开发周期短等优点,可以用VHDL语言开发编写。与单片机相比,CPLD在控制上有很大的不足。还有,CPLD的处理速度是异常迅速的,但是超声波测距处理速度的要求不会太高,则对系统处理信息的要求也不会过高,在这一点上,MCU足以胜任了。使用该方案,在控制上会遇到很多困难。出于这个原因,我们不使用这种方案的,所以产生第二个方案。 方案2:

机为系统的核心,用其超声数据处理,以实现其既定的性能指标。进行系统的全面分析,关键在于实现超声波测距,但在这一点上,单片机展示了其优势――控制简单、方便、快捷。其结果是,该微控制器可以充分发挥其资源丰富,有更强大的控制功能和位寻址的操作功能,价格低廉等特点。所以,较为理想的是第二个方案。

综上所述,我们选择了方案2。

2. 超声波模块

9

方案1:

由一块T40-16作为超声波模块。此模块具有1-1000cm非接触式的测距功能,但其造价高,很难有更广泛的应用。故放弃此方案。

方案2:

使用HC-SR04来实现超声波的收发,它可以进行2―400cm的非接触式距离检测,其测距误差不超过3mm。该模块包含反射超声波的超声波发射器、接收回波的接收器和控制电路。其物美价廉,测距精度高,故采用第2方案。

3. 电源模块

出于本设计使用便捷性的考虑,选择便携电源供电,故提出以下两种供电方案。 方案1:

采用12V蓄电池向系统供电。蓄电池拥有很强的电流驱动能力,和稳定的电压输出性能。但是蓄电池的体积太大,使用非常不方便。所以我们放弃了这个方案。

方案2:

采用3节1.5 V干电池共4.5做电源,经过实验验证系统工作时,单片机、传感器的工作电压稳定能够满足系统的要求,而且电池更换方便。

综上所述采用第2套方案。

4. 显示模块

方案1:

数码管显示。由于数字显示速度快、简单易用、简洁的显示等特点使它得到广泛应用。在这里我们需要显示的是测得的距离值和温度值以及报警距离的设置,不足以满足使用需要,因此我们放弃了此方案。

方案2:

使用LCD1602液晶显示屏。由于其清晰的液晶显示屏、丰富的内容、清晰地显示信息、便于使用、显示速度快等优点已被广泛使用。对于此系统我们要求不仅能显示测量距离、温度,还要显示报警距离的设定,故用物美价廉的LCD1602显示,充分发挥出LCD的显示优势。因此我们选择了此方案。

10

5. 温度补偿模块

方案1:

使用PT100温度传感器用于温度补偿电路。 PT100铂电阻传感器是利用其随温度变化的阻值、并显现出一定的函数关系的特点来进行温度补偿的,具有抗震动性、稳定性、精度高、耐高压等特点。但其操作较为复杂。

方案2:

温度补偿电路使用DS18B20作为温度传感器。通过“一线”总线(1-Wire是一种独特的数字信号的总线协议,独特的电源线和信号线的复合一起只使用一个口线;每个芯片独有的编码,支持网络寻址和零功耗等待等,这条总线需要的硬件连线最少)。DS18B20数字温度输出这种独特的方法允许多个DS18B20容易建立传感器网络,从而提供更多地可能性给整个测量系统的建立和组合。这已经比其他的温度传感器在转换时间、测量精度、分辨率、传输距离等有了长足的进步,为用户提供了更便捷的使用和更让人满意的结果。

相比之下,DS18B20数字温度直接输出,无需采取纠正措施,故选择方案2。

6. 报警模块

方案1:

使用语音芯片进行提示,优点可以自由设定要提示的声音。缺点使用复杂,需要专门的编程软件,成本高控制复杂,不便于普及。

方案2:

采用蜂鸣器提示,电路简单实用,可靠性高。

综上所述我们选择方案2。

2.3.2方案汇总

我们最终确定了如下方案:

1、主控芯片采用AT89C52单片机作为主控制器。

2、使用HC―SR04超声波模块

11

3、用3节干电池供电。

4、用LCD1602显示。

5、采用DS18B20做温度补偿。

6、使用蜂鸣报警器报警

12

第三章 系统硬件设计

3.1 单片机最小系统

对单片机的认识源于大一时电子爱好者协会的一次讲座。当时大三的学长们在做智能车,精彩的演讲和有趣的知识吸引了我,也让我对单片机产生了兴趣。他告诉我,单片机就相当于人的大脑,它不能像电脑那样做出特别复杂的运算,但它足以完成很多操作任务。他当时用的也是51单片机,因为感觉性能比较稳定,运算速度快,而且物美价廉。后来通过大三对单片机课程的学习,进一步对AT89C52了解,因此本次设计选用AT89C52作为主控制器。主控制系统电路如图6所示。

图6 单片主控电路

单片机通过发送信号来控制主控制电路协调超声波发射模块,超声波接收模块,显示模块,温度模块,报警模块。

超声波测距仪中各模块主要由单片机主控电路进行控制和协调,从而有条不紊的进行工作。

3.2 超声波测距模块

使用现成的超声波模块HC―SR04, 它的工作原理是:向IO口TRIG发送信号,加大于10us的高电平;该模块能够自动发送8个频率40KHz 的方波,且处于工作状态是检测是否有回波信号;如有返回信号,会在IO口向ECHO传输一个高电平信号,此高电平延续的时间便是超声波的往返时间。l(测试距离)=v(声速)t(高电平时间)/2。实物如下图7。其中VCC能够提供4.5V电源,GND为接地,TRIG可以触发输入信号,

ECHO

13

则为含有回波信号的四条线。

图7 超声波模块实物 图8 超声波接口

T/R-40-12型超声波传感器的震荡频率为40KHz,传播10米超声波信号强度便衰减到40个声压级,此时超声波接收探头就很难接收到回波信号。因此,从理论上分析,本设计超声波测距部分的实际范围是10cm―400cm,理想的避障范围是10cm―100cm,所以实际壁障安全距离应设在50cm―80cm之间。

图9 避障原理

图9中,超声波指向性地发送一段超声波并计时,超声波经过在空气中传播后,遇到障碍物反射回来被超声波接收器捕捉到,同时停止计时。利用时间差计算法算出距离。

14

图10 超声波接口电路图

3.3 显示模块

显示模块采用数LCD1602,连接图如图所示

图11 LCD显示电路

显示模块主要用来显示测量的距离值、温度传感器测量的温度值以及最小的报警距离。

3.4温度补偿电路

温度补偿电路采用DS18B20传感器,P2.4接DS18B20数据总线,由单片机控制DS18B20温度转换和数据的传输,并且将10k的`上拉电阻连接到数据总线。该系统采用外接电源

15

DS18B20的优点是I / O接口不需要强拉,总线控制器并不需要在温度很高的情况下转换。因此转换在可以允许的范围内,单线总线上附加数据的传输,如图15所示的硬件结构。

图12温度补偿电路DS18B20

3.5 蜂鸣报警电路

如图13所示,蜂鸣报警电路由蜂鸣器、三极管、接到单片机上P13引脚上的电阻组成。

图13 蜂鸣报警电路图

16

第四章 系统软件设计

4.1 AT89C52程序流程图

如图14所示为超声波测距单片机AT89C52程序流程图。

图14 系统软件的整体流程图

17

流程图具体细分如下:

1、系统初始化

单片机AT89C52、LCD1602、蜂鸣报警器、超声波测距模块通过上电复位并自行运行单片机清零程序。

2、发射超声波

自动读取超声波测距程序,AT89C52控制HC―SR04指向性地发射超声波并且记录时间,待捕捉到回波时终止计时,算得回波时间。

3、判断是否检测到回波

超声波接收电路出于运行状态。如超声波接收电路收到回波,则将信号发送到单片机并再次计时,通过温度补偿后的算式算得障碍物当前距离;如超声波接收电路未在设定时间收到回波,则返回。

4、显示

显示距离、当前温度、设置的报警距离。

5、是否小于超声波报警距离

将测得距离与报警值进行比较,如小于报警值,则进行报警。

6、再次检测等待下次报警

18

4.2 计算距离程序流程图

图15 计算距离程序流程图

首先调用温度函数进行温度补偿,得到当前温度下的超声波传播速度v;然后调用时间函数t,即超声波发射与超声波回波的时间差;再将以上函数代入算式=vt/2算得当前温度下障碍物的距离;最后返回。

4.3 报警电路程序流程图

首先调用测量函数l,然后与报警设定值进行比较,如测量值l小于报警设定值0.5m,则向蜂鸣器发送报警信号,蜂鸣器进行报警;如测量值l大于报警距离0.5m,则不报警,返回调用测量函数。

19

图16报警电路程序流程图 图17 超声波回波接收程序流程图

4.4 超声波回波接收程序流程图

如图17所示,首先单片机控制超声波发射器发射超声波,同时计时开始,超声波接收器处于工作状态,如接收到回波,则再次计时,计算超声波往返时间差t;如未收到超声波回波,则返回超声波放射,重新发射并计时。

20

第五章 系统的调试与测试

5.1 安装

1.检查元件

按电路图购买好元件后,首先需要检测元件是否完好。按照各种元件检测的方法分别进行检测,这项任务虽然重复繁琐,但是我觉得这是必做的工作,因为只要有一个元件出了问题,设计就不能实现它的功能。同时需要细心对照原理图,使其一一对应,多次检查确保正确后才可以上件、焊件,以防因元件错误不便修正,导致功能无法实现。

2.放置、焊接各元件

出于对本设计便携的要求,选用了正好可以容纳所有器件的小块洞洞板。然后依照原理图对应放置各元件,此过程中先安放、焊接低层元件,最后焊高层的和要求较高的元件。特别要注意易损元件的焊接,我把它们放在最后,同时要注意集成芯片上焊接不能连续焊接超过10s,并且注意芯片的安装方向。

5.2 系统的调试

打开电源开关,电源指示灯亮起,LCD1602正常显示。距离0.90m,温度28°C,设定报警距离0.5m。向障碍物进一步靠近。

21

当靠近后,距离显示为0.44m,发出蜂鸣警报。

软件调试正常,屏幕正常显示,正常工作。

经过多次测试调试,与实际温度对比、实际距离对比,该设计能够在一定范围内稳定的工作,并测出距离,并且误差小于3毫米。设计成功。

22

第六章 总结

在台老师的悉心指导下,自己从初拿题目的一头雾水,到一步步地学习、设计、改正,再改正,到最后完成本设计,这个过程让我收获良多。

这是我的学生生涯中最后一次完成作业,一份特别的作业。学校的教育是有限的,更重要的是我在这个过程中培养的独立思考、独立完成任务的能力以及终生学习的信念。我觉得这才是一所高等学府应有的教育模式,人脑不是计算机,也不是储存器,比起存储,我相信现在的一台普通电脑就比人一辈子记忆量还大。我认为大脑是一个特殊的信息加工处理器,较之电脑,它拥有更多地创造性以及无限可能。我想求学这么多年,可能学习、锻炼的正是这种能力。在信息爆炸的年代,知识在飞速的更新,有可能我们现在学习的知识已经过时很多年,但为什么还要学习这些知识,这种行为并不是没有意义的,它让我们学会了学习方法,在掌握前人知识的基础上,我们可以更好更快地创造。

这次经历,对于我个人的成长来说意义深远。这个过程不像我最初想的那么简单,原以为可以一边工作一边完成设计的我,也辞掉了刚刚入门的工作,专心地投入其中。专注本身就是一种历练,本身也是人的一种优秀的品质。

大一的时候,自己对于大学的一切都很新鲜,着迷,先后参加院学生会,创业大赛等组织及活动,丰富了自己的课余生活,也在实践与学习中加深了对世界、人生、价值的思考。大二经历了一年的颓废,基本上课余时间都在寝室打游戏,挂了科,付出了代价。大三时迷恋上了市场营销、心理学,先是看了三十二本世界各领域名人的传记,从初中高中时的模仿到了总结分析,认识到成功的路虽不同,但是成功者的许多特质都是相同的,然后开始全心扎入市场营销的学习中,拜读了科特勒、泰勒、德鲁克等名师大家的许多著作,同时自己的三观有了新的提升,但这期间由于想法极端,耽误了大学学业。由于大三的积累,到了大四就有些急于求成了,想尽快融入社会,实现自我价值。却忘记了应该先把应该走的路走好,才能走自己想走的路。

这次宝贵的经历,让我明白,路是走出来的,不是想出来的。我会把我对梦想的渴望,拆分成一步步可以执行的计划,按部就班地完成。

23

参考文献

[1] 宋文绪. 传感器与检测技术[M]. 北京: 高等教育出版社, .

[2] 余锡存. 单片机原理及接口技术[M]. 西安: 西安电子科技大学出版社, .

[3] 李全利. 单片机原理及接口技术[M]. 北京: 北京航空航天大学出版社, 2004.

[4] 薛均义, 张彦斌. MCS-51系列单片微型计算机及其应用[M]. 西安: 西安交通大学出版社, .

[5] 徐爱钧, 彭秀华. 单片机高级语言C51应用程序设计[M]. 北京: 北京航空航天大学出版社, .

[6] 康华光. 电子技术基础(模拟部分)[M]. 北京: 高等教育出版社, 2004.

[7] 胡萍.超声波测距仪的研制[J]. 计算机与现代化,,7(10):21~23.

[8] 时德刚,刘哗. 超声波测距的研究[J]. 计算机测量与控制,,9(10):31~33.

[9] [美]J.马库斯. 电子电路大全[M]:卷1,日用电路. 北京:计量出版社,1985.

[10] 苏长赞. 红外线与超声波遥控[M]. 北京:人民邮电出版社,1993.7.

[11] 张谦琳. 超声波检测原理和方法[M]. 北京:中国科技大学出版社,1993.10.

[12] 九州. 放大电路实用设计手册[M]. 沈阳:辽宁科学技术出版社,2002.5.

[13] 樊昌元,丁义元. 高精度测距雷达研究[J]. 电子测量与仪器学报,2000,9(8):3537.

[14] 苏伟,巩壁建. 超声波测距误差分析[J]. 传感器技术,2004,3(4):17~20.

[15] 赵保全. 中国集成电路大全[M].北京:国防工业出版社,1985.

[16] 肖景和. 数字集成电路应用精粹[M]. 北京:人民邮电出版社,2003. [17] 陈晓文. 电子线路课程设计[M].北京:北京电子工业出版社.2004.

[17] 陈卿,侯薇. 家电控制与检测用集成电路[M].北京:中国计量出版社,2005. [20] 何希才. 传感器技术及应用[M]. 北京:北京航空航天大学出版社,2005.

[18] 余成波. 传感器与自动检测技术[M]. 北京:高等教育出版社,2004.

24

25

附录

附录1 整机电路原理图

26

附录2 超声波温度和速度的关系

27

28

附录3 部分源程序

温度补偿程序 void init2 {

//T2CON=0x0c;

RCAP2H=(65536-5)/256; RCAP2L=(65536-5)%256; TH2=(65536-5)/256; TL2=(65536-5)%256; EA=1; ET2=1; TR2=1;

// PT2=1; //T2}

void main() {

init1(); //xianshi(); //init2(); //T2tx=0;

IT0=0; //init(); //while(1); }

void timer1() interrupt 3 {

tx=~tx; k++; if(k==3) { k=0; TR0=0;

设为高优先级 液晶初始化 温度字母 初始化 外部中断低电平触发定时器初始化 29

TR0=1;

delaynus(6); //除共振 EX0=1;

//for(d=0;d

void int0() interrupt 0 {

IE0=0; //中断触发位 EX0=0; //关中断 TR1=0; ET1=0; TR0=0; ET0=0;

date=TH0*256+TL0; date+=500; if(TZ>=0&&TZ

jl=(date*0.161); }

if(TZ>10&&TZ

jl=(date*0.169); }

if(TZ>20&&TZ

jl=(date*0.172); }

if(TZ>30&&TZ

jl=(date*0.174); }

30

if(TZ>40&&TZ

jl=(date*0.175); }

xianshic();

for(d=800;d>0;d--); TH0=0x00; TL0=0x00; ET1=1; TR1=1; O++; if(O==100) { O=0; TR1=0; ET1=0; TR2=1; ET2=1; }

}

void timer0() interrupt 1 //{ TR1=0; TR0=0; TH0=0X00; TL0=0X00; TR1=1; }

void timer2() interrupt 5 { TF2=0; EXF2=0; TR2=0;

31

计时

ET2=0;

xianshi(); //温度字母 readyread(); TL=readonechar(); TH=readonechar(); TZ=TH*16+TL/16; xianshiwen(TZ); delay(10); TR1=1; }

#include //调用单片机头文件

#define uchar unsigned char //无符号字符型 宏定义 变量范围0~255 #define uint unsigned int #include #include

//数码管段选定义 0 1 2 3 4 5 6

0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff};

7 8 9 //断码

uchar code smg_du[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90, //数码管位选定义

uchar code smg_we[]={0xe0,0xd0,0xb0,0x70};

uchar dis_smg[8] ={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8}; uint code wendu_buchang1[46] = {

//温度补偿表格

// 0-9度 //10-19度 //20-29度 //30-39度

//40-45度

331,332,333,333,334,334,335,336,336,337, 337,338,339,339,340,341,341,342,342,343, 343,344,345,345,346,346,347,348,348,349, 349,350,351,351,352,352,353,354,354,355, 355,356,357,357,358,358 };

sbit smg_we1 = P3^4; sbit smg_we2 = P3^5; sbit smg_we3 = P3^6; sbit smg_we4 = P3^7;

32

ET1=1;

//无符号整型 宏定义 变量范围0~65535

//数码管位选定义

sbit dq = P2^4; //18b20 IO口的定义 uint temperature ; // sbit c_send = P3^2; sbit c_recive = P3^3;

//超声波发射 //超声波接收

sbit beep = P2^3; //蜂鸣器IO口定义 uchar smg_i = 3; //显示数码管的个位数 bit flag_300ms ;

long distance; //距离 uint set_d; //距离 uchar flag_csb_juli; //超声波超出量程

uint flag_time0; //用来保存定时器0的时候的 uchar menu_1; //菜单设计的变量

/***********************小延时函数*****************************/ void delay_uint(uint q) { while(q--); }

/**********************1ms延时函数****************************/ void delay_1ms(uint q) { uint i,j; for(i=0;i

/**********************处理距离函数***************************/ void smg_display() {

dis_smg[0] = smg_du[distance % 10]; dis_smg[1] = smg_du[distance / 10 % 10]; dis_smg[2] = smg_du[distance / 100 % 10] & 0x7f; }

/***************把数据保存到单片机内部eeprom中****************/ void write_eeprom()

33

{

SectorErase(0x2000);

byte_write(0x2000, set_d % 256); byte_write(0x, set_d / 256); byte_write(0x2058, a_a); }

/******************把数据从单片机内部eeprom中读出来*****************/ void read_eeprom() {

set_d = byte_read(0x2001); set_d

set_d |= byte_read(0x2000); a_a = byte_read(0x2058); }

/**************开机自检eeprom初始化*****************/ void init_eeprom() {

read_eeprom(); if(a_a != 1) { set_d = 50; a_a = 1; write_eeprom(); } }

/********************独立按键程序*****************/ uchar key_can; //按键值 void key() //独立按键程序 {

static uchar key_new;

key_can = 20; //按键值还原 P2 |= 0x07;

if((P2 & 0x07) != 0x07)

//按键按下

34

//先读

//新的单片机初始单片机内问eeprom

{

delay_1ms(1); //按键消抖动 if(((P2 & 0x07) != 0x07) && (key_new == 1)) {

//确认是按键按下

key_new = 0; switch(P2 & 0x07) {

case 0x06: key_can = 3; break; case 0x05: key_can = 2; break; case 0x03: key_can = 1; break; } } } else key_new = 1; }

/*******************数码管的位选******************/ void smg_we_switch(uchar i) { switch(i) {

case 0: smg_we1 = 0; smg_we2 = 1; smg_we3 = 1; smg_we4 = 1; break; case 1: smg_we1 = 1; smg_we2 = 0; smg_we3 = 1; smg_we4 = 1; break; case 2: smg_we1 = 1; smg_we2 = 1; smg_we3 = 0; smg_we4 = 1; break; case 3: smg_we1 = 1; smg_we2 = 1; smg_we3 = 1; smg_we4 = 0; break; } }

/***********************数码显示函数***************************/ void display() {

static uchar i; i++; if(i >= smg_i)

35

//得到k2键值 //得到k3键值 //得到k4键值

i = 0;

smg_we_switch(i); P1 = dis_smg[i]; }

/***********************18b20初始化函数************************/ void init_18b20() { bit q; dq = 1; dq = 0; dq = 1; q = dq; dq = 1; }

/*******************写18b20内的数据*********************/ void write_18b20(uchar dat) { uchar i; for(i=0;i

//写数据是低位开始

dq = 0;

//把总线拿低写时间隙开始

//把总线拿高 //给复位脉冲 //750us

//把总线拿高 等待 //110us

//读取18b20初始化信号 //200us

//把总线拿高 释放总线

delay_uint(1); //15us delay_uint(80); delay_uint(10); delay_uint(20);

//位选 //段选

dq = dat & 0x01; //向18b20总线写数据了 delay_uint(5); // 60us dq = 1; dat >>= 1; } }

/*******************读取18b20内的数据*********************/ uchar read_18b20()

36

//释放总线

{

uchar i,value; for(i=0;i

//把总线拿低读时间隙开始 //读数据是低位开始 //释放总线 //开始读写数据

value >>= 1; if(dq == 1) value |= 0x80;

delay_uint(5); //60us 读一个时间隙最少要保持60us的时间 }

return value; }

/******************读取温度的值、读出来的是小数***************/ uint read_temp() { uint value; uchar low; init_18b20();

//在读取温度的时候如果中断的太频繁了,就应该把中断给关 //初始化18b20

了,否则会影响到18b20的时序

write_18b20(0xcc); //跳过64位ROM write_18b20(0x44); //启动一次温度转换命令 delay_uint(50); init_18b20();

//500us //初始化18b20

//返回数据

write_18b20(0xcc); //跳过64位ROM write_18b20(0xbe); //发出读取暂存器命令 EA = 0;

low = read_18b20(); //读温度低字节 value = read_18b20(); //读温度高字节 EA = 1; value

//把温度的高位左移8位

//把读出的温度低位放到value的低八位中 //转换到温度值

37

value *= 0.0625;

return value; }

//返回读出的温度

/*********************小延时函数********************/ void delay() {

_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); }

/*********************超声波测距程序************************/ void send_wave() {

c_send = 1; delay(); c_send = 0; TH0 = 0; TL0 = 0; TR0 = 0; TR0=1; while(c_recive) {

flag_time0 = TH0 * 256 + TL0;

if((flag_time0 >40000)) //当超声波超过测量范围时,显示3个888 {

38 //执行一条_nop_()指令就是1us

//10us的高电平触发

//给定时器0清零

//关定时器0定时 //当c_recive为零时等待

while(!c_recive);

//当c_recive为1计数并等待

TR0 = 0; flag_csb_juli = 2; distance = 888; break ; } else {

flag_csb_juli = 1; } }

if(flag_csb_juli == 1) { TR0=0; //

//关定时器0定时 //读出定时器0的时间

distance =flag_time0; 0.017M 算出来是米

if(temperature

distance *= wendu_buchang1[temperature] / 2.0 * 0.0001; // 0.017 = 340M / 2 = 170M = 0.017M 算出来是米

else

distance *= 358 / 2.0 * 0.0001; // 0.017 = 340M / 2 = 170M = 0.017M 算出来是米

if((distance >500)) {

distance = 888; } } }

/*********************定时器0、定时器1初始化******************/ void time_init() {

EA = 1;

//开总中断

TMOD = 0X11; //定时器0、定时器1工作方式1

39

distance *= 340 / 2 * 0.0001; // 0.017 = 340M / 2 = 170M =

//距离 = 速度 * 时间

//如果大于3.8m就超出超声波的量程

ET0 = 1; TR0 = 1; ET1 = 1; TR1 = 1; }

//开定时器0中断 //允许定时器0定时 //开定时器1中断 //允许定时器1定时 1

/****************按键处理数码管显示函数***************/ void key_with() {

if(key_can == 1) //设置键

{

menu_1 ++; if(menu_1 >= 3) {

menu_1 = 0; smg_i = 3; //只显示3位数码管 }

if(menu_1 == 1) {

smg_i = 4; //只显示4位数码管 } }

if(menu_1 == 1) //设置报警

{

if(key_can == 2) {

set_d ++ ; //加1

if(set_d >400) set_d = 400; }

if(key_can == 3) { set_d -- ;

//减1

if(set_d

40

set_d = 1; }

dis_smg[0] = smg_du[set_d % 10];

//取小数显示

dis_smg[1] = smg_du[set_d / 10 % 10] ; //取个位显示 dis_smg[2] = smg_du[set_d / 100 % 10] & 0x7f ; //取十位显示 dis_smg[3] = 0x88; //a write_eeprom(); } }

/****************报警函数***************/ void clock_h_l() {

static uchar value; if(distance

value ++; //消除实际距离在设定距离左右变化时的干扰 if(value >= 2) {

beep = ~beep; //蜂鸣器报警 } } else {

value = 0; beep = 1; } }

/****************主函数***************/ void main() { beep = 0;

//开机叫一声

delay_1ms(150); P0 = P1 = P2 = P3 = 0xff;

41 //保存数据

//取消报警

send_wave(); //测距离函数

smg_display(); //处理距离显示函数 time_init(); //定时器初始化程序 init_eeprom(); //开始初始化保存的数据 send_wave(); send_wave(); while(1) {

if(flag_300ms == 1) {

flag_300ms = 0;

temperature = read_temp(); //先读出温度的值 clock_h_l(); //报警函数 send_wave();

//测距离函数

if(menu_1 == 0)

smg_display(); //处理距离显示函数 if(menu_1 == 2) {

dis_smg[0] = 0xff;

dis_smg[1] = smg_du[temperature % 10]; //取温度的个位显示 dis_smg[2] = smg_du[temperature / 10 % 10] ; //取温度的十位显示 dis_smg[3] = 0xff; } } key(); {

key_with(); } } }

/********************定时器1中断服务程序********************/ void time1_int() interrupt 3

42 //测距离函数 //测距离函数

//显示温度

//按键函数

if(key_can

//按键处理函数

{

static uchar value;

//定时2ms中断一次

TH1 = 0xf8;

TL1 = 0x30; //2ms display(); //数码管显示函数

value++; if(value >= 150) { value = 0; flag_300ms = 1; } }

43

毕业设计(论文)原创性声明和使用授权说明

原创性声明

本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。

作 者 签 名: 日 期: 指导教师签名: 日 期:

使用授权说明

本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。

作者签名: 日 期:

44

学位论文原创性声明

本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。

作者签名: 日期: 年 月 日

学位论文版权使用授权书

本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。

涉密论文按学校规定处理。

作者签名: 日期: 年 月 日

45

导师签名: 日期: 年 月 日

超声波测距仪毕业设计 篇2

关键词:AT89S51单片机,SRF08模块,超声波,测距仪

随着社会的不断进步, 汽车逐步进入到普通家庭, 汽车中的各种电子设备越来越方便化和人性化, 这其中倒车雷达是保证汽车安全性能的一个重要电子模块。现在市场上所使用的倒车雷达其实就是一种常见的超声波测距仪, 驾驶者在倒车时, 启动倒车雷达, 在单片机的控制下, 有装在车尾的超声波探头发射超声波, 当遇到车后有障碍物时, 产生回波信号, 超声波接收头接收到回波信号后经过单片机进行数据处理, 通过计算时间差就可以测量出两者之间相隔的距离。同时, 还可以通过显示模块或发声模块向外输出信号, 提示驾驶者后方障碍物的距离, 使其对倒车动作有个预先判断。由此可以看出超声波测距是当前非常流行的一种非接触式的测距方式, 其测距方式不易受外界影响, 更适宜在有强电磁波、灰尘或烟雾的环境中进行测量, 而且对于一些透明的物体更有其优越性。相比于激光测距和微波测距, 超声波的测量精度不是很精密, 但其硬件电路容易实现, 结构简单, 造价低廉, 在一些倒车雷达, 流量测量, 液面监控, 物体变形检测等方面还是有广泛的应用。

1 系统设计要求和设计思路

本系统设计采用AT89S51单片机作为核心控制芯片, 使用SRF08型超声波测距模块对障碍物位置进行检测。当检测到障碍物距离超声波模块小于5米时, 系统指示灯亮起, 并发出单次提示音;当障碍物继续靠近, 距离超声波模块小于3米时, 系统的蜂鸣器开始发出间隔不同的连续报警音, 距离越近报警音的间隔越小, 直到报警音成为长音报警声。在发出报警声的同时, 通过液晶显示器显示当前的距离, 方便使用者有一个量化的数据。

1.1 超声波测距技术介绍

超声波是指振动频率大于20KHz以上的声波, 由于其振动的频率非常高, 超过了人耳听觉的频率范围, 因此人们将这种听不见的声波叫做超声波。超声波具有聚束、定向及反射、透射等特性, 利用超声波的这些特性以及与物体作用产生的各种效用而设计的传感器叫做超声波传感器, 由于其检测方便、迅速, 计算方法简单且精度较高, 所以经常在使用在距离测量方面。

超声波传感器根据原理不同可以分为压电式、电磁式和磁致伸缩式等。其中, 压电式超声波传感器使用最为常见, 它是根据压电效应的原理制作而成, 既可以作为发射器也可以作为接收器使用。压电式超声波传感器是由压电晶片、吸收块、保护膜、引线等组成。当作为发射器时, 给传感器两级加上一个频率等于压电晶片固有振荡频率的脉冲信号时, 压电晶片将会发生振动, 继而向外发出超声波;当作为接收器时, 传感器两级不加电压, 当其接收到超声波时, 压电晶片随之振动, 并将机械能转换为电信号。超声波模块测距原理是根据发出超声波后到检测到回波信号的时间t来计算传感器和障碍物的距离, 由于已知声波的速度, 其计算公式如下:距离=340*t/2。

1.2 SRF08型超声波测距模块简介

SRF08型超声波测距模块采用I2C总线接口设计, 可以与多种单片机配合使用, 其使用方便, 操作方法完全按照I2C总线协议来处理。SRF08型超声波测距模块的工作特性如下:工作电压为+5V;工作电流最大为50m A, 典型值为30m A;工作频率为40KHz, 距离范围为3cm—6m;探测半径大于2m时, 敏感度为3cm;当输入10us的TTL脉冲信号时, 将产生超声波信号;回波脉冲也是TTL电平信号;可以设置为人工神经网络模式。由两个超声波探头和基础板组成, 其中引出5个引脚与外界通信与控制, 这5个引脚分别是VCC, SDA, SCL, NC, GND。SRF08型超声波测距模块可以设置为测距模式和ANN模式两种工作模式, 本文主要介绍测距模式。在测距模式下, 每向命令寄存器写入一次命令就会启动一次测距, 同时清除回波记录缓冲区中的数据, 测量得到的结果按照顺序以2个字节为单位依次存入寄存器中。如果要修改SRF08型超声波测距模块地址, 则需要向I2C总线上的地址依次写入0x A0, 0x A5, 0x AA, 之后再写入修改地址。

2 硬件电路设计

超声波测距仪的硬件设计主要是以AT89S51单片机为核心, 并配有复位电路和时钟电路, 外围主要电路模块包括:测距模块, 显示模块, 按键模块, 发声模块。由于SRF08型超声波测距模块采用I2C总线协议, 与单片机通信只需要SDA和SCL两根通信线, 硬件连接相对比较简单。显示模块采用LCD液晶显示, P0口连接8根数据引脚, P2口的三根引脚连接控制引脚, 其它外部设备例如蜂鸣器、LED指示灯、按键等通过三极管或电阻直接与单片机IO引脚连接即可。硬件原理图如图1所示。

3 软件程序设计

本系统的单片机内部程序主要是实现从SRF08型超声波测距模块中读取距离信息, 之后进入到单片机内部处理, 并通过LCD显示出来, 这当中还与程序中的设定值进行比较, 控制指示灯和蜂鸣器发出光信号和声音报警。整个程序分为主程序, 超声波测距子程序, 显示子程序, 延时函数等。主程序流程图如图2所示。

4 结语

本文给出了一种采用SRF08型超声波测距模块设计并制作超声波测距仪的方法。利用测距模块测量距离并通过I2C总线协议输出距离信息, 这种集成模块的使用符合现今电子产品设计的主流, 具有硬件设计简单, 软件设计实现容易等特点, 具有一定的推广价值。对于后期的功能扩展, 可以增加存储功能和语音播报功能, 使超声波测距仪的功能更加完善。

参考文献

[1]明鑫.基于单片机的超声波传感器设计[J].科技信息, 2014 (1) :77, 78.

[2]兰羽.基于40KHz超声波测距系统的设计[J].机械与电子, 2013 (8) :66-69.

超声波测距仪设计及其应用分析 篇3

[关键词] 超声波测距 单片机 温度传感器

随着社会的发展,人们对距离或长度测量的要求越来越高。超声波测距由于其能进行非接觸测量和相对较高的精度,越来越被人们所重视。本设计的超声波测距仪,可以对不同距离进行测试,并可以进行详尽的误差分析。

一、设计原理

超声测距仪是根据超声波遇到障碍物反射回来的特性进行测量的。超声波发射器向某一方向发射超声波,在发射同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即中断停止计时。 通过不断检测产生波发射后遇到障碍物所反射的回波,从而测出发射超声波和接收到回波的时间差T,然后求出距离L。基本的测距公式为:L=(△t/2)*C

式中 L——要测的距离

T——发射波和反射波之间的时间间隔

C——超声波在空气中的声速,常温下取为340m/s

声速确定后,只要测出超声波往返的时间,即可求得L。

二、超声波测距仪设计目标

测量距离: 5米的范围之内;通过LED能够正确显示出两点间的距离;误差小于5%。

三、数据测量和分析

1.数据测量与分析

由于实际测量工作的局限性,最后在测量中选取了一米以下的30cm、50cm、70cm、80cm、90cm、100cm 六个距离进行测量,每个距离连续测量七次,得出测量数据(温度:29℃),如表所示。从表中的数据可以看出,测量值一般都比实际值要大几厘米,但对于连续测量的准确性还是比较高的。

对所测的每组数据去掉一个最大值和最小值,再求其平均值,用来作为最终的测量数据,最后进行比较分析。这样处理数据也具有一定的科学性和合理性。从表中的数据来看,虽然对超声波进行了温度补偿,但在比较近的距离的测量中其相对误差也比较大。特别是对30cm和50cm的距离测量上,相对误差分别达到了5%和4.8%。但从全部测量结果看,本设计的绝对误差都比较小,也比较稳定。本设计盲区在22.6cm左右,基本满足设计要求。

2.误差分析

测距误差主要来源于以下几个方面:

(1)超声波发射与接收探头与被测点存在一定的角度,这个角度直接影响到测量距离的精确值;(2)超声波回波声强与待测距离的远近有直接关系,所以实际测量时,不一定是第一个回波的过零点触发;(3)由于工具简陋,实际测量距离也有误差。影响测量误差的因素很多,还包括现场环境干扰、时基脉冲频率等等。

四、应用分析

采用超声波测量大气中的地面距离,是近代电子技术发展才获得正式应用的技术,由于超声测距是一种非接触检测技术,不受光线、被测对象颜色等的影响,在较恶劣的环境(如含粉尘)具有一定的适应能力。因此,用途极度广泛。例如:测绘地形图,建造房屋、桥梁、道路、开挖矿山、油井等,利用超声波测量地面距离的方法,是利用光电技术实现的,超声测距仪的优点是:仪器造价比光波测距仪低,省力、操作方便。

超声测距仪在先进的机器人技术上也有应用,把超声波源安装在机器人身上,由它不断向周围发射超声波并且同时接收由障碍物反射回波来确定机器人的自身位置,用它作为传感器控制机器人的电脑等等。由于超声波易于定向发射,方向性好,强度好控制,它的应用价值己被普遍重视。

总之,由以上分析可看出:利用超声波测距,在许多方面有很多优势。因此,本课题的研究是非常有实用和商业价值。

五、结论

本设计的测量距离符合市场要求,测量的盲区也控制在23cm以内。针对市场需求,本设计还可以加大发射功率,让测量的距离更加的远。在显示方面,也可以对程序做适当改动,使开始发射超声波时LED显示出温度值,到超声波回波接收到以后通过计算得出距离值时,LED自动切换显示距离值,这样在视觉效果上得到更加直观的了解。

参考文献:

[1]孙涵芳徐爱卿:MCS一51/96系列单片机原理及应用(修订版)[M].北京:北京航空航天大学出版社.2002.46-170

[2]金篆芷王明时:现代传感器技术[M].电子工业出版社.1995.331—335

[3]孙涵芳徐爱卿:MCS一51/96系列单片机原理及应用(修订版)[M].北京:北京航空航天大学出版社.2002.46-170

[4]路锦正王建勤杨绍国赵珂赵太飞:超声波测距仪的设计[J].传感器技术.2002

基于STM32的超声波测距 篇4

摘 要:结合嵌入式处理器STM32F103与超声波传感器设计的一种简易的智能超声波测距仪装置,采用ARM内核芯片STM32F103ZET6的32位嵌入式微处理器与带有温度补偿的US-100超声波测距模块实现声波测距。STM32的串口资源相当丰富,能提供5路串口,通过微处理器的串口实现实时显示和TFTLCD显示距离等参数。US-100带有温度传感器,对超声波的声速进行补偿,提高测量精度。

关键词:STM32F103;US-100;超声波测距;TFTLCD显示

Design of Ultrasonic Distance Measurement Based on STM32 And US-100

Abstract:Combined with the embedded microprocessor STM32F103 and ultrasonic sensor design a simple intelligent ultrasonic range finder devices, using ARM kernel chip STM32F103ZET632-bit embedded microcontroller processor with temperature compensation of US100 with a temperature sensor, to compensate the velocity of ultrasonic wave, improve the accuracy of measurement.Keywords:STM32F103;US-100;Ultrasonic Distance Measurement;TFTLCD-Showing

0 引言

超声波测距是一种典型的非接测量方式。超声波在气体、液体及固体中以不同速度传播,定向性好、[1]能量集中、传输过程中衰减较小、反射能力较强。且超声波测距系统结构简单、电路容易实现、成本低、速度快,所以在工业自动控制、建筑工程测量和机器人视觉识别等领域应用非常广泛,它具有非接触式测

[2]量、精度高、范围宽和安装维护方便等特点。

本设计结合嵌入式处理器与超声波测距模块提供一种超声波测距装置,系统采用嵌入式处理器控制US-100超声波测距模块实现超声波的发送和接受。US-100带有温度补偿,对测量的距离进行校正,提高了测量的精度。结合STM32丰富的串口资源,本装置通过串口2与US-100相互通信,进行超声波的收发和温度补偿,得到测量距离,通过TFTLCD显示;并通过串口1在PC机上实时显示。系统总体设计

US-100超声波发射脉冲障碍物STM32F103处理器串口1通信TFTLCD显示超声波接收回波温度校正串口2通信PC机串口显示图 1系统总体设计框图

Fig.1 Diagram of the overall system design

系统总体设计框图1,可以看到该超声波测距装置由STM32微处理器、US-100超声波测距模块、TFTLCD液晶显示组成。控制器通过控制US-100超声波模块实现超声波的收发,并进行温度补偿提高精度,得到精确的距离数据。再通过控制器自身串口通信向PC机串口实时显示数据和TFTLCD液晶显示的人机交互界面。STM32的高性能、低功耗和高主频等优点给该装置测距实现更加完备。硬件设计

2.1 主控制模块STM32F103微控制器

基于ARM Conex-M3内核的STM32F103ZET6时钟频率可高达72Mhz,提供20KB的RAM、多大128KB的嵌入式

闪存和丰富的外设接口,处理速度比同级别的基于ARM7TDMI的产品快30%,产品功耗比同级别低75%。使用新内核ARM Conex-M3是针对MCU的低成本、缩减的管脚数目、降低的系统功耗,同时提供卓越的计算性能和先进的中断系统响应的需要而推出的。ARM Conex-M3采用纯Thumb2指令高效32位哈弗微体系结构和系统外设,使这个具有32高性能的ARM内核能够实现8位和16位的代码储存密度,几乎把所有应用软件所需内存容量降低了一半。由于ARM Conex-M3的架构和丰富的外设组件,使得它也适用于要求高度集成和低功耗[4]的嵌入式场合

[3]2.2 US-100超声波测距模块

US-100超声波测距模块可实现2cm~4.5m的非接触测距功能,拥有2.4V~5.5的宽电压输入范围,静态功耗低于2mA,自带温度传感器对测量结果进行校正,同时具有GPIO,串口等多种通信方式,内带看门狗,工作稳定可靠。有串口触发测距和电平触发测距两种方式。本设计采用串口触发测距,在此模式下只需要在TX管脚输入0X55(波特率9600),系统便可发出8个40KHZ的超声波脉冲,然后检测回波信号。当检

[5]测到回波信号后,模块还要进行温度值测量,然后根据当前温度对测距结果进行校正,将矫正后的结果通过RX管脚输出。US-100超声波模块的引脚图如下:1脚接电源VCC,2脚接STM32F103ZET6的PA2,3脚接PA3,4脚接地即可。

图 2 US-100超声波测距模块图 Fig.2 US系统以STM32单片机为核心,实现对各部分的控制和响应。由于系统采用的ARM Conex-M3处理器集成调试功能,可实现快速验证支持多种开发功能。结合具有Thumb-2功能强大的指令集,可只使用C语言编程(包括复位、中断、异常处理),不需要模块转换,不需要汇编程序的软件管理,系统中软件部分采用模块化设计,若干个小的程序或模块,分别进行独立设计、编程、测试、和查错,最后连成1个完整的[7]应用程序,对每一个外设都有相应的例程,可以方便的进行移植。

系统软件采用模块化设计,主要包括主程序、串口中断子程序两个模块。系统中主程序合理结合中断子程序,使设计更加简单,并且主频消耗低,速度快。主程序控制处理器送入0X55数据,采用串口触发的方式测距,得到触发信号,进入中断子程序。发射8个40KHZ的超声波脉冲,检测回波信号。当检测到回波信号后,US-100自带温度补偿功能对测量的数据进行校正,提高了测量精度,然后通过串口送给电脑实时显示距离,并且在主程序中对测的距离进行液晶显示,具有距离小于150mm时的蜂鸣器报警功能,另外可以在TFTLCD上显示使用状态。该设计还可以综合利用在智能家居的智能系统中,可以用于容量探测,实时掌控;也可以用于车载倒车和避障系统中。超声波测距具有很多实际应用,在各种智能系统中都有它的声影。软件运行流程如下:

开始串口中断入口系统初始化串口初始化触发信号发射超声波串口2中断子程序发射完否YNTFTLCD显示距离distance接收数据Distance<150mmY 蜂鸣器鸣叫N计算距离串口1显示结束结束 图 4 主程序 图 5 串口中断程序

Fig.4 main program

Fig.5 A serial port interrupt program

/*************************** 主程序(程序入口)

***************************/

int main(void){

int distant;

u8 x=0;u8 temp[12];

//存放LCD ID字符串

delay_init();

//延时函数初始化

NVIC_Configuration();

//设置NVIC中断分组2:2位抢占优先级,2位响应优先级

uart_init(9600);

//串口1初始化为9600 uart_init_2(9600);

//串口2初始化为9600

LED_Init();

//LED端口初始化

BEEP_Init();

//初始化蜂鸣器端口

LCD_Init();POINT_COLOR=BLUE;

while(1)

{

USART_SendData(USART2,0x55);

//向串口2发送数据0X55输入到TX端口

delay_ms(4000);

//延时

LED0=!LED0;

LCD_ShowString(30,110,200,16,16,temp);

delay_ms(2000);

LCD_ShowString(30,50,200,16,16,“ RANGING”);

if(distant<150&&distant!=0)

//距离小于150mm时报警

{

BEEP=1;

//蜂鸣器报警

LED1=0;

//LED亮

}

else

{

BEEP=0;

LED1=1;

} } } /*********************************** 串口中断子程序(串口中断入口)

***********************************/ int globe1;int globe2;int flag=0;int distant;u8 temp[12];

//存放LCD ID字符串 void USART2_IRQHandler(void)

//串口2中断服务程序

{

u8 Res;

if(USART_GetITStatus(USART2, USART_IT_RXNE)!= RESET)//接收中断(接收到的数据必须是0x0d 0x0a结尾)

{

Res =USART_ReceiveData(USART2);//(USART2->DR);//读取接收到的数据

if(flag%2==0){

globe1=Res;

flag++;

}

else{

globe2=Res;

distant=globe1*256+globe2;

//距离计算公式

delay_ms(40000);

printf(“The distant is:%dcmn”,distant);//串口1显示距离

flag++;

LCD_ShowString(50,130,200,16,16,“distance:”);

LCD_ShowNum(120,130,distant,4,16);

//液晶显示距离

}

if(distant<150&&distant!=0)

{

BEEP=1;

LED1=0;

LCD_ShowString(30,90,200,16,16,“FULL”);

}

else

{

BEEP=0;

LED1=1;

LCD_ShowString(30,90,200,16,16,“USED”);

}

}

} 结论

本设计以ARM Conex-M3内核微控制器为超声波测距的控制核心,再结合带有超声波收发和温度补偿的US-100超声波测距模块简化了电路和开发环境。利用STM32中断子程序优化了软件编程,使系统运行内存更小,功耗更低;US-100进行的温度补偿减小了误差,提高了精度,在近距离测量范围内,该设计可达到mm级。该装置具有很好的实用性。

参考文献:

[1] 夏晨,李朴.反应釜设计及其温度控制系统[J].化工自动化及仪表,2004,31(1):66-69 [2] 时德刚,刘哗。超声波测距的研究[J].计算机测量与控制,2002,9(10):31-33 [3] 陈文凯,张根宝,张震强.基于ARM Conex--M3内核微控制器的智能锤式料位检测系统.计算机测量与控制,2008,16(11):1564-1566

红外测距仪总结报告 篇5

一、摘要:

本次设计任务是设计一个红外测距电路,它由硬件和软件两部分组成,硬件部分包括发射模块和接收模块,先由stc8051单片机产生一个1khz的信号,经红外发射管发射,碰到障碍物后返回,接收管接收到信号通过放大、滤波、峰值检波、AD转换后传回单片机,单片机即可通过判断接收电压的大小来确定距离。软件部分包括信号产生、AD接收、数据处理、液晶显示。

关键词: STC8051 红外测距

二、电路总体方案:

1、发射部分: 用单片机产生一个1khz的信号经红外发射管发射。因为用单片机产生信号方便控制盒调节,电路也更加简单。

2、接收部分: 采用±5v双电源供电,利用LM358芯片进行双电源放大,因放大倍数在20至40倍之间即可,所以只需经过一级放大。

滤波部分: 由于经过放大以后的信号还有很多杂波,而我们需要的是接收到的1khz的信号,一般的滤波器很难解决干扰问题,所以直接选用有源二阶带通滤波器。

峰值检波部分:

根据要求的精度为5mm,最简单的峰值检波电路即可胜任,出于节约成本的考虑,决定不用带运放的高精度检波电路,假如还要进一步提升测量精度,就需要选用更好的峰值检波电路。

AD转换部分: 由于所买单片机缺少AD转换模块,另购带PCF8591芯片的AD转换模块外接到单片机与电路板之间来实现AD转换。简化了软件编程中繁杂的IO口编程。

单片机控制部分: AD转换的数字信号传入单片机,通过软件采用查表发进行处理,得出正确的距离。

三、硬件设计:

1.红外发射管电路设计:

1.1 红外发射管原理

由STC8051的定时器产生一个1KHZ的方波,用

一个三极管驱动,将信号传送到红外发射管上。

1.2 红外发射管外围电路和元件参数设计

注:通过R3的调节改变测量范围。

1.3红外接收管电路设计:

红外接收管接受的信号只有一百毫伏左右,而

且还有很多干扰,需要先放大在带通滤波,单片机只能接受信号,所以

还需要通过峰值检波输出一个直流电压,经pcf8591 芯片转换成数字信

号输入单片机进行处理。

2.放大器的设计

2.1放大器的工作原理:

考虑到题目测量范围和接收到的信号大小,选取放大倍数为30倍左右,倍数太大会出现波形失真,是测量范围的最短距离变小,倍数太小信号强度不够,则能测量的最远距离会变小,放大倍数:

B=Rf / Rb =30;

3.关于有源二阶带通滤波器的设计:

则令C = C3 = C4,则 Rep = R5 / / R6 =(R5 * R6)/(R5 + R6)

品质因素Q等于中心频率除以带宽

即 Q = fc / BW = 1/2*(R7 / Rep)½

由上边的公式,去中心频率 f = 1 khz ,增资A = 5,品质因素 Q=8,则令C = C3 = C4 =104,可以得到电阻值为R5=2.5 K,R6=100,R7=25K;

4.关于峰值检波电路的设计:

考虑到电容值越大检波效果越好,但是放电速度越慢,经过测试,选取了200uf的电容和100k的电阻以及LM358构成最简单的峰值检波电路。

5.电路图如下:

注: 1.R4的电阻大小可改变测量精度;

2.整流电路中R8的大小决定最后测量结果精度;

3.前两个放大器用TL082,后一个选用LM358;

四. 程序设计:

软件由4个部分组成,信号产生模块,AD接受模块,数据处理模块和LCD显示模块,利用单片机的定时器0可以持续不断的产生1khz信号并输出,由于输出信号时稳定的,而接收管接收的信号时随着障碍物距离的变远而变小,所以我们可以通过检测信号的强弱来判断距离,但是接收的信号并不是完全是线性变化,采用一个或者几个固定的公式并不能得出准确的距离,所以采用提前把正确的距离和信号强弱的关系先测量好,建成一张信号距离表,这样测量时就可以查表快速得出距离。精度也方便控制。处理好的数据直接传送到1502液晶屏显示即可。

流程图如下:

五.测试方案:

本次测试所用到的仪器设备主要有: 示波器,函数信号发生仪,稳压电源,数字万用表。

调试过程如下:

调试发射部分,直接用示波器测量单片机输出的信号,为1khz;

调试接收部分的放大模块:先用函数信号发生仪模拟一个接收信号,把放大电路和滤波电路断开,测量TL082芯片的1脚,输入信号为1khz,1 00mv的正弦信号,用示波器测量1脚为1khz,2.9v的正弦信号,放大倍

数为29倍,由于有信号的衰减,放大部分正常;

调试带通滤波: 把放大电路和滤波电路连好,输入函数发生仪产生的 模拟信号,测量TL082芯片的7脚,得到一个稳定的正弦波,通过调节输入信号的频率,测得带通滤波器的中心频率为1khz,满足要求。然后接着测量整个电路的输出端,示波器打到直流档,调节信号强弱,发现检波电路工作良好。

最后,接入红外发射管与接收管,直接进行最终整调试,适当改变了R3与R4的电阻大小,再将电压在液晶上显示出来,用米尺画出一张标准的距离图,测量距离图上每隔5mm所对应的电压记录并做成表格最终填入程序中,并多次验证距离和长度的关系是否正确。并做多次修正。

六、参考文献和资料:

1.《新概念51单片机c语言教程——入门、提高、开发、扩展全攻略》

——郭天祥著

2.《运算放大器电路设计手册》

3.《电路与模拟电子技术》

—— 殷祥瑞

4.pcf8591中文资料——百度文库

超声波测距仪毕业设计 篇6

根据超声波测量距离系统,给出了汽车测距防撞报警系统的.设计.该系统能在汽车行驶以及倒车过程中自动检测出汽车与最近障碍物之间的距离(或行车中的车距)并通过LED显示出来,当到达极限距离时,系统能发出声光报警,进而提醒司机以防撞车.试验研究结果表明,该系统具有一定的实用价值以及广阔的推广应用前景.

作 者:仇成群 胡天云 QIU Chengqun HU Tianyun 作者单位:仇成群,QIU Chengqun(盐城师范学院,江苏盐城,224002)

胡天云,HU Tianyun(盐城供电公司,江苏盐城,224002)

超声波测距仪毕业设计 篇7

近年来,随着人们生活水平的提高、市场的繁荣私家车、运输车及各种车辆与日俱增,汽车也就成为各地经济发展的中枢纽带,逐渐走入每个家庭。在享受汽车给人们带来便利的同时,由于倒车而产生的问题也日益突出。因此,增加汽车的后视能力,研制汽车后部探测障碍物的倒车雷达便成为近些年来的研究热点。

汽车倒车系统主要指倒车雷达,它是汽车泊车或者倒车时的安全辅助装置,能以声音或者更为直观的显示告知驾驶员周围障碍物的情况,解除了驾驶员泊车、倒车和起动车辆时前后左右探视所引起的困扰,并帮助驾驶员扫除了视野死角和视线模糊的缺陷,提高驾驶的安全性。

通常,倒车雷达可以通过不同的测距方式能很好的解决停车时因视线不清而造成倒车不便,主要采用的是超声波测距技术,挂倒档时接通倒车雷达的电源,利用换能器(超声波传感器)的压电特性,间断以频率40KHz的电压激发压电片,该压电片随即由电能转换成机械能(40KHz超声波)并发射出去,当发射出去的声波接触物体时,根据声波的反射性原理,会反射回微弱声波信号给超声波传感器,换能器即将所接收的微弱声波振动信号转化成为电信号,经信号放大处理后,传送至微处理器,微处理器就可计算车与该物体之距离,并显示出来,再由微处理器判断决定是否对构成危险的目标按不同程度进行警示提醒[1]。

在近几年的时间里,随着技术发展和用户需求的变化,倒车雷达经过了大致六代的发展:第一代:倒车时通过喇叭提醒。“倒车请注意”!第二代:采用蜂鸣器不同声音提示驾驶员。倒车时,如果车后1.8米~1.5米处有障碍物,蜂鸣器就会开始工作。蜂鸣声越急,表示车辆离障碍物越近。第三代:数码波段显示具体距离或者距离范围。第四代:液晶荧屏动态显示。第五代:魔幻镜倒车雷达。第六代:整合影音系统。是专门为高档轿车生产的。整合了高档轿车具备的影音系统,可以在显示器上观看DVD影像。

2 系统硬件电路设计

2.1 设计系统原理框图及介绍

如上图1所示,本系统硬件部分由STC89C52控制器、超声波发射电路、超声波接收电路、温度补偿电路、语音报警电路、LCD显示电路以及其他单片机外围电路组成。单片机STC89C52是整个系统的核心部件,协调和控制各部分电路的工作。由单片机编程产生40KHz的方波,由P1.0口输出,再经过发射电路驱动超声波发射探头发射超声波。单片机在超声波信号发射的同时开始计时,超声波信号在空气中传播遇到障碍物后发生反射,反射的回波信号经过处理后输入到单片机的INT0端产生中断,计数器停止计数。通过计数器测得的脉冲数可得到超声波信号往返所需要的时间,从而达到测距的目的。超声波探头选用R/T分体式40KHz-1 6 M M超声波传感器;超声波发射电路采用反相器74HC04,接收电路采用专用前置放大器CX20106,不仅外围元件较少,电路简单,而且有更好的稳定性及可靠性;温度补偿电路采用一线制数字温度传感器DS18B20,利用声速和温度之间的关系对声速进行校正,从而消除温度对声速的影响;LCD显示电路采用1602液晶显示屏,一行显示温度,一行显示距离;语音报警电路采用ISD4004,可实现汽车倒车过程中的语音报警[3]。

2.2 超声波发射电路

超声波发射电路是为了让超声波发射换能器TCT40-16T能向外界发出40KHz左右的方波脉冲信号。40KHz左右的方波脉冲信号的产生通常有两种方法:采用硬件如由555振荡产生或软件如单片机软件编程输出,为了节省成本,本次设计采用了后者。编程由单片机STC89C52的P1.0端口输出40KHz左右的方波脉冲信号,由于单片机端口输出功率不够,40KHz方波脉冲信号分成两路,送给一个由74HC04组成的推免式电路进行功率放大以便使发射距离足够远,满足测量距离要求,最后送给超声波发射换能器TCT40-16T以声波形式发射到空气中。超声波发射电路如图2所示[5]。

2.3 超声波接收电路

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

本系统中应用的接收电路如图3所示。CX20106接收超声波有很高的灵敏度和抗干扰能力,可以满足接收电路的要求。同时,使用集成电路也可以减少电路之间的相互干扰,减小电噪声。当接收到40k Hz信号后,芯片7脚会出现较短的低电平,输出一定幅度的电压信号到STC89C52的P3.2口以触发中断。另外该芯片价格在三到五元,非常节省系统成本。图中输出端上拉电阻R1和R2,一方面可以提高反相器74HC04输出高电平的驱动能力,另一方面可以增加超声波换能器的阻尼效果,缩短其自由振荡的时间。

2.4 温度补偿电路

经综合考虑,温度补偿电路采用美国达拉斯(Dallas)公司的单线数字温度传感器芯片DS18B20作为温度传感器,与传统的热敏电阻有所不同。DS18B20可直接将被测温度转化成数字信号,以供单片机处理,它还具有微型化、低功耗、高性能、抗干扰能力强等优点[2]。

根据D S 1 8 B 2 0的通讯协议,主机(单片机)控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位操作,复位成功后发送一条R O M指令,最后发送R A M指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后释放,当DS18B20收到信号后等待16~60微秒左右,后发出60~240微秒的存在低脉冲,主CPU收到此信号表示复位成功。

DS18B20采用单总线方式和STC89C52单片机连,即D S 1 8 B 2 0的1脚接地,3脚接+5 V电源,2脚接至STC89C52的P1.1引脚,同时将P1.1引脚采用一只4.7ΚΩ的电阻上拉至+5V电源。测得的温度值以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2字节,单片机通过单总线接口读到该数据后,即可通过计算得到实时环境温度值。

2.5 LCD显示电路

LCD显示器是利用液晶经过处理后能改变光线的传输方向特性实现显示信息的。液晶显示器具有体积小、重量轻、功耗极低,显示内容丰富等特点,在单片机应用系统中得到了日益广泛的应用。液晶显示器按其功能可以分为三类:笔段式液晶显示器、字符点阵式液晶显示器和图形点阵式液晶显示器。前两种可以显示数字、字符和符号等。而图形点阵式液晶显示器还可以显示汉字和任意图形,达到图文并茂的效果[4]。

字符型液晶显示模块是一种专门用于显示字母、数字、符号等的点阵式液晶显示模块。它是由若干个5*7或者是5*11等点阵符位组成的,每个点阵字符位都可以显示一个字符。点阵字符位之间,有一定点阵间隔,这样就起到了字符间距和行距的作用。

DB0~DB7为8位双向数据线,与单片机STC89C52的P2口相连;使能端E接P0.2;读写信号R/W接P0.1;寄存器选择端R S,高电平时选择数据寄存器、低电平时选择指令寄存器;Vee为对比电压调整端,使用时通过一个10K的电位器接地,可调节液晶屏的亮度。LCD显示内容包括倒车距离和车外温度两部分,分两行显示:第一行显示倒车距离,第二行显示车外温度。

2.6 语音报警电路

本设计的语音报警电路采用ISD4004语音芯片。ISD4004与单片机STC89C52单片机接口电路如图6所示。从图中可以看出,ISD4004和单片机之间的连接较少。单片机的P1.3接ISD4004的片选引脚SS,控制ISD4004是否选通;P1.2接ISD4004的串行输入引脚MOSI,从该引脚读入放音的地址;P1.7接ISD4004的串行输出引脚MISO;P1.4接ISD4004的串行时钟引脚SLCK。ISD4004芯片音频信号输出引脚AUD OUT,该引脚通过一个滤波电容,经功率放大电路LM386后与扬声器连接;麦克风MK3接入ISD4004的录音信号输入端(ANA IN﹣、ANA IN﹢);AMCAP为自动静音端,使用时通过一电容接地。

当倒车距离大于3 m时,语音提示为“倒车安全”;当倒车距离在2-3m之间时,语音提示为“倒车”;当倒车距离在1-2 m之间时,语音提示为“倒车小心”;当倒车距离在0.5-1m之间时,语音提示为“倒车危险”;当倒车距离小于0.5m时,语音提示为“非常危险,紧急停车”。[6]

3 结束语

本文对单片机控制的超声波测距仪汽车倒车系统的设计进行了硬件电路图设计,硬件的综合调试。是一款比较完美、实用的倒车雷达。

参考文献

[1]吴琼,封维忠,马文杰.汽车倒车雷达系统的设计与实现.现代电子技术[D].南京:南京林业大学信息科学技术学院.2009,9:198-201.

[2]朱利娜.基于单片机的超声测距倒车雷达的研究[J].微计算机信息,2007,(23):110-111

[3]韩博奇.车载倒车雷达系统的研究[D].哈尔滨:哈尔滨工业大学,2006.

[4]宋永东,周美丽,白宗文.高精度超声波测距系统设计[J].现代电子技术,2008,(31),15:144-146.

[5]孟立凡等.超声测距换能器及收发电路的研究[J].华北工学院学报,2001,22(2):87-89

论超声波测距技术 篇8

[关键词]超声波测距;原理;应用;问题

一、超声波测距原理

超声波测距的原理是利用超声波在空气中的传播速度为已知,测量声波在发射后遇到障碍物反射回来的时间,根据发射和接收的时间差计算出发射点到障碍物的实际距离。超声波发生器内部有2个压电晶片和1个共振板,当2极外加脉冲信号的频率等于压电晶片的固有振荡频率时,压电晶片将发生共振,并带动共振板振动,从而产生超声波;当共振板接收到超声波时,将压迫压电晶片产生振动,将机械能转换为电信号。设超声波整个传播时间为 t(单位s),超声波的传播速度为c(单位m/s),则计算出发射点与反射点的距离为: s=c×t/2;超声波在固体中传播速度最快,在气体中传播速度最慢,而且声速受温度影响最大。t为环境摄氏温度,则超声波在空气中的传播速度为: c=331.4×√1+ t/273 。

二、超声波测距技术的应用

1.采用超声波测量地面距离

超声波测距技术应用最广泛的莫过于常见的测绘地形图,建造房屋、桥梁、道路、开挖矿山、油井等地面距离的测量。由于超声波的非接触检测特点,以及它不受光线、被测对象颜色等的影响,在不利于测量的条件下,仍然具有很强的适应能力。

2.超声测距仪技术在机器人技术上的应用

其大致原理是,将超声波源安装在机器人身上,通过人为设计 ,由它发射超声波,然后接收由障碍物反射回波来确定机器人的自身位置,它充分利用了超声波的易于定向发射、稳定性好的特点,在机器人的研究中越来越受到重视。

3.超声波测距技术在倒车警报中的应用

超声波测距技术在倒车警报中的应用,充分利用超声波穿透性好、抗干扰能力强,不受空间电磁波干扰,可靠性高的特点。通过对声、光报警电路芯片设计,定时器的设计,控制器 CPU、显示器 LED 的选择,能在汽车倒车时自动检测并显示车尾与最近障碍物之间的距离,当达到安全极限距离时,它能发出声光警报,提醒司机刹车,减少行车中的安全隐患。

三、现阶段常见问题的分析及解决

1.超声波传播波速不恒定

超声波在介质中的传播速度随周围环境(温度、压力等)的变化而变化,其中温度的影响最为明显。常温下,超声波的传播速度为 340m/s,温度每升高 1℃,声速增加约为0.6m/s,因此超声波测距中一般采用温度补偿的方法,即在数据处理中对超声波传播速度进行实时温度补偿。

2.回波信号幅值随传播距离增大呈指数规律衰减

回波信号幅值随传播距离增大呈指数规律衰減,使得接收传感器接收到的回波信号随着测量距离的增大而大幅减小,给回波前沿的准确定位带来困难,造成测量精度降低。在回路上串入自动增益调节环节(AGV),使得电路放大倍数随着测量距离的增大而相应规律地增加,可有效解决该问题。

3.盲区

发射超声波时,超声波换能器在驱动脉冲结束后,会由于惯性继续振动,产生余振。余振期间,由于无法区分回波信号与余振信号,因此必须等余振停止或衰减到足够小后,才能允许接收传感器接受信号。这段时间由于无法检测超声波传播距离,从而出现盲区。为了减小盲区,即尽快让余振衰减到零或足够小,可用自动根据测量距离远近调控发射功率的方法,即自动根据距离的远近来调整发射拖尾波覆盖信号的宽度,从而消除拖尾波的干扰。也可用增大余振衰减系数的方法,来加速余振的衰减。还可通过减小电容上电压最大值U的初值来加速余振衰减的方法,也可在一定程度上减小盲区。

4.超声波旁瓣影响

接收传感器在超声波发射结束后接收到的第一个波一般是串扰直通波。它是超声波信号由近源的波束旁瓣或通过换能器绕射,直接到达接收传感器造成的。因此,安装传感器过程中,两个探头之间距离应大于3cm,从而降低超声波旁瓣对测距系统精度的影响。

5.混响信号干扰

混响信号是由于水中介质及界面等非目标物对发射信号的反向散射波在接收点叠加而产生的。其本身是一种回波,且包含的信号频率与发射信号相近,不能被一般滤波电路或算法消除。特别在近距离探测中,它是主要背景干扰。测距时,可以根据时间变化,控制接收放大电路的增益,以实现对混响信号幅值的抑制。

6.超声波探测器测量分辨力和探测角度范围的矛盾

超声波测距选用大波束角探测器,可以满足探测范围要求,但分辨能力较差,难于准确地提供目标的边界信息。然而如果采用小波束角探测器,可以满足分辨能力的需要,但探测范围很难满足要求。针对这一矛盾,可用步进电机驱动单套小波束角传感器做扇形扫描的方法,即步进电机每转过一个步距角,测距系统便在当前的角度上测取一个距离信息,结合当前的扫描角度,就得到了一个较为精确,而且兼有距离、方向的位置信息。该方法有效弥补了大波束角探测器分辨能力差,小波束角探测器探测范围不足的缺点。

参考文献:

[1]吴慎山,聂惠娟,吴东芳,等.智能超声波测距系统的设计[J].河南师范大学学报:自然科学版.2007.

[2]杨建华,翟青,梁晓章.具有语音播报功能的超声波液位测量系统设计[J].电子产品世界.2014.

上一篇:医院药房下一篇:购置车辆承诺书怎么写