超声波测距仪设计含SW三维及34张CAD图
超声波测距仪设计含SW三维及34张CAD图,超声波,测距仪,设计,sw,三维,34,cad
摘要超声波目前在全球的得到广泛的应用,超声波具有很强的方向特性,并且能耗低,传输的距离还比较远。因此,在传感器技术和自动控制技术相结合的测距方案中,超声波测距是最受欢迎的一种。广泛应用于防盗、倒车雷达、水位测量、建筑工地和一些工业场所。本次设计的文章就是根据超声波的原理来进行设计的,利用传输距离与时间的关系,计算了超声波从发射到遇上障碍物反射的往返时间,然后利用相关参数从距离计算公式中计算出被测距离。本设计以Ardiuno系列开发板为核心器件,形成相应的测距电路和信号处理电路,自制单片机控制程序,并进行硬件调试、软件调试,最后进行软硬件联合调试,达到性能要求11。测距仪主要由超声波发射电路、超声波接收电路、单片机控制电路、环境温度检测电路和显示电路组成。关键词:Ardiuno系列开发板 超声波测距 传感器 LED显示屏等AbstractUltrasonicfeaturesofstrongdirectivity,energyconsumptionisslow,propagationdistancefaraway,so,usingsensortechnologyandautomaticcontroltechnologywiththecombinationofdistancemeasurementscheme,theultrasonicrangingistheoneofthemostwidelyused,heiswidelyusedinsecurity,reversingradar,waterlevelandsomeindustrialfieldmeasurement,theconstructionsite.Thisarticleismainlyaccordingtotheprincipleandcharacteristicsofultrasonicsensor,usingtherelationshipbetweenthetransmissiondistanceandtime,calculatedfromtheultrasonicreflectedround-triptimetoencounterobstaclesontheway,andthenusetherelevantparameters,measuredbythedistanceformulatocalculatethedistance,thedesignUSESardiunoseriesdevelopmentboardasthecoredevice,toformthecorrespondingdistancemeasuringcircuit,signalprocessingcircuit,single-chipmicrocomputercontrolprogramonitsown,andhardwaredebugging,softwaredebugging,finallyalignment,thehardwareandsoftwaretomeettheperformancerequirements.Therangefinderismainlycomposedofultrasonictransmittercircuit,ultrasonicreceivercircuit,single-chipmicrocomputercontrolcircuit,environmentaltemperaturedetectioncircuitanddisplaycircuit.Keywords:Ardiunoseriesdevelopmentboard;ultrasonicranging,;sensor;LEDdisplay;etc目 录摘要IIAbstractIII第1章 绪论11.1 研究的背景和意义11.2 国内外研究现状11.3 课题研究内容和意义2第2章 超声波测距的原理52.1 超声波介绍52.2 超声波传感器的介绍52.2.1 传感器的选择52.2.2 超声波测距的原理62.2.3 温度补偿72.2.4 测量盲区82.3 本章小结9第3章 系统硬件设计103.1 系统硬件设计103.2 单片机概述113.2.1 ARDUINO主要性能特点113.2.2 ARDUINO结构组成113.2.3 ARDUINO内部组成143.3 超声波发射电路设计153.3.1 发射电路设计方案153.3.2 超声波发射器的注意事项163.4 超声波接收电路设计173.5 LCD显示部分193.6 报警部分213.7 DS18B20部分223.8 本章小结22第4章 系统软件设计234.1 系统软件设计234.2 外部中断子程序254.3 定时器中断子程序254.4 重要功能实现264.4.1 实现温度读取功能294.4.2 实现温度转换声速304.4.3 实现距离计算304.5 实验测量数据304.6 本章小结31第5章 工程定额概算325.1 超声波测距制作过程的成本预算325.1.1 非标设备制作定额的说明325.1.2超声波测距定额的几点说明325.1.3超声波测距制作定额基价表33结论34参考文献35感 谢36附录一(实物图)37附录二(三维模型图)39IV第1章 绪论1.1 研究的背景和意义社会不断发展的今天,在测量这个行业目前已经可以做到非常的精确了。随着社会经济的快速发展,电子测量技术逐渐应用于各个领域,超声波测距技术以其测量精度高、成本低、性能稳定等优点成为当今最优秀的测距技术之一8。基本上被称为超声波的都是频率超过20KHZ的声波,这种声波人的耳朵是听不到的,所以现在很多的工业现场或者是人们的生活当中,超声波被不断的应用,需求量也越来越大(如医疗、工业、航空航天等)。超声波是一种非常实用有效的测量方法。人们可以用它在不接触物体的情况下精确测量。它对环境因素(如光、高温、腐蚀性气体和湿度)的测量也有很高的抵抗力。而且具有测量精度高、维修维护的成本低,在正常的生活使用下寿命较长,最主要的特点就是对环境没有污染,所以超声波测距可以十分广泛的应用于生活或者工业的各个领域之中。在任何环境中,它都能准确地测量和校准精度。在程序中设定好参数值,就可以应用在很多的特殊环境的现场,比如测量液位灌的液体等等都可以使用超声波来完成。1.2 国内外研究现状事实上,超声波检测技术在应用中存在两个突出问题。一种就是环境中有超声波的存在,本身发出反馈的声波会受到杂波的干扰,二是随着检测距离的不断的增大,超声波的反馈信息会变弱,检测距离受到限制。因此传统方法对回波信号的提取没有影响。如何降低输入信号的信噪比一直是人们非常重视的问题。从19世纪末开始,随着傅立叶变换理论和傅立叶级数的出现,人们对频率信号的检测越来越重视。第一个锁定放大器于1962年问世,这使得提取淹没在噪声中的信号成为可能7。之后,出现了新的检测理论和方法,研制出了许多性能优良的测量仪器,成功降低了微弱信号的测量下限。自20世纪90年代以来,经过十多年的发展,出现了一种新的检测方法,混沌理论,它在微弱信号检测方面具有巨大的潜力。进入21世纪之后,国内众多学者和研究人员为提高超声测量的精度做了大量的尝试,其中包括超声发射脉冲的选择和新型超声换能器的研制,主要研究方向是怎样提高超声回波信号处理方法的精度。此外,针对提高超声波测距精度的措施,还提出了温度补偿方法。目前,我国对超声回波信号的处理虽然有较为成熟的研究和发展,但由于它在超声测距的检测和定位中起着关键作用,因此国内学者仍将其作为重要的研究方向之一。1.3 课题研究内容和意义在本次的论文中系统旨在实现实验室小范围的测距。测量的距离是2cm-300cm,测量精度可达2毫米级。系统的总体结构如图1.1所示。图1.1系统设计方案图 从图中可以看出,系统的硬件设计由六部分组成,即:(1) 信号发出电路。(2) 信号接收电路。(3) MCU主核心控制回路。(4) LCD液晶的显示电路。(5) 温度测量电路。(6) 声音报警电路。本次设计在实际的检测过程中,检测的距离位置会实时的显示在液晶屏幕上,超声波的发出就是前文提到的发射电路发出的,发出的超声波经过检测电路的处理进入检测回路。最终经过Arduino单片机程序的处理,计算出当前检测的实际距离,并将当前的实际的距离显示在LCD屏幕上,同时本次设计增加了超出报警的功能,如果检测的距离超出设定的上下限值,系统就会发出声音报警。超声波测距仪的系统框图如下图1.2所示。控制器图1.2系统设计框图HC-SR04型超声波测距模块在经济效益方面是一个很好的选择。从下面的图1.3可以看出,在T0时刻MCU控制超声波的发射电路发出一个声波,同时定时器开始定时,某一时刻检测电路检测到声波反射回来的信号,这个时候单片机停止计时,这个时间就是声音传播经过的路程所需的时间。两次测量的时差是超声波在我们需要的介质中的传播时间t。通过进一步的计算可以得到距离。 图1.3时序图通过本次设计,提高自己,学习了解供应链管理的相关知识,并且具体了解了基于单片机的超声波测距的发展现状,学习制作简单的测距仪。这对我们今后,不管是工作还是生活都有很大的意义。第2章 超声波测距的原理2.1 超声波介绍前文有说明,超声波是一种人类无法察觉和辨别的声音,在使用的过程中不会对人类产生困扰,目前的超声波在世界的各个范围内得到了广泛的应用,比如军事、医疗、工业等,下面是本次设计总结的超声波的特点:(1) 超声波工作在20khz的声波,所以射波的能量强,同时具备方向性。(2) 超声波可以应用于不同的传输介质中进行检测,同时传输的距离远。(3) 超声波有很强的载体,可以作为治疗的载体。(4) 超声波的能量比较集中,传输能量极强。(5) 超声波有反射现象。这也是它能成为测量距离的重要方法之一的原因之一。(6) 超声不仅是一种波形,而且是一种能量形式,可以作为医学诊断的媒介,如B超。2.2 超声波传感器的介绍目前市面上常规的超声波传感器大体可以分为两类,一类是电气声波,一类是机械声波4,本次设计使用是电气方法的超声波,即压电超声波发生器产生的声波。超声波传感器的结构如图2.1和图2.2所示。 图2.1超声波传感器外部结构 图2.2超声波传感器内部结构2.2.1 传感器的选择本次项目设计采用的超声波传感器为HC-SR04型号,该型号传感器检测距离远,精度高,同时具备角度补偿盲区小,目前广泛的被应用在智能小车的避障,倒车雷达等等领域。 电气部分的参数在下表2-1。表2-1超声波模块HC-SR04的电气参数名称参数电气参数超声波模块HC-SR04额定电压DC5V额定电流15mA额定频率40KHz检测最大射程3m检测最小射程2cm检测角度15输入触发信号10uS的TTL脉冲输出回响信号输出TTL电平信号,与射程成比例规格尺寸45*20*15mm模块的工作原理:本次设计采用的是I/O触发的方式进行检测的,本次设计的模块可以自行发出至少10us 高电平的信号。在触发模块向外界发送8个40khz的方波,超声波的模块会自行检测发出去的声波是否已经返回,当信号返回以后,超声波模块的I/O端口会发出反应,给出一定时间的高电平,这个高电平的持续时间就是超声波发出与返回的时间,在路程计算中还要除以2。在此次设计过程中,本次使用的模块方式就是按照上述的方案进行,当超声波发出的时候,端口会有高电平,然后检测高电平的时间,时间的检测通过定时器实现,将定时器的时间与声音的速度进行相乘就会得出距离,有一点需要注意的是,这个距离是往返的距离。2.2.2 超声波测距的原理在测量方面目前常用的检测方法有三种:(1) 声幅检测法:这种方法虽然最便宜、最简单,但容易受到反射波的影响,但其精度最低。(2) 相位检测法:相位检测法是利用发射波和反射波的相位差来实现超声波测距。如果起始时间为,则发射波的强度为: (2-1)(实际测量的发射波为方波,为便于计算和解释,此处才采用正弦波)。如果接收调制波的强度为: (2-2)则接收和发送时间之间的相位差为: (2-3)并且时差为: (2-4)根据时间与相位的关系,可以将待测距离: (2-5)转换为: (2-6)其中K是波长,N是整个周期的个数,是非整个周期的相位差。它可以用计数器测量。该方法虽然精度高,但检测范围有限。(3) 渡越时间法:首先,通过检测和计数,将超声波从超声波传感器发射端发出的时间记录为T1,超声波返回传感器接收端的时间记录为T2。两者之间的时差是T2-T1,这是传输时间。设L为测量距离,T为往返时间差,超声波传播速度为C,求出距离L,L=CT/2,该方法简单、直观、易于实现5。渡越时间法虽然精度不高,但其优点是测量距离足够远。基于以上分析,本次设计将采用渡越时间法。超声波测距原理如图2.3所示。图2.3超声波测距原理图2.2.3 温度补偿因为超声波也是一种声波,所以它的声速C仍然与空气的温度有关。一般来说,温度每升高1摄氏度,声速C就会增加0.6米/秒。表2-2列出了几种温度下的声速。表2-2超声波声速随温度的变化温度()-30-20-100102030100声速(m/s)313319325323338334349386在测量时,如果温度变化不大,声速值为C=340m/s,并且要求较高的精度,就可以通过温度补偿或进行软件改进来提高其精度。本设计采用Arduino定时器测量超声波传播时间,采用DS18B20测量环境温度,提高测距精度。声速与空气温度之间的关系可以表示为:由于声音传播的速度恒定,所以只要得到超声波往返的时间,就可以计算出距离: 为了确保测量的准确性可以增加角度补偿。 (2-7)2.2.4 测量盲区大家都知道,超声波模块的发射探头和接收探头并排置于铜板上。为了便于测量,再加上测量会有一个夹角,夹角越小,测量就会越精确,所以这两个探头非常接近。显然,发射探头发出的超声波将不可避免地首先传播到接收探头。但是,声音信号不是反射信号。只要检测到信号,接收电路就会对其进行处理并产生中断信号,单片机也会做出相应的响应5。但是测量值不是我们想要测量的,它是错误的操作。因此,在MCU接收到中断信号之前,必须等待一段时间。然而,我们无法检测出短时间的长度,即测量盲区。如下图2.4所示。图2.4超声波回波测距原理分析图2.3 本章小结本章主要介绍了本次设计的原理,总结超声波在此次设计中的应用,阐述了超声波传感器的性能特点、内部组成和外部结构。超声波传感器的选择也很重要,最重要的是超声波测距的原理和方法,这是此次设计的基础。因此,本章介绍了这一问题,并采取措施减少测量误差。第3章 系统硬件设计3.1 系统硬件设计 从前文的描述可以看出,本次设计的硬件电路可以分为6个部分: (1)核心的单片机的主控制电路。 (2)超声波的模块电路,超声波的电路包括发出电路与接收电路。 (3)温度的检测部分。 (4)LCD的显示,主要是对LCD1602的控制显示。 (5)蜂鸣器报警电路设计。其结构框图如图3.1所示。图3.1系统硬件设计结构框图目前国内外的电子技术不断的突破瓶颈,不断的向前发展,超声波的测距技术也在不断的向前发展。所以研究超声波的测距技术研究是一件非常有意义的事情。超声波传感器的工作原理是一样的。不管它的大小,形状和灵敏度。为了提高超声测量的精度,必须从设计要求的重点和难点入手,即超声发射处理和超声接收处理两个重要方面。3.2 单片机概述单片机是由多个功能模块组成的集成电路芯片2。因此单片机将具有一些特殊的功能。然而,这些功能的实现需要人的控制,即通过编程来控制,然后实现各种功能。目前,单片机被广泛应用于许多领域:(1)工业控制领域的数据采集以及控制。(2)智能能仪表的应用,比如市面上常见的电表,水表智能手表。(3)生活类的电子产品,比如手机、电冰箱、洗衣机、微波炉等。(4)通信技术,比如信号塔,基站、路由器等。(5)军事上的应用,比如导弹、雷达等等。3.2.1 ARDUINO主要性能特点Arduino简介:主要性能:(1)Arduino系列单片机与标准8051单片机从引脚到内核兼容。(2)Arduino系列单片机是新一代8051单片机。它具有速度快、功耗低的优点,工作频率可达25mhz-50mhz。(3) Arduino系列单片机工作电压宽。 5V模式可以工作在3.4v-6.0v。 3.3V模式可以工作在2.0v-4.0v。Arduino单片机还具有以下特点:(4)ISP和IAP编程模式。(5) 6时钟,机器循环模式。(6) 减少铺垫机的外部电磁辐射。(7) 内部扩展ram。(8) 双dptr数据指针。(9) 早上打开P4。(10) 内置看门狗电路。(11) 软复位功能。(12) 高性价比。3.2.2 ARDUINO结构组成图3.2显示了其profile包的倾角。Arduino的四个8位I/O端口的功能描述如下:(1)P0口 单片机的P0的端口是一个比较特殊的端口,可以有两种功能,就是普通的I/O的功能以及数据端口的功能,比如作为LCD1602数据传输的端口使用。但是P0端口作为双普通的端口输出的时候有一点需要特殊的注意就是,要在P0的端口上加上上拉电阻,如果P0的端口没有上拉电阻就作为普通的IO端口使用,那么P0端口的驱动能力将会大大的降低。(2)P1口P1的端口也是与P0类似,但是P1端口内部自带上拉电阻在作为普通的输入与输出的端口时可以不用增加上拉电阻。输出时将数据写入锁存器,锁存器的内容被直接送出引脚。输入时,必须先将锁存器的值置1,使场效应管截止,引脚的数据直接被读入内部数据总线。P1端口的位结构如下图3.2所示:图3.2 P1端口图(3)P2口 P2口是准双向I/O,具有两种功能。既可以作为一般的输入输出口使用,也可以作为外部存储器的地址输出端口使用。 P2口的位结构如下图3.3所示:图3.3 P2端口图(4)P3口P3口是准,双向多功能I/O,既可以作为一般的输入输出端口使用,也可以作为特殊功能I/O口使用。P3口的位结构如图3.4所示:图3.4 P3端口P3口各位的特殊功能如表3-1所示:表3-1 P3端口功能表端 口名 称P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2/INT0(外部中断0)P3.3/INT1(外部中断1)P3.4T0(记时器0外部输入)P3.5T1(记时器1外部输入)P3.7P3.8/WR(外部数据存储器写选通RD(外部数据存储器读选通)图3.5 ARDUINO引脚排列3.2.3 ARDUINO内部组成 Arduino的具体部分如下:(1)一个8位的CPU 内核。(2)模块本身集成了晶振与时钟电路。(3) 具备闪存的功能,闪存的功能就是为了单片机的程序。(4) 具备RAM运行内存。(4) 具备定时器,计数器。(5) 拥有常见的看门狗功能。(6)IO端口可以设置为输入与输出双向的功能。(7) 一种可编程的全双工串行端口通信。(8) 八个中断源和两个优先级嵌套中断结构。3.3 超声波发射电路设计为了完成超声波测量,第一步是向外界发送一个40khz的方波脉冲信号。该系统通过软件(如单片机软件编程)输出方波脉冲信号。从电路上可以看出,脉冲信号需要在单片机的P1.0口输出,但其输出功率不足以满足我们的要求。为了满足远距离测量所需,脉冲信号的发射距离就需要足够远,功率需要提高。因此将脉冲信号分为两个通道,以提高发射功率,满足设计要求。最后,它被发送到tct40-16t,一个超声波发射换能器,以声波的形式将其送入空气中。发射部分电路如图3.6所示。图3.6超声波发射电路框图3.3.1 发射电路设计方案分析传输电路:(1)传输波必须具有良好的重复性。因此,可以获得高分辨率。(2) 发射的波应尽可能具有相同的频率。从而消除干扰,接收到相同的振动峰值。(3) 发射波需要用间歇多脉冲传输。因此,它可以用来测量长距离。(4) 单片机的最大输出电压为5V,为了使发射电路更加合理,需要功率放大。综上所述,发射电路设计的主要问题是提高发射探头的输入电压和发射功率。方波脉冲信号输出波形稳定,但输出电流和功率很低。因此,增加了一个单电源的B类互补对称功率放大器,如图3.7所示。 图3.7超声波发射电路3.3.2 超声波发射器的注意事项这里简单的介绍一下超声波的检测的原理:在启动超声波模块的时候,超声波将会发出起始波,此时单片机的定时开始计时工作,单片机记录的时间其实时超声波发出与返回的时间,当发出的波被物理反射回来的时候,这个时候接收的模块检测到信号,单片机会立马停止计时,更改有说,时间是发送与返回的双向时间,这个时候使用声波的速度乘上时间就计算出了距离。当然在分析超声波的时候也要分析超声波的局限性,比如以下几个特性:(1)超声波的震动的幅度,因为幅度越高损耗越大。(2)反射的能量的损耗。(3)超声波的发射波与反射波会存在夹角。(4)超声波元件本身的误差,比如接收电子元件的灵敏程度。(5)介质的影响,比如在计算的过程中我们选取的是声音在空气中的传播的速度,但是实际的解释却随着天气压力的变化而变化,一旦介质发生变化精度也会发生变化。综合以上所说,本次设计的超声波的检测程序有一定的误差调整的能力,通过修改误差系数来调整超声波的检测的精度。超声波测距的基本原理是利用发射波的前后来计算距离。实际上,这种方法在发射和反射之间存在一个角度。设角度为2。当很小时,可以近似地认为夹角不存在,故按公式计算距离;当夹角较大时,需修改距离,修改公式为: (3-1)在实际测量过程中,超声波测距板上的发射探头和接收探头在铜板上并排放置,会有一个有效的测量角度。本设计所使用的超声波测距模块的有效角度为15度。3.4 超声波接收电路设计接收换能器芯片在接收到超声波的垂直效应后,会产生共振。因此,机械振动将逐渐加强,这是因为压电效应芯片只能提供很小的交流电压信号,而不能提供电流信号。因此,应使用前置放大器来充分放大信号。为了消除干扰信号,需要增加滤波电路对有用信号进行放大。为了使后续电路设计更加合理实用,需要增加一个前置放大电路。放大电路可以放大我们需要的信号,抑制噪声干扰信号。这样,可以达到所需的最大信噪比。图3.8前置放大电路 前置放大器的电路图如图3.8所示。为了满足设计要求,前置放大器的输入阻抗必须足够大,同时,它必须具有较高的精度和较小的输入偏置电压。为了降低地面噪声对系统的影响,需要采取相应的措施7。利用前置放大器等器件构成反比例放大电路是一种非常有效的方法。放大器电路结构简单。R2和R3用于调整电压放大倍数。图中的RP称为平衡电阻,平衡电阻的存在是为了平衡两个输入端的电阻。为了满足系统设计所需,则需要放大电路将输入信号放大200倍。3.5 LCD显示部分本设计系统所测量得到的距离会用LCD1602液晶显示屏来显示。显示屏的参数如表3-2。表3-2 1602参数名称参数显示容量16X2个字符芯片工作电压4.55.5V芯片工作电流2.0mA(5.0V)模块最佳工作电压5.0V字符尺寸2.95X4.35(WXH)mm液晶显示器具有体积小、功耗低、使用方便、显示内容丰富等优点。比数码管更专业更漂亮。在实际使用过程中,LCD数据线应与单片机的P0口连接,LCD控制线应与单片机的P2口连接。如图3.9所示。图3.9 1602液晶显示电路液晶显示器控制的难点是短路设计。这种屏幕驱动主要采用并口驱动方式。LCD1602的并行数据口为d0-d7的总线数据口,RS、R/W、en为控制口。通过对LCD1602的研究,我们在控制屏幕时首先要做的就是控制en端口。启用控制后,需要控制是数据控制还是命令控制。在研究LCD1602时,我们需要引入pin。具体功能见表3-3。表3-3 LCD1602端口介绍编号引脚符号功能编号引脚符号功能1VSS地线9D2数据32VDD电源正10D3数据43VL显示偏压11D4数据54RS数据/命令12D5数据65R/W读/写13D6数据76E使能14D7数据87D0数据115BLA背光源正8D1数据216BLK背光源负在LCD1602中还有11指令需要介绍,因为控制LCD1602就是通过这个11个指令来进行控制的。具体详见下列表格3-4所示。表3-4 LCD1602 11条控制命令序号指令说明RSR/WD7D6D5D4D3D2D1D01清屏幕00000000012光标返回000000001*3输入模式00000001I/DS4显示开/关0000001DCB5光标移位000001S/CR/L*6设置功能00001DLNF*7字符发生存贮器地址0001字符发生存贮器地址8数据存贮器地址001显示数据存贮器地址9读忙标志01BF计数器地址10写数到CGRAM或DDRAM)10要写的数据内容11从CGRAM或DDRAM读数11读出的数据内容3.6 报警部分蜂鸣器用于从P1.2输出特定频率信号,在连接到蜂鸣器之前,它被三极管9012放大。报警部分的接线如图3.10所示。图3.10 蜂鸣器报警电路3.7 DS18B20部分本次系统设计的温度检测所使用的传感器就是DS18B20传感器,DS18B20通常有四个部分组成,以下就对这四个部分进行介绍:(1)运行ROM空间;(2)核心的温度感应头。(3)非易失性的的报警的TLL触发 。(4)配置寄存器本次的设计之所以使用温度传感器主要是因为空气的密度会随着的温度变化而发生变化,为了提高超声波的检测的精度,本次设计采用的温度补偿的方式进行处理。首先会进行不同温度空气密度的检测,记录在下来,同时记录不同密度下声音的传播的速度记录到单片机中,当单片机运行的时候温度产生变化,就会自动去寻找对应温度的对应的声音的传播的速度,从而实现提高超声波测距。如图3.11所示的温度模拟电路。图3.11 DS18B20温度测量电路3.8 本章小结本章重点介绍了超声波测距系统的具体硬件设计电路。详细分析了系统硬件各部分(主要包括发射、接收、检测和显示四部分)的电路原理。第4章 系统软件设计4.1 系统软件设计 程序的控制结构:(1)DS18B20温度传感器接口模块。该模块首先初始化程序,然后编写命令,最后读取子程序。(2) 基于tc1602的显示模块。该模块类似于温度传感器接口模块。(3) 温度补偿和距离计算模块。该模块需要编写超声波传输控制程序、接收处理程序、温度补偿子程序等。(4) 本设计采用C语言编写程序,C语言与汇编语言相比有许多优点;编译器采用keil版本4进行程序编译,keil函数功能强大,使用方便1。 系统软件的主要程序可分为以下几个部分:(1)系统初始化。(2) 密钥处理。(3) 各子程序的调度管理。程序的设计的思路如下:(1) 温度以两位数显示,距离以三位数显示。单位是厘米。(2) 温度每900毫秒采样一次。900毫秒在12位精度上符合DS18B20。所以要满足速度要求,超声波每60毫秒发送一次。(3) s键为测量开始键。(4) 系统使用Arduino的内部时钟。(5) 不使用看门狗功能。(6) 只有在超声波发出一定时间后才能开始检测,以免直接发出信号导致误判,所以系统的最小测量值约为2厘米。如图4.1所示,描述了每个模块的关系。图4.1系统软件方框图/主函数 void main()Init_ultrasonic_wave();/屏幕初始化Init1602();/温度初始化tmpchange(); t_=tmp();tmpchange();t_=tmp();tmpchange();t_=tmp();4.2 外部中断子程序如图4.2所示,给出的本设计的超声波的处理的程序逻辑,当程序启动超声波发出声波的时候,超声波与单片机的联接的端口将会有一个高电平, 这个时候单片机会立马进入中断,中断开始计时。当发射出去的波反馈回来以后,单片机与超声波模块的连接的端口就会变为低电平,这个时候中断停止,同时定时停止。然后单片机的程序通过处理计算的次数,计算出所需的时间,这个时候将中断计算的时间输出,即完成了超声波时间的计算。图4.2外部中断子程序流程框图4.3 定时器中断子程序定时器中断子程序的流程图如图4.3所示。由于51单片机中的定时器为16位,所以会有一个最大的定时时间6,通过计算可以达到65536us。当测得的距离很长时,计时器工作错误并溢出。因此,为了使单片机正常工作,需要设置溢出中断。同时,由于硬件原因,电路的最大测量范围为4米,当实际测量距离超过最大范围时,接收探头将不会检测到回波。也就是说,由于没有外部中断,计时器无法关闭。图4.3定时终端子程序流程4.4 重要功能实现在软件设计方面,要达到实验目的,实现基于单片机的超声波测距系统的设计与实现。除了以上程序需要编写外,还需要对温度读取功能、温度转换声速和距离计算进行编程实现。在所有的程序当中,对LCD1602的操作最为复杂,需要根据LCD的执行时序进行不同的控制,所以在这里列出LCD的初始化以及驱动的程序,下面的C语言的代码就是LCD1602的功能初始化以及驱动的程序。uchar BusyTest(void) /lcd忙碌状态检测 bit result; RS=0; RW=1; E=1; _nop_(); _nop_(); _nop_(); _nop_(); /空操作四个机器周期,给硬件反应时间 result=BF; E=0; return result; void WriteInstruction (uchar dictate) /设置模式或地址 while(BusyTest()=1); RS=0; /根据规定,RS和R/W同时为低电平时,可以写入指令 RW=0; E=0; _nop_(); _nop_(); P0=dictate; /将数据送入P0口,即写入指令或地址 _nop_(); _nop_(); _nop_(); _nop_(); E=1; /E置高电平 _nop_(); _nop_(); _nop_(); _nop_(); E=0; /当E由高电平跳变成低电平时,液晶模块开始执行命令 void WriteAddress(uchar x) /设置实际显示的地址 WriteInstruction(x|0x80); void WriteData(uchar y) /向LCD写数据 while(BusyTest()=1); RS=1; RW=0; E=0; P0=y; _nop_(); _nop_(); _nop_(); _nop_(); E=1; _nop_(); _nop_(); _nop_(); _nop_(); E=0; void LcdInitiate(void) /初始化操作 delay(15); /首次写指令时应给LCD一段较长的反应时间 WriteInstruction(0x38); /显示模式设置:162显示,57点阵,8位数据接口 delay(5); /延时处理 WriteInstruction(0x38); delay(5); WriteInstruction(0x38); delay(5); WriteInstruction(0x0f); /LCD1602显示模式设置:显示开,有光标,光标闪烁 delay(5); WriteInstruction(0x06); / LCD1602显示模式设置:光标右移,字符不移 delay(5); WriteInstruction(0x01); / LCD1602清屏幕指令,将以前的显示内容清除 delay(5); void display(uchar hang,uchar lie,uchar *p)uchar a;if(hang = 1) a = 0x80;if(hang = 2)a = 0xc0;a = a + lie - 1;while(1)BusyTest();WriteInstruction(a);BusyTest();WriteData(*p);delay(10);a+;p+; if(*p = 0)|(a=0x90)|(a=0xd0) break;4.4.1 实现温度读取功能/温度初始化 StartModule();/启动超声波 while(!RX); /当RX为零时等待TR0=1; /开启计数while(RX); /当RX为1计数并等待TR0=0; /关闭计数delayms(20); /20MStmpchange(); /温度转换t_=tmp(); /度温度4.4.2 实现温度转换声速/计算不同温度下的速度void JS_(uchar WD)/大于2030else if(WD20&flag=0)L_=(time*3.49)/200; /算出来是CM; 其余温度下的计算方法与上面的程序所写的一样,只需更换系数即可。4.4.3 实现距离计算/距离计算 SD为当时的超声速度void Conut(uchar WD) time=TH0*256+TL0; TH0=0; TL0=0; JS_(WD);4.5 实验测量数据表4-1实验测量数据 环境温度测量值cm实测值cm误差%2114.514.30.01382125.625.30.01262025.625.40.01152225.625.20.01472195.685.10.0181 从上表4-1中的数据可以看出,温度与测量距离之间的距离影响测量精度。一般来说,它是随着温度和测量距离的增加而增加的。4.6 本章小结在本章中,对如何实现设计并得到软件设计结果进行了分析和描述,并简要列出了相关的C程序。第5章 工程定额概算5.1 超声波测距制作过程的成本预算5.1.1 非标设备制作定额的说明1、关于材料定额中的材料用量包括直接消耗在设备制作中的使用量与规定的损耗量。主塑料模型为500mm200,如果实际尺寸小于该规格,则另加损耗量3%。本次超声波测距消耗的塑料主要是外壳,第一次使用外壳如果没有共模需要使用开模的费用另外计算,因为首次开模的费用比较高。5.1.2超声波测距定额的几点说明1 设计的换热器结构与定额的取定结构不同时,按下列规定计算:超声波测距如出现焊接错误,则增收10%,这里所说的焊接错误主要是芯片等元件的焊接错误以及电路板的的错误。2 本定额均系类换热器制作,类换热器制作按相应定额基价乘以系数1.08.3工程计算规则:超声波测距使用的材料,以“套”为计算单位。工程量中不包括防腐、刷油、绝热的重量。各部件组对焊接所开的坡口割除部分或加工切削的重量,在计算工程量时不扣除。5.1.3超声波测距制作定额基价表表5-1超声波测距整体的费用计算序号名称数量单价(元)1ARDUINO单片机11502104电容1000.43晶振50.54按钮100.55104电解电容100.8610K电阻1000.37LCD显示1508蜂鸣器10.59LED1000.510PCB510011外壳150本次设计的PCB为最小生产单位5块。在外壳不另外开模的情况下,本次使用的总费用为:150*1+0.4*100+0.5*5+0.5*10+0.8*10+0.3*100+50*1+0.5*1+0.5*100+100*5+50*1 = 884元。结论本设计是一种基于Arduino单片机、温度传感器、超声波传感器、液晶显示屏和蜂鸣器的简单易操作的测距系统。相对来说,超声波检测操作方便,测量精度足以满足声波在日常中的使用。当然,经过强化扩容后可以满足工业使用的要求。随着科学技术的飞速发展,超声波也将被应用到更广泛的领域。目前来说,超声仍有一定的局限性,需要对超声做更有力的研究,使超声更好地服务于人类世界。本次的毕业论文到这里就已经设计结束了,这次的设计让本人学到了很多知识。在这个设计过程当中,本人学到了单片机原理图的设计知识,软件的调试知识,程序的编写知识,以及硬件的焊接知识等。 理论结合实际一直是老师强调的重点,在本次的设计中我也是深刻的体会到了这一点,首先就是模块的选型与购买,模块在使用上有两个特点,一是它已经完善了功能,我们不需要在进行改造,二是我们要查找资料去了解这个模块的工作原理。在设计单片机的过程中,也遇到了很多问题,通过查阅资料和与同学进行交流,也顺利解决了这些问题。第一,不够细心比如由于粗心大意将不同元器件的端口连接错误或者忘记连接,第二点就是深刻的认识到:无论做什么事情,只要足够坚强,有足够的毅力和决心,有足够的挑战困难的勇气,就没有什么办不到的。另外在设计单片机的时候,加深了对单片机IO口的输入输出的理解,在学单片机的时候,刚开始都不理解什么是上拉输入,什么是下拉输出,通过这次的自己动手实践,对这些也是深有体会。比如在测试端口的时候,刚开始总是觉得端口无法正常的使用,也没有找到具体的原因,后来查阅了相关的书籍才发现,端口在单片机设计的时候就没有上拉的电阻,如果作为普通的输入输出端口需要对单片机的端口进行人为的加入上拉电阻。通过本次的设计,深刻的体会到了在做任何事情的时候都会遇到问题,遇到问题并不可怕,只需要坚定信念努力的去寻找克服困难的办法,最终将会解决困难。这些经验本人将会应用到以后的工作与生活当中。希望以后会越来越好。参考文献1 郭天祥.新概念51单片机C语言教程M.电子工业出版社,2008.2 郑锋,王巧芝等.51单片机应用系统M.中国铁道出版社,2011.3 刘向宇,秦龙.PIC单片机C语言M.电子工业出版社,2011.4 贾伯年.传感器技术M.东南大学出版社,2000.5 李丽霞.单片机在超声波测距中的应用M.电子技术,2002.6 岂兴明,唐杰等.51单片机编程基础与开发实例详解M.人民邮电出版社,2008.7 张鹏,张有志.一种新型超生测距系统J.山东大学学报,2003,33(1).8 陈大新,胡学同,周杏鹏.利用FPGA改进超声波测距模块设计M.传感器技术,2005,24(2):5759.9 马忠梅,藉顺心等.单片机的C语言应用程序设计(第三版)M.北京航空航天大学出版社,2003.10 臧春华,郑步生,刘方,崔晓平.现代电子技术(数字部分)M.北京航空航天大学出版社,2005,2.11 恒清,张靖.加强单片机系统抗干扰能力的方法J.通化师范学院学报,2004,10.12 晗晓,袁慧梅.单片机系统的印制板设计与抗干扰技术J.电子工艺技术,2004,6.13 华兵.MCS-51单片机原理应用M.武汉华中科技大学出版社,2002,5.14 田华等.可编程单总线数字式温度传感器DS18B2的原理与应用J.电子质量,2004,7.15 杨姣秀.基于单片机的超声波测距仪的设计M.湖南工业大学出版社,2008.16 Lee B R eview of the present status of optical fiber sensors J.Opt Fiber Techn 2003,9(2):57-59.17 rtoriS,ZHANGGX.GeometricErrorMeasurementandCompensationofMachinesJ.AnnalsoftheCIRP,1995:599-609.18 XuL,HuiXL.Schem es and present status of optical current sensorJ.Optoelec Techn & Information,2004,17(1):39-43感 谢毕业设计已经接近了尾声,这也意味着大家的大学生活就要结束了,学生活一晃而过,回首走过的岁月,心中倍感充实,当完成这篇毕业论文的时候,有一种如释重负的感觉,感慨良多。 首先,本人特别感谢我的指导老师。做设计的过程是艰辛的,但是在本人的努力之下还是完成了。在这个过程中指导老师给了很大的帮助,没有老师的指导以及严格的要求,我也不会顺利完成这次设计。指导老师平时工作很忙,但个人做毕业设计的每个阶段,从选题到查阅资料,论文提纲的确定,中期论文的修改,后期论文格式调整等各个环节中都给予了很重要的指导。其次,还要感谢这四年来教授知识的每一位老师们,毕业论文能够顺利完成,你们也都有很大的功劳。 这次的毕业设计,对于培养理论联系实际的设计思想,训练综合运用有关课程的理论,结合生产实际反系和解决工程实际问题的能力,巩固、加深和扩展有关方面的知识等方面有重要的作用。 写作毕业论文是一次再系统学习的过程,毕业论文的完成,同样也意味着新、生活的开始。希望大家在将来的生活中继续追逐最初的梦想,永不放弃。在此,本人还要特别感谢我的同学们,由于你们的帮助和支持,在设计的过程中才能克服一个一个的困难和疑惑,你们对本课题做了不少工作,直至本文的顺利完成,给予本人不少的帮助,谢谢你们!附录一(实物图)附录二(三维模型
收藏