超声波测距调试与仿真
- 格式:doc
- 大小:1.68 MB
- 文档页数:4
一、实验目的1. 理解超声波测距的基本原理。
2. 掌握超声波测距模块的硬件连接与软件编程。
3. 学习使用超声波测距模块进行距离测量。
4. 了解超声波测距在实际应用中的优势与局限性。
二、实验原理超声波测距是利用超声波在介质中传播的速度和距离之间的关系来测量距离的一种方法。
当超声波发射器发出超声波时,它会遇到障碍物并反射回来。
通过测量发射和接收超声波之间的时间差,可以计算出障碍物与发射器之间的距离。
超声波在空气中的传播速度大约为340m/s。
设超声波发射器与接收器之间的距离为d,超声波从发射器传播到障碍物并返回所需的时间为t,则有:\[ d = \frac{v \times t}{2} \]其中,v为超声波在空气中的传播速度,t为超声波往返所需的时间。
三、实验设备1. 超声波测距模块HC-SR042. STM32单片机开发板3. 调试工具4. 电源5. 导线四、实验步骤1. 硬件连接(1)将超声波测距模块的VCC、GND、TRIG和ECHO引脚分别连接到STM32单片机的3.3V、GND、GPIO和中断引脚。
(2)将STM32单片机的电源和地连接到实验平台的电源。
2. 软件编程(1)编写STM32单片机的程序,用于控制超声波测距模块。
(2)程序主要包含以下功能:- 初始化GPIO和中断引脚;- 发送触发信号;- 读取回响信号;- 计算距离;- 显示距离。
(3)使用HAL库函数实现上述功能。
3. 调试与测试(1)将程序烧录到STM32单片机中。
(2)使用调试工具检查程序运行情况。
(3)调整超声波测距模块的位置,测试不同距离下的测量结果。
五、实验结果与分析1. 实验数据通过实验,得到以下数据:| 距离(cm) | 测量值(cm) || :--------: | :--------: || 10 | 9.8 || 20 | 19.7 || 30 | 29.6 || 40 | 39.5 || 50 | 49.4 |2. 数据分析实验结果表明,超声波测距模块的测量精度较高,误差在±1cm以内。
超声波测距实验方法与精度控制超声波测距是一种常见的测量距离的方法,它利用超声波在空气中传播的特性来测量目标物体与测量设备之间的距离。
在这篇文章中,我们将探讨一些常见的超声波测距实验方法以及如何控制测量的精度。
首先,让我们了解一下超声波测距的基本原理。
超声波是一种高频声波,其频率通常在20kHz至100kHz之间。
超声波在空气中传播的速度约为343米/秒,而且能够在相对较远的距离内传播。
当超声波遇到目标物体时,一部分声波会被反射回来,并被接收器接收到。
根据超声波的传播时间和传播速度,我们可以计算出目标物体与测量设备之间的距离。
一种常见的超声波测距实验方法是使用超声波传感器。
这种传感器通常由一个发射器和一个接收器组成。
发射器将超声波发送出去,然后接收器接收到反射的声波。
通过测量超声波的传播时间,我们可以计算出目标物体与传感器之间的距离。
这种方法可以广泛应用于自动测距和避障系统中。
为了保证测量的精度,我们需要注意几个因素。
首先是超声波的传播速度。
理想情况下,超声波在空气中的传播速度是恒定的,但实际上会受到温度、湿度等环境因素的影响。
在实验中,我们可以通过校准传感器来调整超声波的传播速度,以提高测量的准确性。
另一个影响测量精度的因素是信号的干扰。
超声波测距设备通常会受到外部噪声的影响,如其他电子设备的干扰或者周围环境的声波干扰。
为了减小信号干扰,我们可以使用滤波器来滤除高频或低频噪声,使得接收到的信号更加清晰。
此外,超声波测距还受到目标物体的形状和材质的影响。
不同形状和材质的物体对超声波的反射和吸收情况有所不同,这会影响测量的精度。
在实验中,我们可以通过测量不同形状和材质的物体来研究这种影响,并进行相应的修正。
在进行超声波测距实验时,我们还需要注意测量的范围。
超声波的传播距离是有限的,而且会随着距离的增加而衰减。
因此,在选择超声波测距设备时,我们需要根据实际需求确定测量范围,并选择适合的设备。
此外,为了提高测量精度,我们还可以使用多个传感器进行测量,并取其平均值来进行校正。
第三节.物位仪发送接收整套程序物位仪最终的目的就是要测量到与物位的距离。
发送接收的软件设计主要由超声波发送程序、超声波接收中断程序、运算程序和显示程序组成。
通过单片机89C52发送矩形波信号,在低电平时候触发换能器,同时打开计数器1,在高电平时候停止发送,给负责接收的锁相环留出时间进行捕捉频率。
在程序设计前还要进行盲区的设置,因为在换能器刚发出频率信号后,由于共振,我们要避免超声波从发射刚开始就传送到接收引起直射波信号,我们需要延时大概4000us到12000us,这个就是我们所说的要设置盲区。
在盲区之后,才打开电子控制开关G4,频率信号进入锁相环LM567,输出端8脚由高电平跃变为低电平,作为中断请求信号,响应中断请求信号后,触发外部中断1进行信号的接收,一旦接收到信号,计数器1立即停止,通过算法子程序将数据进行S=1/2CT的计算后,送到4094驱动数码管显示出测得的结果。
如果计数器溢出还,并不断发送矩形脉冲。
直到距离在量程没有收到回波信号,则将关闭计数器T1以内才行。
发送接收程序的流程图如图6.4所示图6.4实际测量举例:当我们测量1米83距离时候,通过Medwin2.39调试出的特殊功能寄存器和数据区的数据记录如下面两幅图可以看到。
从图6.5可以看出,在外部中断1接收到回波后,计数器1就停止计数了。
这样,可以求得TH1里面的数据是2A,而TL1中的数据是90,我们根据数据计算:902=+⨯2=A66FFAμ10854s()ms=⨯10854米÷.1/8317.01000图6.5从图6.6数据存储器中可以看到,20H单元存放的是T—CLK、GAIN4里面数据,即00000101,所以20H里面是05H,而50H、51H分别存放TL1、TH1的值,40H、41H、42H、43H里面就是存放数码管显示的数据,通过4094移位功能,最后显示在数码管上的结果就是183,单位是厘米,如果有四个数码管,理论上,最大可以测到99米距离,计数器1能计算的最大距离大约是10米,所以,显示是足够的。
超声波测距仿真流程1.引言1.1 概述概述部分的内容可以描述超声波测距的背景和重要性,以及本文将要介绍的超声波测距仿真流程。
首先,超声波测距是一种常用的非接触式距离测量技术,通过利用超声波在空气中传播的特性来测量目标物体与传感器之间的距离。
超声波测距技术广泛应用于工业、医疗和安防等领域,因其测量精度高、响应速度快、无辐射等优势而备受关注。
本文将重点介绍超声波测距仿真流程,通过利用计算机模拟的方法,在虚拟环境中模拟超声波的传播和接收过程,并根据物体与传感器的距离推算出相应的测量结果。
通过仿真可以帮助研究人员深入理解超声波测距的原理和技术,并为实际应用提供参考和指导。
接下来的章节将详细介绍超声波测距的原理和仿真方法。
首先,我们将介绍超声波测距的基本原理,包括超声波的产生、传播和接收过程,以及如何根据测量结果计算目标物体与传感器之间的距离。
然后,我们将详细阐述超声波测距仿真的方法,包括建立虚拟环境、选择合适的仿真模型和参数设置等,以及如何通过仿真得到准确的测量结果。
在结论部分,我们将对本文进行总结,并展望超声波测距仿真技术的未来发展方向。
超声波测距仿真技术具有广阔的应用前景,可用于产品设计验证、算法优化和系统性能评估等方面,在实际应用中发挥重要作用。
我们希望本文能够为读者提供一种深入了解超声波测距原理和仿真流程的方法,促进超声波测距技术的研究和应用。
1.2文章结构文章结构部分内容示例:1.2 文章结构本文主要从超声波测距的原理和仿真方法两个方面展开讲解。
首先会对超声波测距的概念和应用进行概述,介绍其在工业、医疗、安防等领域的重要性和广泛应用。
然后,文章会详细阐述超声波测距的原理,包括超声波的发射和接收机制,以及相关的物理特性,为后续的仿真建模做好理论准备。
接下来,将重点探讨超声波测距的仿真方法。
我们将介绍不同种类的超声波传感器模型,如时域模型和频域模型,并对它们的优缺点进行分析和比较。
同时,还会介绍一些常用的仿真软件和工具,如MATLAB和COMSOL Multiphysics,用于实现超声波测距仿真模型的搭建和分析。
论文1:超声波测距系统一个仿真研究Sanda-Ioana MORAR, Amar AGGOUN, Mircea-David MORAR德蒙福特大学计算机科学与工程系电话+44 (0)116 255 1551,传真+44 (0)257 7692,邮箱:aggoun@, mis@. mdmorar@摘要:这篇论文的目的是建立和开发一个仿真超声波测距系统的软件包,用这种方式数据可以嵌入到一个光学扫描系统。
为了实现目标将对以下几个方面进行探讨。
首先是超声波传感器的塑造。
超声波传感器的一个新模型已经开发出来了。
根据传感器的滤波和阻尼性能对其进行分解。
传播介质的模型和不同目标也被嵌入到这个仿真系统中。
这个测距系统是用这个提出的模型进行仿真的。
仿真的结果将会和实验测量的结果比较,然后进行讨论。
关键字:超声波测距,光学扫描,超声波传感器模型1,.介绍现在超声波测距是一个用于测量离目标的距离的很常见的技术。
产生的距离可以用于光学扫描系统,记录的数据转换成初始目标的准确测量。
那是一种探讨较少的研究领域,从军事到保健系统有不同的应用。
制作超声波测量系统应用最广泛的方法是Pellam和Galt在1946年提出的超声波脉冲回波法【1】。
进一步说,超声波测距系统可能会融入光学扫描系统。
对诸如人体这样目标的准确测量时非常重要的【2】。
还有其它光学扫描方法-如红外线-但是相对于超声波系统昂贵许多而且很难达到。
一个对于那些超声波系统的电脑仿真-测距或者扫描-会带来无可置疑的优势,如允许在实验室为一个具体问题建立一个模型或减少实验费用。
这会激起我们目前在这个工作里的兴趣。
这篇论文开始是关于脉冲回波法和飞行法的简要介绍。
一项关于已经存在的超声波传感器的调查被覆盖了。
论文的第二部分将介绍所推荐的仿真模型。
仿真和实验结果会进行讨论。
2.背景2.1 脉冲回波法在一个脉冲回波实验里,一个电动脉冲应用于一个超声波传感器。
超声波传感器将这个电信号转变成一个声波。
一、按如下图示连接好电缆线:1:VCC 电源+5V输入2:ECHO 计数(计时)管脚3:TRIG 触发输入4:DQ 温度传感器IO口(暂不提供本功能,不连接)5:GND 电源地6:PCW RS232通讯接口TXD,RS232电平(暂不提供本功能,不连接)7:PCR RS232通讯接口RXD,RS232电平(暂不提供本功能,不连接)二、程序处理单片机程序处理时,只要将TRIG脚给一段时间的高电平,模块自动就会发送40K的方波,发送完毕ECHO脚为高电平,模块自动检测是否有信号返回,如有信号返回,ECHO脚变为低电平,ECHO脚的高电平时间就是超声波走过的时间,测试简单方便。
身长转换公式:L=(331.5+0.6*T)*b*js+offset;其中L为测量长度,T为当前温度,b为长度转换系数(不同单片机该系数不同,需要自行测试得出该值),js为ECHO脚的高电平时计数值(可参考以下子程序),offset为偏移值(对测量精度要求不高时,此项可省略)各变量定义为:unsigned long L ; unsigned char T; float b;unsigned int js; float offset;对测量精度要求很高时,可对超声波测量距离进行校长标定处理,即在两个不同的点分别进行校正,校正时L、T、js都是已知量,可以求出长度转换系数b和偏移量offset,然后再根据每次测量的js值,可以求出实际的长度。
三、调用子程序注意:以下程序已经是成功运用到产品中的子程序,请放心调用,不要随意外传已成功的超声波测距程序~~室温25摄氏度。
#include<reg52.h>#define uchar unsigned char#define uint unsigned intvoid udelay(int a);sbit echo=P1^0;sbit trig=P1^2;uint i;unsigned long js=0;float l;uint ll;uint height[5];uint table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x80};uint led[]={0x00,0x01,0x02,0x03,0x04};void fdelay(int a);void display();void main(){echo=1;while(1){trig=1;udelay(50);trig=0;while(echo==0) ;while(echo==1) js++;l=0.3035*js+9.5;ll=(uint)(l*10);display();i=0;while(i<5){P2=led[i];P0=table[height[i]];fdelay(10);i++;}js=0;}}void display(){height[0]=( ll/1000);height[1]=(( ll/100)%10); height[2]=((ll/10)%10);height[3]=10;height[4]=(ll%10);}void fdelay(int a){uint ii=0;uint jj=0;for(jj=0;jj<a;jj++)for(ii=0;ii<=120;ii++); }void udelay(int a){uint ii=0;for(ii=0;ii<=a;ii++); }。
超声探伤灵敏度调节(纵波直探头)(模拟超声检测仪调整方法)♦探伤灵敏度:(定义)在确定的声程范围内,发现规定大小缺陷的能力。
♦灵敏度高:杂波↑,夸大小缺陷。
♦灵敏度低:漏探。
♦探伤灵敏度:根据标准、产品技术要求规定。
♦ 扫查灵敏度:通常高于探伤灵敏度。
作用:防止漏探、提高检测速度。
⒈试块调整法♦ 根据标准要求,选择相应试块,将探头对准试块上的人工缺陷,调整仪器有关灵敏度旋钮(衰减器、增益等)使示波屏上人工缺陷的最高反射波达基准波高即可。
例如:钢板探伤(板厚20-40mm )♦ 方法:将探头对准100×100×20试块上深15mmФ5平底孔,调衰减器、增益(抑制“0”),使Ф5平底孔的最高波为仪器示波屏满幅50%即可。
实际操作要加表面补偿4dB 。
例如:锻件探伤。
锻件厚200mm ,检测灵敏度为Ф2平底孔。
♦ 方法:将直探头对准CS-1-5试块深200mm ,Ф2平底孔,找出最高反射波,调衰减器、增益,使其达基准波高(例60%)即可。
实际操作要加表面补偿。
表面补偿数值大小,要根据试块、工件表面及材料损耗差测试、确定。
⒉工件底波调整法。
说明:即用工件底波调整探伤灵敏度。
优点:不用加工对比试块。
不用表面及材质衰减补偿。
♦ 调整方法:♦ ①计算:算出工件底面回波与相同深度平底孔回波的dB 差值,根据X >3N 处工件大平底反射声压计算公式与相同深度平底孔反射声压公式,算出PB 与PF 的dB 差值22lg 20lg 20D x P P dB F B πλ==∆式中:λ-超声波波长(mm )x-工件厚(mm )D-平底孔当量直径(mm )♦ ②调整:将探头对准工件底面,使B1达基准波高,然后用衰减器增益ΔdB 即可。
♦ 底面要求:平整、光洁。
工件底面不平整,影响灵敏度调整的准确性。
(高)例:用2.5P20Z 探厚400mm 饼形锻件,钢中CL=5900m/s ,用底波调Ф2平底孔灵敏度。
基于单片机的超声波测距系统摘要超声波是指频率在20kHz以上的声波,它属于机械波的范畴。
超声波也遵循一般机械波在弹性介质中的传播规律,如在介质的分界面处发生反射和折射现象,在进入介质后被介质吸收而发生衰减等。
正是因为具有这些性质,使得超声波可以用于距离的测量中。
随着科技水平的不断提高,超声波测距技术被广泛应用于人们日常工作和生活之中。
系统的设计主要包括两部分,即硬件电路和软件程序。
硬件电路主要包括单片机电路、发射电路、接收电路、显示电路和电源电路,另外还有复位电路和LED控制电路等。
我采用以AT89C51单片机为核心的低成本、高精度、微型化数字显示超声波测距仪的硬件电路。
整个电路采用模块化设计,由信号发射和接收、供电、温度测量、显示等模块组成。
发射探头的信号经放大和检波后发射出去,单片机的计时器开始计时,超声波被发射后按原路返回,在经过放大带通滤波整形等环节,然后被单片机接收,计数器停止工作并得到时间。
温度测量后送到单片机,通过程序对速度进行校正, 结合两者实现超声波测距的功能。
软件程序主要由主程序、预置子程序、发射子程序、接收子程序、显示子程序等模块组成。
它控制单片机进行数据发送与接收,在一定温度下对超声波速度的校正,还有实现数据正确显示在LED上。
另外程序控制单片机消除各探头对发射和接收超声波的影响。
相关部分附有硬件电路图、程序流程图。
实际的环境对超声波有很大的影响,如外部电磁干扰电源干扰信道干扰等等,空气的温度对超声波的速度影响也很大。
此外供电电源也会使测量差生很大的误差。
再设计的过程中考虑了这些因素,并给出了一些解决方案。
关键词 AT89C51 超声波测距目录第一章绪论 (3)1.1 超声波测距背景意义 (3)1.2 本设计任务的主要内容 (3)第二章总体设计方案 (4)2.1 超声波测距系统原理 (4)2.2 超声波测距系统框图 (4)第三章系统主要硬件设计 (5)3.1超声波收发射电路 (5)3.2单片机主机系统电路 (6)3.2.1 单片机电路 (7)3.2.2 复位电路 (7)3.2.3 时钟电路 (8)3.2.4 按键电路 (9)3.2.5 蜂鸣器电路 (10)3.3 温度采集DS18B20电路 (11)3.4 LCD显示电路 (12)第四章系统软件设计 (13)4.1系统程序的结构 (14)4.2 系统主程序 (15)第五章基于Proteus的软件仿真 (16)第六章总结 (19)参考文献 (20)附录 (21)第一章绪论1.1超声波测距背景意义在基于传统的测力距离存在不可克服的缺陷。
6 仿真与调试6.1 基于Proteus软件的仿真Proteus是一款功能强大的软件,其ISIS用来做仿真十分方便,尤其是单片机系统的仿真,我们在本设计的开发初期,用Proteus来仿真我们的设计,以便验证我们的设计,对设计的正确性做出分析。
因为在proteus软件中没有超声波传感器之类的元件,发射和接收的信号可以用信号发生器发出的类似信号进行仿真。
本次仿真与实际电路现象有所出入,所以仅供参考;在proteus软件里用“激励源”里的“SINE”作为超声波发射信号,设置如下图6-1所示:图6-1 超声波模拟发射信号设置用“虚拟仪器”里的简易示波器来接收正弦波进行观察;下面的“虚拟示波器”中,蓝色的波是模拟超声波发射的正弦波,黄色的波是接收到的波。
6.2电路调试首先对单片机最小系统进行检测,看单片机是否正常工作;比如晶振是否起振,复位电路时候能对单片机进行复位。
在这些都正常后就可以对原理图中的各个模块进行调试。
(1)显示电路的调试对显示电路的调试主要是调试程序所写的和数码管的显示是否一致,若不一致就对数码管的高低位显示做调整。
首先调试显示电路主要是为了方便后面的调试(2)发射模块调试上电后,在单片机P1.0脚处用示波器检测是否有波发出,然后再在超声波换能器TCT40-10F1连接处检测发出的波的状况;TCT40-10F1的连接要注意引脚的高低电平。
(3)接收模块调试接收模块的调试不太容易,因为不知道什么时候可以接收到波,所以我在程序中有设置设置了若接收到波数码管的显示不为“0000”;通过TCT40-10S1还还可以判断,若接收到波后,TCT40-10S1的高电平脚变为低电平。
为了能更好的发射和检测到波,我设置了两组超声波换能器,发射都是从P1.0脚出来,都由P3.2进行采样接收。
图6-2发射波形图6-3接收波形(4)测温模快调试因为测温模块是由DS18B20智能温度传感器完成的。
通过对程序的分析,认为flag=~DQ;语句会使while(flag)陷入死循环,故将其改为flag=DQ;,但是程序结果一直不理想。
超声波模块的调试——该碰到的都碰到了原文来自:牛奶动力博客 接着上一篇《超声波工作原理》开讲。
由于项目需要,我们并没有使用超声波测量距离的功能,我们只用来判断是否有障碍物。
另外,我们只让超声波检测1.5米范围内是否有障碍物,超出1.5米之外,全部要忽略掉。
因此我编写的程序可能和大家不太一样。
我使用12Mhz的晶振,机器周期为1us,即定时器每次加1用1us时间。
1.5米的距离,超声波来回一次走3米,3m/340米每秒= 8823us,就是说,如果经过8823us后,还没有收到回响信号,说明距离已经超出了1.5米,我直接丢弃,并警告距离超出1.5米。
这样,定时器的初始值可以设置为(65536 - 8823us)。
那么怎么判断是否溢出呢?我使用TF0来做。
程序如下,其中P1.7 、P0.7、P3.7是测试用的脚,可忽略,硬件链接为:Trig -->P1.0Echo-->P3.2VCC -->VCCGND -->GND还有一个脚空着。
/*======超声波控制线=====*/Trig BIT P1.0 //发射端,高电平有效Echo BIT P3.2 //接收端,探测高脉冲有效,高脉冲持续时间,与距离成正比//OUT BITORG 0000HAJMP CSBORG 0003HAJMP INTT0ORG 0100HCSB: SETB EA /*首先开启总中断*/SETB EX0 /*开启外部中断0 */SETB IT0 /* 设置成下降沿触发方式*/MOV TMOD,#01HMOV TH0,#0DDHMOV TL0,#89HCLR P1.7CLR EchoSETB TrigLCALL DELAY_10usCLR Trig/*==============END=====================*/ WAITE_1:NOPJNB Echo,WAITE_1 //检测高电平出现,启动定时SETB TR0CLR P0.7LCALL DELAY_1SETB P0.7LJMP CSB/*==============外部中断0=====================*/ INTT0: CLR EACLR TR0JNB TF0,NEXT1CLR TF0LJMP BACKNEXT1: CLR P3.7LCALL DELAY_1SETB P3.7//SETB EABACK: RETI/*====延迟1s子程序====*/DELAY_1:MOV R0,#100DEL2: MOV R1,#10DEL1: MOV R2,#7DHDEL0: NOPNOPDJNZ R2,DEL0DJNZ R1,DEL1DJNZ R0,DEL2RET/*====延迟10us子程序====*/DELAY_10us:MOV R0,#10DEL3: NOPDJNZ R0,DEL3RET END。
单片机超声波测距的仿真,由于仿真软件里没有超声波头的仿真模型,造成单片机超声波测距仿真无法进行,要对超声波测距进行仿真,只能分步进行,即将接收电路的仿真与单片机系统的仿真分开进行,下面我将超声波测距仿真的分步进行的情况截图如下,提供给爱好者进行参考。
一、单片机超声波测距接收电路部分的仿真
本接收电路是我在单片机超声波测距中最常用的电路,电路由三极管分离元件构成,整个电路元件少、制作容易、调试简单,成功度非常高,下面是仿真截图:
二、单片机超声波测距单片机系统部分的仿真
由于仿真软件中没有超声波发射、接收头的仿真模型,这给单片机超声波测距仿真带来困难,为验证单片机超声波测距系统单片机部分及相应程序的正确与否,我想出来的个办法,在单片机发出超声波信号后,用555时基电路产生一个延时信号,来模拟超声波头发
送后遇到回波返射回来的这阶段时间,来对单片机超声波测距单片机系统进行模拟。
经过反复研究试验,最终确定如图的方案。
实际使用下来,仿真效果良好,可用该电路来验证单片机超声波测距系统的单片机部分及程序部份是否正确。
,仿真截图如下:。