基于psoc的超声波测距(共8篇)(共8篇)
1.基于psoc的超声波测距 篇一
中文摘要 本设计基于单片机AT89C52,利用超声波传感器HC-SR04、LCD显示屏及蜂鸣器等元件共同实现了带温度补偿功能可报警的超声波测距仪。我们以AT89C52作为主控芯片,通过计算超声波往返时间从而测量与前方障碍物的距离,并在LCD显示。单片机控制超声波的发射。然后单片机进行处理运算,把测量距离与设定的报警距离值进行比较判断,当测量距离小于设定值时,AT89C52发出指令控制蜂鸣器报警,并且AT89C52控制各部件刷新各测量值。在不同温度下,超声波的传播速度是有差别的,所以我们通过DS18B20测温单元进行温度补偿,减小因温度变化引起的测量误差,提高测量精度。超声波测距仪可以实现4m以内的精确测距,经验证误差小于3mm。
关键词:超声波;测距仪;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
导师签名: 日期: 年 月 日
46
2.基于psoc的超声波测距 篇二
1 系统原理及硬件介绍
系统实现了基于AT89C52单片机的小车智能跟随功能。为此,设计了超声波测距模块、定位模块以及无线电通信实时控制跟随。这套系统采用硬件电路设计和软件设计相结合的方式,具有模块化和多用化等特点。除此之外,用超声波检测更容易实现同步及时的控制,因为它方便又迅速并且计算起来还简单,所以其能够达到工业实用对测量精准度的要求。
1.1 系统原理
在智能小车上装两个超声波发射探头,人身上再带着一个接收探头。通过测距算法算出距离。当超过一定距离时,小车收到报警跟上人的步伐前进,实现跟随。
超声波测距工作流程框图如下图1所示:
1.2 硬件设计
硬件系统主要有超声波数据采集模块、小车驱动模块、主控器和报警模块组成。系统硬件部分的整体框图2如下所示:
小车的运动控制由电机驱动模块以及单片机最小系统组成。智能小车以AT89C52为核心,经过焊接相关芯片然后用电路板自制而成。它通过无线通信接收测距系统发送来的控制信号,再输出信号到L293D,从而驱动直流电机控制其行驶。小车驱动电路采用的是基于双极型H桥型脉宽调制方式(PWM)的集成电路L298N,它的内部有两个高电压、大电流桥式驱动器。
系统采用的是HC-SR04超声波测距模块。该模块可以提供2cm-400cm的非接触式的距离感测功能,测距精确度可以达到3mm[1]。HC-SR04超声波测距模块包括超声波发射器、接收器与控制电路。
超声波发射模块原理图如下图3:
超声波接收模块输出信号原理图如下图4:
测距系统是采用IO口TRIG触发来检测距离。给至少10us的高电平信号输入,然后该模块会自动发送8个40k Hz的方波,并且会自动检测是否有信号返回。若有信号返回,那么会通过IO口ECHO输出一个高电平,则高电平持续的时间就是超声波从发射到返回的时间。则测试距离=(高电平时间*声速(340m/s))/2。[2]
2 主要技术
2.1 超声波测距技术
超声波在空气中的传播速度大约是340m/s,根据计时器记录的时间t,便可计算出发射点距障碍物面的距离s,即:s=340t/2。
上式中:H表示超声波两个探头之间中心距离的二分之一。
而超声波的传播距离为:
上式中:v表示超声波在空气中的传播速度;
t表示超声波从发射到接收所需要的时间。
把式(2)、(3)代入式(1)中便可以得到:
其中,超声波的传播速度v在一定的温度下是一个常数,如果当被测量的距离L远远大于H时,则(4)变为:
因此,只要测量出超声波的传播时间t,就可以计算出所要测量的距离L[3]。
为了保证测量距离的准确度,需要设计一个温度补偿电路。空气中声速与温度的关系可以表示为[4]:
式中,T为环境摄氏温度℃。
该温度补偿电路系统采用了National Semiconductor所产生的温度感测器LM35。其输出电压与摄氏温标呈线性关系,即0℃时输出为0V,每升高1℃,输出电压增加10m V。
2.2 定位技术
定位节点由超声波模块、无线通信模块、微处理器模块、电源模块部分组成。超声波发射器通过单片机控制时序,然后向四周扩散信号来搜索需要定位的节点。超声波发射的射频信号的传输时间是可以忽略不计的,因为它的速率比超声波的速率要高很多。所以如果同时发送射频信号和超声波信号的话,需要定位的节点会先收到发送来的射频信号然后九年开启超声波的接收模块并同时启动定时器,再之后接收模块接收到超声波的同时停止定时器。由此,超声波发射器再通过测量超声波与射频信号之间所用的时间差,从而来计算发射点与需要定位的节点之间距离。
2.3 跟随技术
通过超声波测距原理,再加上三角形定理,在智能小车上装两个超声波发射探头,人身上再带着一个接收探头。根据测距算法算出距离,当超过一定距离时,小车收到报警跟上人的步伐前进,实现跟随。
3 系统测试与误差分析
3.1 系统测试
设计主要是基于超声波测距来实现智能小车的跟随,所以可以观察不断改变人与小车的距离时小车反应所需要的时间。实验在20℃环境下进行,实验结果如下表所示:
3.2 误差分析
3.2.1 误差来源
引起小车不同距离下响应的时间不同的原因有很多,一般有以下三种主要的误差来源:
(1)超声波信号在传播的过程中会减弱;
(2)从收到声波到被检测出会存在一定滞后;
(3)启动计时和启动超声波发射之间存在一定的偏差。
3.2.2 减少误差措施
针对出现的第一个问题,所采用的解决办法是用TL852电路进行声波检测。因为它可以变增益,利用单片机来根据时间去控制声波信号。至于第二个问题,可以采用设置多个探头的办法。关于启动计时和启动超声波发射之间存在偏差的问题,则可以用无线电作为反馈信号[5]。
4 结论
介绍了超声波测距原理及小车跟随原理,运用超声波传感器及无线通信实现了小车同步跟随。通过实验可见,小车反应灵敏,能与人保持约5米之内的距离同步跟随。设计的创新之处与所取得的主要成果是:具有多用化的特点。设计中的超声波测距模块能够应用于机器人的距离信息采集、汽车防撞测距等众多方面。因此具有很大的移植应用价值。
摘要:设计是以AT89C52单片机为主控制器,然后再结合超声波测距的原理,实现智能小车的实时跟随控制。超声波的发射模块由单片机来控制时序,然后往四周发散从而寻找需要定位的节点并且会通过超声波信号与射频信号间的时间差计算发射点与需要定位节点间的距离。为了提高系统的精确度,还设计了温度补偿电路。智能小车是以AT89C52单片机为核心,通过无线通信来接收超声波测距系统发送来的控制信号实现跟随。
关键词:超声波,测距,小车设计,测量技术
参考文献
[1]李缓媛,张强,黄敏捷,刘坤.基于超声波测距的车辆音量调节系统[J].实验室研究与探索,2013(7).
[2]赖林弟,胡海燕,胡克满.智能挡车器控制系统的设计[J].软件导刊,2012(4).
[3]兰羽,周茜.超声波测距系统接收电路研究[J].电子设计工程,2012(7).
[4]刘金鹏,郭国,陈静,张福安,李丽欣,刘安平.电缆下方作业车防触电测距报警系统[J].电子制作,2010(9).
3.基于psoc的超声波测距 篇三
关键词:超声波测距,RBF网络,非线行误差校正
1、引言
超声波测距具有信息处理简单、快速和价格低,易于实时控制等许多优势,它被广泛的应用在各种距离测试的设备中。但超声波传感器在实际应用中也有一定的局限性。在超声波测距中,由于超声波传感器本身的结构和受外界温度等因素的干扰,其输入输出特性呈明显的非线性,靠硬件或软件补偿修正的方法对提高其测距精度的效果不大。所以,本文提出了基于径向基函数神经网络实现超声波传感器的建模,对超声波测距进行温度补偿和非线性误差校正的方法。
2、用 RBF神经网络改善超声波测距的精度
2.1神经网络实现非线性误差校正的原理
设超声波传感器要测量的实际距离为 d,实际距离d决定t2-t1,环境温度为T,超声波传感器测量输出的结果为h,经RBF网络校正后的距离为Dr,则超声波传感器测距系统可以表示为 h=f(d,T),由于传感器产生的非线性误差和温度的影响,使得 f(d,T)呈现非线性特性。校正的目的是根据测的 h求未知的 d,即 d=g(h,T),也就是需要建立超声波传感器的模型其原理可以表示为图 1所示。
超声波传感器输出 Dr通过一个补偿模型,该模型的特性函数为Dr=g(h,T) ,其中Dr为非线性补偿后的输出, g(h,T)显然是一个非线性函数。通常非线性函数的表达式很难准确求解,但可以利用神经网络能很好地逼近非线性函数的特点,通过建立神经网络模型来逼近该非线性函数。本文选取RBF神经网络模型。
2.2 RBF 神经网络
RBF网络是一种局部逼近网络。它对于每个输入输出数据对 , 只有少量的权值需要进行调整。它采用一组正交归一化的基函数 —— 径向基函数的线性组合来逼近任意函数。
常用径向基函数有高斯函数、多二次函数、薄板样条函数等。由于输入矢量直接映射到隐层空间 , RBF的中心确定后 , 这种非线性映射关系也就确定 ,因此 RBF的学习算法首先要确定径向基函数的中心 ,本文径向基函数的中心采用高斯函数(Radbas(n)=e-n2),其隐含层的输入输出模型如图2。
对于本文的超声波传感器逆模型的RBF网络模型,输入为h和T,训练后的实际输出为Dr,期望输出为d。超声波传感器非线性校正逆模型采用RBF网络,输入层2个节点,输出层1个节点,扩展系数为0.5(实验结果表明扩展常数为 0.5 时对应隐含层神经元个数适中,故扩展常数选为 0.5),通过测量获取了50组数据集作训练样本,将输入量作归一化处理后,按照上述的RBF神经网络的学习方法学习。神经网络的训练和仿真是在Matlab 6.5环境下,通过神经网络工具箱,编制相应的程序而实现。
在matlab上应用 RBF神经网络进行仿真温度补偿和非线性误差校正后,系统的测距精度大大提高,表 1所示为未经神经网络处理和神经网络处理后的测距比较。
比较结果表明,神经网络处理后的结果与实际距离很接近,精度大大提高了。
3、结束语
实际应用中,超声波测距易受温度等多种因素的影响,利用RBF神經网络良好的非线性逼近特性、自适应能力学习能力,可优化超声波的输出特性,而且网络结构简单,便于单片机实现或固化在硬件中。仿真结果表明,利用RBF 神经网络能很好地逼近非线性函数,实现了超声波传感器建模,对传感器进行非线性误差校正,效果相当明显,大大提高了超声波测距的精度,使其测距误差控制在毫米级以内,这是采用其它校正方法是无法达到的。
参考文献:
[1]谭超,许泽宏,李维一,付小红,王健.基于小波神经网络建立虚拟仪器非线性较正型[J].微计算机信息,2005.12(1)P157-159.
[2]田社平.基于神经网络模型的传感器非线性校正.(英文) 光学精密工程.2006
[3]Binchini M,Frasconi P,Gori M. Learning without local minima in radial basis function networks.IEEE Trans. on Neural Networks, 1995,6(3):749~755)
[4] Xianzhong Dai, Ming Yin, Qin Wang. Artificial neural networks inversion based dynamic compensator of sensor.IEEE,2004,10:258-261
[5]许东.基于MATLAB 6.X的系统分析与设计[M].西安电子科技大学出版社.2002
4.超声波测距报警器文献综述 篇四
超声波测距报警器的设计与实现
摘要:本系统采用了单片机最小系统、超声波模块、显示模块、报警模块等。超声波测距作为一种传统且使用的非接触测量方法,与激光、无线电测距方法相比,不易受外界光及电磁场等因素的影响,结构简单,成本低,在恶劣环境下也有一定的适应能力,因此在工业控制、建筑测量、机器人避障等方面得到了广泛应用。而且超声波指向性强,能量消耗慢,在介质中传播距离远,利用超声波检测距离,设计方面,计算处理简单,并在测量精度方面也能达到工业要求。
关键词:单片机/超声波模块/报警电路
关于单片机控制超声波测距报警器的设计与实现有很多方案,我也看了不少。为了能设计出较好的报警系统,在过去的几个星期,我在校内图书馆查阅了大量的资料,在学校数字图书馆下载很多的论文期刊,这些理论资料给了我很大的帮助,简要的重要结果如下:
文献[1]中讲述了检测系统的发展及重要应用,检测是利用各种物理、化学效应,选择合适的方法与装置,将生产、科研、生活等各方面的有关信息通过检测与测量的方法赋予定性的或不定性结果的过程。能够自动地完成整个检测处理过程的技术称为自动检测技术。检测技术是现代化领域中很有发展前途的技术,它在国民经济中起着极其重要的作用。其中检测系统最主要的就是传感器,把非电量转换成电量,然后经过一系列的处理,将非电量参数显示出来。
文献[2]中讲述了随着传感器和单片机控制技术的不断发展,非接触式检测技术已被广泛应用于多个领域。目前,典型的非接触式测距方法有超声波测距、CCD 探测、雷达测距、激光测距等。其中,CCD 探测具有使用方便、无需信号发射源、同时获得大量的场景信息等特点,但视觉测距需要额外的计算开销。雷达测距具有全天候工作,适合于恶劣的环境中进行短距离、高精度测距的优点,但容易受电磁波干扰。激光测距具有高方向性、高单色性、高亮度、测量速度快等优势,尤其是对雨雾有一定的穿透能力,抗干扰能力强,但其成本高、数据处理复杂。与前几种测距方式相比,超声波测距可以直接测量近距离目标,纵向分辨率高,适用范围广,方向性强,并具
超声波测距报警器的设计与实现
备不受光线、烟雾、电磁干扰等因素影响,且覆盖面较大等优点。目前,超声波测距已普遍应用在液位测量、移动机器人定位和避障等领域,应用前景广阔。本文将对超声波测距的原理及国内研究、应用现状进行综述,并对其发展趋势进行展望。
文献[3]中文章根据超声波特征及测距原理,运用单片机和分体式超声波传感器设计了一款包括发射模块、接收模块、温度补偿模块、显示模块和单片机外围电路的简单超声波测距系统。在3 m 范围内对系统进行经多次测试,其结果表明该超声波测距系统精确度高,工作稳定。超声波是一种频率大于20 kHz 具有方向性好、指向性强、传播能量大、遇到杂质或界面时会产生反射波等特点的机械波。运用超声波测距能避免光线、颜色以及电、磁场的干扰,完成传统测距技术难以实现的液面,井下等非接触式测量。为此,超声波测距技术已被广泛应用于工业控制、勘探测量、海洋测量等领域,而关于超声波测距系统的研究也在不断发展。本文运用单片机设计一款结构简单、通用性强、可靠性好、操作灵活的超声波测距系统。
文献[4]中本文简要介绍了超声波的概念、特点,阐述了超声波传感器的原理,并分析了超声波传感器在医疗、工业、液位测量、报警等方面的应用。超声波所具有的独特的性质,使得超声波传感器在生产生活中体现出了越来越大的重要性,具有一定的研究价值。随着自动化等新技术的发展,传感器的使用数量越来越大,一切现代化仪器、设备都离不开传感器。在工业生产中,尤其是自动化生产过程中,用各种传感器来监测和控制生产过程中的各个参数,如温度、压力、流量,等等,以便使设备工作在最佳状态,产品达到最好的质量。
文献[5]中提出一种基于STM8S单片机控制的超声波测距系统的设计方案,在分析超声波测距产生盲区和误差原因的基础上,设计时间增益补偿电路和峰值时间检测电路,并使用电容触摸按键代替机电开关,确保正确捕捉回波的到达时间,提高测距精度.试验验证表明:该系统在2.5~10m,范围内测距误差不超过0.25%。
文献[6]中C 语言是功能强大、应用广泛的编程语言,也是目前高校理工类的公共必修课程之一,可见其重要性,C语言集高级编程语言和汇编语言的特点于一身,目前市面上的许多软件也是在C 语言的平台上产生的,所以高校在C 语言的教学中也可谓是“不遗余力”的。但是从近年来的教学效果来看,学生的普遍反映却让人大跌眼镜,大部分人认为C 语言晦涩难学,学起来是非常吃力,经常是非常努力学习却达不到想要的效果,课程过后没有任何收获,甚至连一个小程序都写不出来,针对上述情况做了初步分析,并从C 语言的编程技巧上提出了相关改善对策。
超声波测距报警器的设计与实现
文献[7]中本文设计一种基于单片机STC89C52 的超声波测距仪汽车倒车系统,介绍了超声波测距的基本原理,阐述了倒车雷达系统的结构组成、硬件电路设计,并在数据处理部分采用温度补偿消除温度对声速的影响,提高了测距精度。倒车距离采用LCD 进行实时显示,并通过语音报警电路对不同距离段做出不同的语音提示。实验表明该倒车雷达系统在 30~500 cm 范围内可实现准确测距,具有可靠性较高、外围电路简单、实用性强等优点。
文献[8]中单片机AT89C51。整个系统是在系统软件控制下工作的。设置在监测点上的红外探头将人体辐射的红外光谱变换成电信号,经放大电路、比较电路送至门限开关,打开门限阀门送出TTL 电平至AT89C51单片机。在单片机内,经软件查询、识别判决等环节实时发出入侵报警状态控制信号。驱动电路将控制信号放大并推动声光报警设备完成相应动作。当报警延迟10s一段时间后自动解除,也可人工手动解除报警信号,然后通过LED显示报警次数,当警情消除后复位电路使系统复位,或者是在声光报警10s钟后有定时器实现自动消除报警。通过与AT89S52比较,AT89S52更加强大,而且在价格方面都差啊不多,同时AT89C51 也基本上淘汰了,所以本设计采用的AT89S52芯片。
文献[9]中数码管仍是常用的显示方法,LED 数码管的电路实现方式有两种:静态显示和动态显示。本文介绍了常用的显示方法,研究了数码管显示时,如何有效的节约资源,主要是节约单片机的I/O 资源。数字电路中,LED 数码管显示各种数字或符号仍是最常用的电路。LED 数码管的基本组成是半导体发光二极管,常见的七段LED 数码管结,它由7 个长条形状的发光二极管组成,控制七段发光管的二进制代码称为段码。7 个发光二极管可将共同极性的端子连接到一起形成一条公共端,让它是否与电源连接来控制数码管是否发光,根据这个端子是与电源正极连接还是与负极连接,又把数码管分为共阳极与共阴极。
文献[10]中介绍了一种基于单片机的超声波倒车防撞报警系统,此系统利用AT89C52 单片机作为主控制器,结合超声波测距原理,来实现倒车防撞报警功能,并进行了系统硬件和软件的设计。此系统具有结构简单,精度高,使用方便等特点。随着改革开放,我国经济高速发展,汽车的拥有量在最近的一、二十年里大幅增加,造成道路拥堵,交通事故频发,给人们的生命和财产安全带来了巨大的损失。安全驾驶成为大家关注的焦点,其中汽车防撞系统CAS的设计和需求显得非常重要和迫切。此倒车防撞系统主要是利用超声波的特点和优势,将超声波测距原理和AT89C52 单
超声波测距报警器的设计与实现
片机结合于一体,设计出一种基于单片机的倒车防撞报警系统。该系统采用软、硬件结合的方法,具有模块化和多用化的特点。
文献[11]中单片机开发时Proteus 软件被广泛使用,但仿真电路与实际电路的焊接与调试有很大的不同,需要特别的注意。在Proteus 仿真中没有把31 管脚EA 接高电平,但在实际电路中必须接,因为单片机内部有程序存储器,31 脚接高电平(VCC),单片机启动后直接在内部读取指令,也就是51 芯片的EA 脚控制着单片机程序从内部读取还是从外部读取,31 脚接电源,程序从内部读取,31 脚接地,程序从外部读取.实际制板31 管脚要接高电平,否则单片机不执行程序。真电路中P0 口可以不接上拉电阻,但在实际电路中接数码管的时候P0 口作为I/O 口输出的时候时输出低电平为0 输出高电平为高组态(并非5V,相当于悬空状态)。也就是说P0 口不能真正的输出高电平,给所接的负载提供电流,因此必须接上拉电阻(一电阻连接到VCC),由电源通过这个上拉电阻给负载提供电流。
文献[12]中超声波具有定向性好、能量集中、在传输过程中衰减较小、反射能力较强等优点,超声波传感器可广泛应用于非接触式检测方法,因而采用仿真技术进行超声波测距。目前国内的超声波测距专用集成电路都是只有厘米级的测量准确度。通过分析超声波测距误差产生的原因,提高测量时间差到微秒级,以及用LM92 温度传感器进行声波传播速度的补偿后,设计的高准确度超声波测距仪能达到毫米级的测量准确度。
文献[13]中谈到放大电路的应用,放大电路就是对信号的放大,但是放大的前提是不失真只有再不是真的情况下放大才有意义。红外线传感器探测到有人进入时会输出一个电压信号,经放大器放大,然后送给单片机,从而由单片机控制整个系统,并发生声光报警。结合本设计,此放大系统应用的是三极管放大电路。
文献[14]中讲到液晶显示器以其零辐射,低耗能,散热小,纤薄轻巧等诸多优点,已经在各个领域中得到了广泛的应用。LCD1602 作为现在电子产品的通用器件,一般用于显示数字、专用符号和图形。该文采用单片机系统对LCD1602 进行控制,分析LCD1602 液晶显示器的管脚功能,对LCD1602 显示进行程序设计。
文献[15]中讲到C语言在单片机开发中的运用目前比较广泛, 它使单片机应用于生产生活的时候更为有效, 同时极高的开发效率将单片机的使用推广到了生产生活的各个方面。面对目前计算机领域技术发展的最新环境, 汇编语言对于单片机开发来说已经不是最适合的程序编写技术了。综上所述, C语言应用于单片机的开发对单片
超声波测距报警器的设计与实现
机在未来运用于更广阔的空间具有很大的促进作用。
文献[16]中介绍基于Proteus与Keil的简单抢答器项目设计,通过这个项目的设计,我们可以掌握单片机开发及设计流程,学生的思维得到了大大的拓展,通过仿真我们可以清楚项目设计中遇到的难题及项目能否成功实现。另外,采用实验箱或实验板加硬件仿真器设备,也大大增加设备的维护工作及经费的投入,Proteus与Keil软件的出现,解决了这些问题。
这些理论价值给了我很大的价值,学到了很多知识,为毕业设计做了很大的铺垫,例如超声波测距的原理,测距的算法、温度补偿、以及液晶显示的工作原理,与单片机接口的方法,怎样控制测距的精度,怎样减小误差,怎样去编写一种语言程序。
经过参考别人的论文和设计方案,从中找到优点和缺点,吸收他们的优点,改进他们的缺点,从而设计出更好的作品。同时我知道这些资料对于毕业设计是远远不够的,还要自己去主动学习更多的知识,后面的路还很长,要充分利用每一天,请教老师和同学,接受好的建议,争取顺利完成设计。
超声波测距报警器的设计与实现
参考文献
5.基于psoc的超声波测距 篇五
根据超声波测量距离系统,给出了汽车测距防撞报警系统的.设计.该系统能在汽车行驶以及倒车过程中自动检测出汽车与最近障碍物之间的距离(或行车中的车距)并通过LED显示出来,当到达极限距离时,系统能发出声光报警,进而提醒司机以防撞车.试验研究结果表明,该系统具有一定的实用价值以及广阔的推广应用前景.
作 者:仇成群 胡天云 QIU Chengqun HU Tianyun 作者单位:仇成群,QIU Chengqun(盐城师范学院,江苏盐城,224002)
胡天云,HU Tianyun(盐城供电公司,江苏盐城,224002)
6.基于psoc的超声波测距 篇六
基于小波变换的偶极声波测井横波首波的提取
在利用首波波至提取偶极声波测井横波时差的方法中,横波首波的准确提取显得非常重要,关系到时差提取的准确度.但是在实际声波信号中尤其是慢速地层中测得的信号,纵波和横波幅度比值曲线的不确定会对横波首波的提取产生影响,使得横波首波的提取存在一定的难度.在此提出基于信号奇异性检测理论、阈值去噪、小波变换模极大值原理相结合的提取偶极声波测井横波首波波至的新方法,对声波信号进行小波变换,寻找小波变换系数的局部极大值点,利用阈值去噪和奇异性检测理论消除噪声和纵波在整个信号中的影响,最后根据模极大值原理的`交替投影算法重构保留的横波信号.应用此方法能够很好地消除在提取横波首波波至过程中纵波和噪声的影响.实际资料处理结果表明,该方法可以在慢速地层中很好地检测出横波首波的波至.
作 者:宋t 谌海云 陈科贵 刘小红 彭利果 郑琦怡 作者单位:宋t,谌海云,刘小红,彭利果,郑琦怡(西南石油大学电子信息工程学院,四川,成都,610500)陈科贵(西南石油大学资源与环境学院,四川,成都,610500)
刊 名:石油天然气学报 PKU英文刊名:JOURNAL OF OIL AND GAS TECHNOLOGY 年,卷(期): 30(5) 分类号:P631.84 关键词:偶极声波测井 小波变换 阈值去噪 模极大值原理 横波首波提取7.基于单片机的超声波测距系统设计 篇七
本论文设计的内容是以STC89C52单片机为核心制作单片机系统实现对距离信号的测量, 基本实现: (1) 液晶显示所测距离数值; (2) 所测距离小于设定值时, 系统报警; (3) 测距范围5 m, 误差<10 cm。
1 系统总体方案设计
本设计中的超声波测距系统是由五个模块组成的, 分别是:单片机控制单元 (简称MCU) 、超声波传感器、显示电路、按键电路和报警电路。
MCU控制单元主要功能是发送方波信号, 发送的40 k HZ的方波信号最后会经过发射换能器显示为超声波信号。LCD液晶显示屏被选择作为显示电路的载体。报警电路是由一个蜂鸣发声器和一个LED灯组成。如果出现两者之间距离过近的情况, 报警电路开始工作, 即声光报警, 同时进行报警。基于单片机的超声波测距系统设计方案如图1所示。
2 系统的硬件设计与实现
2.1 单片机引脚分配
根据系统设计及各模块分析得出, 单片机的引脚分配如表1所示。
2.2 单片机最小系统
如图2所示为STC89C52的最小系统, 整个系统有至少四个部分, 上拉的晶振电路、复位电路、P0口、EA等。
晶体振荡器电路包括两个30p F的电容器、两个电解电容分别为C2、C3和12M晶体X1。电容的作用在这里是起振作用, 帮助晶振更容易起振, 取值范围是15~33p F。晶振的值可以是24 M, 晶体的值越高, 执行单片机的速度越快。
极性为10u F的电容C1和阻值为10 K电阻R4构成了系统的复位电路。由于电容电压不能突变的使用性质, 当系统通电后, RESET引脚的电平是高电平, 而RC的值将决定高电平持续时间的长短。RC的值合适, 就可以保证复位的可靠性。
在电路图中, 电阻的阻值大小是10 K, 电容器的容量大小为10u F。所以根据公式, 可以计算出当电容被充入0.7倍的电源电压的电 (MCU电源为5 V, 所以这是0.7倍的充电到3.5 V) , 所需要的时间是10 K×10UF=0.1 S。在计算机启动0.1 S过程中, 电容两端的电压在0~3.5V内升高, 此时接收到电压的RESET引脚是5~1.5V。电压信号小于1.5 V, 5V正常工作的微控制器保持低电平信号, 并在电压信号大于1.5 V的情况下保持高电平信号。所以, 在启动系统的0.1 S的时间里, SCM系统无需外力即可复位。
由于STC89C52的P0口的输出是漏极开路输出, 所以P0口与一个10 K排阻R1连接, 使P0口可以作为通用I/O引脚。
在31引脚 (EA) , 当连接到一个较高的电平时, 在复位后, 微控制器从内部ROM的0000H执行;当连接到一个较低的电平时, 复位后, 直接于外部ROM的0000H启动。因为程序存储在内部微控制器, 所以EA要接高电平, 保证单片机是从内部读取程序执行。
2.3 超声波模块
超声波测距模块采用的是型号HC-SR04, 其可提供一个无需接触的距离感应功能, 范围为2~400 cm的, 其结构简单, 操作简便, 易于在单片机控制电路中使用。超声波模块一共引出四个引脚, 其中一个脚接VCC, 另一个接GND, 其他两个分别连接单片机的IO口。在本设计中, 把超声波的ECHO引脚接到单片机的P23口, TRIG引脚连接单片机的P22。
2.4 报警电路
本系统采用声光报警, 即给本系统设定一个报警值, 当测量到的距离小于报警值时, 蜂鸣器鸣叫, LED灯亮起。由于蜂鸣器的工作电流一般较大, 单片机的I/O口是无法直接驱动蜂鸣器工作, 因此需要借助三极管进行驱动。三极管的控制脚 (基极) 也是接到单片机P20上, 所以单片机的P20一旦输出低电平, 蜂鸣器就会报警鸣叫。LED的正极接到了电源的正极, 负极串联一个1K的电阻后连接单片机的P21。因此, 只要保证单片机的P21口为低电平, 才能使该LED灯亮起。
2.5 按键模块
键盘是人们处理微控制器的主要设备。本设计中由于采用的按钮数量较少, 只有3个按键, 分别是“K1”“K2”“K3”, 其作用分别是“设置”“加”“减”, 故采用了独立键盘的方式, 分别连接单片机的P10、P11和P12。
3 系统的软件设计
在图3所示的系统软件流程图中, 首先是液晶初始化开始, 包括初始化其内容和LCD液晶功能。接着进入一个死循环的过程, 进入循环的第一个任务就是启动超声模块, 将测得的距离通过1 602液晶显示出来, 接着判断该测得的距离是否小于设置值, 如果小于设置值, 则进行声光报警。在第一个任务完成后, 扫描按钮, 判断键是否被按下, 如果被按下, 则操作前进到设置报警值。这样就完成了第一次循环, 不断循环, 进行下一轮的距离检测和按键扫描。
4 系统的调试
通过不断的程序调试, 使本系统的精确度不断提高。同时, 运用刻度尺等测距工具测量测试的距离看是否满足要求, 不断调整, 完善系统性能。为了检验本次设计的超声波测距仪的测量范围和测量精度是否满足设计的要求, 需要调试分析系统。由实物频率计进行测量频率, 并记录数据。实际记录数据如表2所示。相对偏差绝对值计算公式1如下:
测量数据表明本次设计的误差在合理可控的范围内, 满足设计<10 cm的要求。因此, 此次设计的方案是可行的。
5 结语
本文以STC89C52单片机为控制芯片, 利用超声波方法测量物体间的距离, 以数字形式显示测量距离, 并在距离小于设定值发出报警。通过实践证明, 超声波检测的速度更快, 算法更为简单、更为便捷, 容易实现控制的实时性, 并且测量的结果可以满足实际工业生产要求。
摘要:人们的日常工作和生活中经常使用超声波测距, 如倒车雷达、B超检测、机器人的定位等等。因此, 超声波的合理利用与人们的生产生活息息相关。本论文以STC89C52单片机为控制芯片, 测距模块运转发出一定频率的声波遇到障碍后反射回来, 由接受器接受, 将信号传送至单片机, 再经单片机处理后变成高低电平输出执行, 最终达到合理测距, 并具有适时声光报警的功能, 通过调试验证了系统的抗干扰性好、实时性良好以及系统扩充性好的特点。
关键词:STC89C51,超声波,测距
参考文献
[1]陈大新, 胡学同, 周杏鹏.利用FPGA改进超声波测距模块设计[J].传感器技术, 2005, 24 (2) .
[2]刘凤然.基于单片机的超声波测距系统[J].传感器世界, 2001 (5) .
8.超声波测距仪设计及其应用分析 篇八
[关键词] 超声波测距 单片机 温度传感器
随着社会的发展,人们对距离或长度测量的要求越来越高。超声波测距由于其能进行非接觸测量和相对较高的精度,越来越被人们所重视。本设计的超声波测距仪,可以对不同距离进行测试,并可以进行详尽的误差分析。
一、设计原理
超声测距仪是根据超声波遇到障碍物反射回来的特性进行测量的。超声波发射器向某一方向发射超声波,在发射同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即中断停止计时。 通过不断检测产生波发射后遇到障碍物所反射的回波,从而测出发射超声波和接收到回波的时间差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
【基于psoc的超声波测距】推荐阅读:
基于stm32超声波测距09-30
超声波检测公式10-03
超声波检测行业标准表07-14
超声波人脸识别方法研究11-22
超声波检验作业指导书11-28
超声骨密度仪的简介09-12
超声诊断的基本原则11-12
超声和次声的教学课件八年级物理08-04
超声进修个人总结06-25
超声刀操作流程07-06