第一篇:超声波测距仪-实习总结
电子实习总结
2010-2011学年第一学期,08级电气工程及其自动化专业电子实习与09级电气工程及其自动化专业数字电子技术课程设计,所采用的题目均是“超声波无线测距仪设计”。该题目是贯彻机电系教学改革精神,根据实践教学要求,新近设计研发的实习内容。经过两周的实习过程,对于其中一些进步的方面与发现的问题进行总结,以便为接下来的教改工作提供有价值的参考。
对于此次设计过程,一些收获令人满意:
第一,从教师团队的角度来说,是一次比较成功的锻炼机会。无论对于设计研发的老师,还是对参与实习指导的老师,都从中得到了全方面的提高。相对于原先的教学套件,本设计从理论基础,到软硬件设计,老师们都能够做到深刻理解,熟练掌握。因此在实习过程中,指导的针对性相较以往,有了明显的进步。学生反响较好。同时,在实习结束时进行答辩,有效的提高了教师对于学生掌握实践效果的认识,能够更好的指导下一步的工作。
第二,从学生角度来说,一周的时间,严格按照实习大纲安排,进行了全方面的理论学习,到元器件焊接,最后进行设计分组答辩。时间紧凑,内容充实。从实习答辩过程与实习报告的反馈来看,大家都能够做到主动思考,积极求解。尤其是对于一些成绩相对较差的学生,在实习过程中表现非常主动,令人印象深刻。尤其在答辩过程中,将固定的“老师问——学生答”方式实现反转,变成“学生问——教师答——教师问——学生答”,用答疑的方式,鼓励学生们发现问题,解决问题。这种尝试,对于实习过程总结与提高意义重大。尤其是鼓励每名同学积极主动的寻找问题,用启发式的问题促进每个人去思考问题,符合我们教学改革的目的。同时,让每名老师的身份由“考官”变为考生,也能够很好的促进教师们的学习能力,为更好的了解学生所想,打下基础。建议将此经验进行系内教研讨论。
第三,从系部角度来说,由于教学改革势在必行,因此由任课教师设计有针对性的实习内容也是大势所趋。第一步的迈出,为今后的更多更好的题目研发做了铺垫,也会促进更多的教师积极参与其中。未来的电子实习与课程设计,应该为所有学生提供丰富的题目选择,满足不同的兴趣爱好。同时,更多的实习题目,也为毕业设计提供了丰富的素材,对于一些校企合作项目,或者横向与纵向课题的研发,打下了基础。
当然,任何过程都有两面性,在两周的设计过程中,也会发现一些问题,在此进行梳理,有利于日后工作的改进:
第一,实习进度安排过紧,参与的教师与学生时间紧张。由于教学计划安排,将电子实习与课程设计,统一安排到期末时间段,难免造成时间冲突或者实验场地的争抢问题。特别对于指导教师的参与数量,会出现一名教师,同时负责多个设计或实习的情况,并且期末阶段,同样有监考,阅卷任务,因此难免顾此失彼,大大降低指导的效果。在此建议,不妨在教学计划的制定过程中,将电子实习或者课程设计推后一个学期,即在课程完成的第二个学期期中阶段,开始实践教学。优点在于一方面不造成人员或者时间冲突,另一方面也有利于加强学生们对于课程的持续性记忆。
第二,教师团队的配合需要进一步加强。由于第一次原创实习题目的设计,时间比较仓促,因此从方案制定到方案验证,最后到器件的选购,都需要一个熟悉的过程。临近实习时间,才将整个过程结束,所以耽误了参与指导的教师提前学习的机会。因此,对于今后相关的课程设计或者电子实习,建议在每个学期的期末,由设计负责人定下实习题目,并且利用假期时间进行方案整理与设计,在新学期开始,即开始进入方案的实施与操作。出现问题,也有充裕时间解决,同时也便于参与的教师有充足时间进行自主学习与讨论。
第三,设计研发费用的问题。本次课程设计的研发费用由老师先行垫付,所有参与指导的教师材料费,也一并归并到学生们的材料费当中。希望系部能够对于研发启动资金予以支持,由于设计题目相对较小,所以研发费用相对较少,但是对于参与设计的教师会有一种精神鼓励。否则,如果单纯靠教师的个人付出,可能会有一些难度。
第四,指导教师的组成问题。本次课程设计,每个班级由一名教师负责。明显感觉人手紧张,建议遵循领导意见,最多每名教师负责20名学生的指导工作。可以调动实验员的参与度,让更多实验员老师参与到指导过程,提高其工作量的同时,也增强了理论与实践结合的能力。第五,答辩方式的选择问题。本学期的答辩过程,采用的是分组答辩方式,由于准备相对仓促,学生对于相关的知识背景了解较少。在此建议,对于不同学科的实习工作,由任课老师在授课过程中,很好的结合相关设计内容进行说明,从而使同学们在实践过程中做到“熟悉——理解——掌握”。避免出现为了应付成绩,而相互敷衍的不良效果。
综上所述,只要每名教师都能够担负起主人翁意识,相信我们会有一个更加团结的队伍,整个教学过程也会更加富有成效。我们会继续努力的!
签名:
****年**月**日
第二篇:超声波测距总结
超声波测距
超声波传感器用于超声控制元件,它分为发射器和接收器。发射器将电磁振荡转换为超声波向空气发射,接收器将接受的超声波进行声电转换变为电脉冲信号。实质上是一种可逆的换能器,即将电振荡的能量转换为机械振荡,形成超声波;或者有超声波能量转换为电振荡。常用的传感器有T40-XX和R40-XX系列,UCM-40T和UCM-40R系列等;其中T代表发射传感器,R代表接收传感器,40为中心频率40KHZ。
超声波的传播速度
纵波、横波及表面波的传播速度取决于介质的弹性常数以及介质的密度。
1.液体中的纵波声速:
C1=
k/
2.气体中的纵波声速:
C2=
P·/
式中:K——体积弹性模量
——热熔比
P——静态压力
——密度
注:气体中声速主要受温度影响,液体中声速主要受密度影响,固体中声速主要受弹性模量影响;一般超声波在固体中传播速度最快,液体次之,气体中传播速度最慢。超声波测距原理
通过超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播时碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。超声波在空气中的传播速度为v ,而根据计时器记录的测出发射和接收回波的时间差△t ,就可以计算出发射点距障碍物的距离S ,即: S = v·△t /2
这就是所谓的时间差测距法 或:
由于超声波也是一种声波, 其声速C与温度有关,表1列出了几种不同温度下的声速。在使用时,如果温度变化不大, 则可认为声速是基本不变的。常温下超声波的传播速度是334 米/秒,但其传播速度V 易受空气中温度、湿度、压强等因素的影响,其中受温度的影响较大,如温度每升高1 ℃, 声速增加约0.6 米/ 秒。如果测距精度要求很高, 则应通过温度补偿的方法加以校正(本系统正是采用了温度补偿的方法)。已知现场环境温度T 时, 超声波传播速度V 的计算公式为:
V = 331.45 + 0.607T
声速确定后, 只要测得超声波往返的时间,即可求得距离。这就是超声波测距仪的机理。
超声波发生器可以分为两类:
1、使用电气方式产生超声波;
2、用机械方式产生超声波。电气方式包括压电型,磁致伸缩型和电动型等;机械方式有加尔统笛、液哨和气流旋笛等。它们所产生的超声波的频率、功率和声波特性各有不同,因而用途也各有不同。目前较为常用的是压电式超声波发生器,其又可分为两类:(1)顺压电效应:某些电介物质,在沿一定方向上受到外力作用而变形时,内部会产生极化现象,同时在其表面上会产生电荷;当外力去掉后,又从新回到不带电的状态,这种将机械能转换为电能的现象称顺压电效应(超声波接收器的工作原理)。(2)逆压电效应:在电介质的极化方向上施加电场,会产生机械变形,当去掉外加电场时,电介质的变形随之消失,这种将电能转化为机械能的现象称逆压电效应(超声波发射器的工作原理)。
系统框图
超声波发射电路 方案一
利用555定时器构成多谢振荡器产生40KHz的超声波。如下图为555定时器构成的多谢振荡器,复位端4由单片机的P0.4口控制,当单片机给低电平时,电路停振;当单片机给高电平时电路起振。接通电源后,电容C2来不及充电,6脚电压Uc=0,则U1=1,555芯片内部的三极管VT处于截止状态。这时Vcc经过R3和R2向C2充电,当充至Uc=2/3Vcc时,输出翻转U1=0,VT导通;这时电容C2经R2和VT放电,当降至Uc=1/3Vcc时,输出翻转U1=1.C2放电终止、又从新开始充电,周而复始,形成振荡。其振荡周期t1和放电时间t2有关,振荡周期为:
T=t1+t20.7(R3+2R2)C2
f=1/T=1/(t1+t2)1.43/(R3+2R2)C2=40KHz 有上面公式可知,555多谐振荡器的振荡频率由R2,R3,C2来确定。所以在电路设计时,先确定C2,R2的取值,即C2=3300pf,R2=2.7K。再将R2和C2的值代入上式中可得:
R3=1.43/C2·f-2R2 为了方面在实验中使用555芯片的3脚输出40KHz的方波,在这里将其用10K的电位器代替。
为了增大U1的输出功率,将555芯片的8脚接+12v的电压,同时将其复位端4脚接高电平,使用示波器观察555芯片3脚的输出波形,通过调节电位器R3的阻值,使其输出波形的频率为40KHz。
方案二
该超声波发射电路,由F1至F3三门振荡器在F3的输出为40KHz方波,工作频率主要由C1、R1和RP决定,用RP可调电阻来调节频率。F3的输出激励换能器T40-16的一端和反相器F4输出激励换能器T40-16(反馈耦合元件)的另一端,因此,加入F4使激励电压提高了一倍。电容C2、C3平衡F3和F4的输出使波形稳定。电路中的反相器用CC4069六反相器中的四个反相器剩余两个不用(输入端应接地)。电源用9V叠层电池;测量F3输出频率应为40KHz,否则应调节RP,发射波信号大于8m。
方案三
该超声波发射电路由VT1、VT2组成正反馈振荡器。电路的振荡频率决定于反馈元件的T40-16,其谐振频率为40KHz;频率稳定性好,不需做任何调整,并由T40-16作为换能器发出40KHz的超声波信号;电感L1与电容C2调谐在40KHz起作谐振作用。本电路电压较宽(3v至12v),且频率不变。电感采用固定式,电感量5.1mH,整工作电流约25mA,发射超声波信号大于8m。
方案四
该发射电路主要有四与非门电路CC4011完成谐振及驱动电路功能,通过超声波换能器T40-16辐射出超声波去控制接收器。其中门YF1和门YF2组成可控振荡器,当S按下时,振荡器起振,调整RP改变振荡器频率为40KHz;振荡信号分别控制由YF3、YF4组成的差相驱动器工作,当YF3输出高电平时,YF4输出低电平,当YF3输出低电时,YF4输出高电平。此电平控制T40-16换能器发出40KHz超声波。电路中YF1至YF4采用高速CMOS电路74HCOO四与门电路,该电路特点是输出驱动电流大(大于15mA),效率高等;电路工作电压9V,工作电流大于35mA,发射超声信号大于10m。
方案五
本电路采用LM386对输出信号进行功率放大,LM386多用于音频放大,而在本电路中用于超声波发射。如图所示,LM386第1脚和第8脚之间串接的E1和R1,使电路获得较大的增益;TO为单片机输入口的脉冲信号,经功率放大后由5脚输出,驱动探头发射超声波。
超声波接收器模块 方案一
超声波接收传感器通过压电转换的原理,将由障碍物返回的回波信号转换为电信号,由于该信号幅度较小(几到几十毫伏),因此须有低噪声放大、40kHz带通滤波电路将回波信号放大到一定幅度,使得干扰成分较小,其电路如下所示。在此电路中,为了防止在超声波接收器上始终加有一直流信号让其工作导致传感器的寿命缩短,从而加上一隔直电容C4,从而C4和R5构成滤波电路。
在电路中,放大部分采用的是高速型运放TL084。综合考虑了反相放大器、同相放大器和测量放大器的优缺点后,最终选择了同相放大电路。因为同相放大器的理想输入阻抗为无穷大,理想输出阻抗为零,其带负载能力较强等因素。在此电路中,根据同相放大器的闭环增益公式:Af=1+Rf/Rr 由于接收到的信号幅度为几到几十毫伏,所以需要将其放大400多倍使得其接收到的40KHz信号不会被干扰信号给掩盖。为了防止引起运算放大器的自激振荡,在第一级的放大电路中,R7取值为470 K,R8取值为10K,其增益放大: Af1=1+R7/R8=48 在第二级放大电路中,R11的取值为100K,R12的取值为10K,其放大增益: Af2=1+R11/R12=11 两级增益为:Af=Af1·Af2=528 同相放大器的平衡电阻R6和R10的取值均为10K。平衡电阻公式为:
Rp=Rf/(Rf+Rr)C5和R9构成了一阶滤波电路。
方案二
该电路主要有集成电路CX20106A和超声波换能器TCT40-10SI构成。利用CX20106A做接收电路载波频率为38KHz;通过适当的改变C7的大小,可以改变接收电路的灵敏度和抗干扰能力。
工作原理:当超声波接收探头接收到超声波信号时,压迫压电晶体做振动,将机械能转化成电信号,由红外线检波接收集成芯片CX20106A接收到电信号后,对所接信号进行识别,若频率在38KHz至40KHz左右,则输出为低电平,否则输出为高电平。
方案三
双稳式超声波接收电路
电路中,由VT5、VT6及相关辅助元件构成双稳态电路,当VT4每导通一次(发射机工作一次),触发信号C7、C8向双稳电路送进一个触发脉冲,VT5、VT6状态翻转一次,当VT6从截止状态转变成导通状态时,VT5截止,VT7导通,继电器K吸合•••调试时,在a点与+6V(电源)之间用导快速短路一下后松开,继电器应吸合(或释放),再短路一下松开,继电器应释放(或吸合),如果继电器无反应,请检查双稳电路元件焊接质量和元件 参数。
方案四
单稳式超声波接收电路
本电路超声波换能器R40-16谐振频率为40kHZ,经R40-16选频后,将40kHZ的有用信号(发射机信号)送入VT1至VT3组成的高通放大器放大,经C5、VD1检出直流分量,控制VT4和VT5组成的电子开关带动继电器K工作。由于该电路仅作单路信号放大,当发射机每发射一次超声波信号时接收机的继电器吸合一次(吸合时间同发射机发射信号时间相同),无记忆保持功能。可用作无线遥控摄像机快门控制、儿童玩具控制、窗帘控制等。电路中VT1β≥200,VT2≥150,其他元件自定。本电路不需要调试即可工作。如果灵敏度和抗干扰不够,可检查三极管的β值与电容C4的容量是否偏差太大。经检测,配合相应的发射机,遥控距离可达8m以上,在室内因墙壁反射,故没有方向性。电路工作电压3V,静态电流小于10mA。
方案五
在本接收电路中,结型场效应VT1构成高速入阻抗放大器,能够很快地与超声波接收器件B相匹配,可获得较高接收灵敏度及选频特性。VT1采用自给偏压方式,改变R3的阻值即可改变VT1的工作点,超声波接收器件B将接收到的超声波转换为相应的电信号,经VT1和VT2两极放大后,再经VD1和VD2进行半波整流为直流信号,由C3积分后作用于VT3的基极,使VT3由截止变为导通,其集电极输出负脉冲,触发器JK触发D,使其翻转。JK触发器Q端的电平直接驱动继电器K,使K吸合或释放;由继电器K的触点控制电路的开关。
盲区形成的原因及处理
1、探头的余震及方向角。发射头工作完后还会继续震一会,这是物理效应,也就是余震。余震波会通过壳体和周围的空气,直接到达接收头、干扰了检测;通常的测距设计里,发射头和接收头的距离很近,在这么短的距离里超声波的检测角度是很大的,可达180度。
2、壳体的余震。就像敲钟一样,能量仍来自发射头。发射结束后,壳体的余震会直接传导到接收头,这个时间很短,但已形成了干扰。(注:不同的环境、温度对壳体的硬度和外形会有所变化,导致余震时间会略有改变)
3、电路串扰。超声波发射时的瞬间电流很大,瞬间这么大的电流会对电源有一定影响,并干扰接收电路。通常这三种情况情况在每次超声波发射时都会出现,即超声波在发射的时候,是一个高压脉冲,并且脉冲结束后,换能器会有一个比较长时间的余震,这些信号根据不同的换能器时间会有不同,从几百个uS到几个mS都有可能,因此在这个时间段内,声波的回波信号是没有办法跟发射信号区分的.因此,被测物体在这个范围内,回波和发射波区分不开,也就无法测距,从而形成了盲区.。
在硬件方面通常将超声波转换器之间的距离适当增大来减少盲区的范围;如果发射探头和接收探头分开,收发不互相影响,必须要求发射电路和接收电路的地线隔离很好,发射信号不会通过地线串扰过去,否则也是不能减小盲区的。
在软件中的处理方法就是,当发射头发出脉冲后,记时器同时开始记时。我们在记时器开始记时一段时间后再开启检测回波信号,以避免余波信号的干扰。等待的时间可以为1ms左右。更精确的等待时间可以减小最小测量盲区。(注:超声波探头方向角越小、发射头和接收头位置越远,盲区就越小,测量距离也就越小)
第三篇:超声波个人总结
超声波总结
自2005年从事超声波检测工作以来,我认为超声波检测的难点主要在于:焊接质量受人的因素和环境的影响很大,超声波检测时有未焊透、未熔合、裂纹、气孔和夹渣等焊接缺陷产生的回波,也可能有焊缝内成型(内凹或内凸)和错边产生的回波。有些回波信号在探伤仪示波屏上出现的位置相同或相近,有的形态又很相似,给检测工作识别带来了难度,有可能造成误判、漏判。超声波检测前应对有关被检测工件的情况(如:焊接工艺、坡口形式、钝边高度、钝边间隙等)进行了解。分析缺陷产生的可能性及其产生在焊缝中的部位,正确判断反射回波;可以防止焊缝中缺陷的漏检、误检,同时结合探头的扫查方式观察缺陷的动态回波变化特点。
超声波探伤对缺陷的判断,主要是依赖于对示波屏上显示的反射回波的鉴别。当认定某一回波是缺陷反射波后,在不同的方向上对该缺陷进行探测,根据缺陷波形状和高度的变化,结合缺陷的位置和焊接工艺,才能对缺陷性质大小进行综合判断。而实际探伤过程当中示波屏上往往有大量回波信号,所以第一步从大量反射回波中找出真正的缺陷波是至关中要的。
然而在实际超声波探伤工作中,示波屏上除了这些缺陷信号外还同时存在着许多其它非缺陷回波信号,也就是伪缺陷波。通常探伤中所占比例要大大高于真实缺陷比例。这些伪缺陷波的存在一方面容易造成探伤者的误判,造成不必要的人力、财力浪费延误工期;另一方面,它们也同时影响检验精度,容易造成漏检影响了检验质量,为
将来安全运行埋下隐患,所以必须把示波屏上的缺陷信号和其它非缺陷回波信号区分开来。实际探伤中,我认为一般是由探伤仪器、探头杂波、工件轮廓回波、耦合剂反射波以及其它一些波等引起的非缺陷回波信号。仔细正确的识别缺陷信号和其它非缺陷回波信号对今后超声波检测工作会有很大帮助。
以上是我从业以来对超声波检测工作的一点心得体会,工作中发现自己的专业知识和理解能力还需要继续加强。在今后的工作中,我会加强学习专业知识,对新型钢超声波检测及新标准继续学习。
崔海峰
2011年09月12日
第四篇:具有实时语音播报功能的超声波测距仪(C程序)
#include
//调用单片机头文件
#define uchar unsigned char //无符号字符型 宏定义 变量范围0~255 #define uint unsigned int //无符号整型 宏定义 变量范围0~65535 #include
//数码管段选定义
0
7
uchar code smg_du[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff};//断码 //数码管位选定义
uchar code smg_we[]={0xe0,0xd0,0xb0,0x70};uchar dis_smg[8]
={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8};
sbit smg_we1 = P3^4;
//数码管位选定义 sbit smg_we2 = P3^5;sbit smg_we3 = P3^6;sbit smg_we4 = P3^7;
sbit c_send
= P3^2;//超声波发射 sbit c_recive = P3^3;//超声波接收
uchar smg_i = 3;
//显示数码管的个位数 bit flag_300ms;
long distance;
//距离 uint set_d;
//距离
uchar flag_csb_juli;
//超声波超出量程
uint flag_time0;
//用来保存定时器0的时候的/***********************语音模块控制IO口的定义************************/ sbit VRST = P2^3;sbit VBUSY= P2^7;sbit VSDA = P2^6;sbit VCS = P2^5;
sbit VSCL = P2^4;uchar yujing[3];
/***************************
语音地址的安排 0-9 :
对应数字0到9 0b
: 点 0c
: 米
0d
: 已超出量程 **************************/
/***********************1ms延时函数*****************************/ void delay_1ms(uint q){ uint i,j;for(i=0;i for(j=0;j<120;j++);} /***********************小延时函数**************************/ void delay_us(unsigned int us){ while(us--){ _nop_();} } /***********************三线发码子程序************************/ void Send_threelines(unsigned char addr){ unsigned char i;VRST=0;delay_1ms(5);VRST=1;delay_1ms(20);/* 复位拉高20ms*/ VCS=0;delay_1ms(5);/* 片选拉低5ms */ for(i=0;i<8;i++){ VSCL=0; if(addr&0x01) { VSDA=1; } else VSDA=0; addr>>=1; delay_us(150);/* 150us */ VSCL=1; delay_us(150);/* 150us */ } VCS=1;delay_1ms(200);while(VBUSY == 0); //忙等待 } /***********************数码位选函数*****************************/ 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) i = 0; smg_we_switch(i);//位选 P1 = dis_smg[i]; //段选 } /******************小延时函数*****************/ void delay(){ _nop_(); //执行一条_nop_()指令就是1us _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();} /*********************超声波测距程序*****************************/ void send_wave(){ c_send = 1; //10us的高电平触发 delay();c_send = 0; TH0 = 0; //给定时器0清零 TL0 = 0;TR0 = 0; //关定时器0定时 while(!c_recive); //当c_recive为零时等待 TR0=1;while(c_recive) //当c_recive为1计数并等待 { flag_time0 = TH0 * 256 + TL0; if((flag_time0 > 40000)) //当超声波超过测量范围时,显示3个888 { TR0 = 0; flag_csb_juli = 2; distance = 888; break; } else { flag_csb_juli = 1; } } if(flag_csb_juli == 1){ TR0=0; //关定时器0定时 distance =flag_time0; //读出定时器0的时间 distance *= 0.017; // 0.017 = 340M / 2 = 170M = 0.017M 算出来是米 if((distance > 500)) //距离 = 速度 * 时间 { distance = 888; //如果大于3.8m就超出超声波的量程 } } } /***********************处理距离函数****************************/ 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;yujing[0] = distance % 10; //距离放到语音的变量里 yujing[1] = distance / 10 % 10; yujing[2] = distance / 100 % 10;} /*********************定时器0、定时器1初始化******************/ void time_init() { EA = 1; //开总中断 TMOD = 0X11; //定时器0、定时器1工作方式1 ET0 = 0; //关定时器0中断 TR0 = 1; //允许定时器0定时 ET1 = 1; //开定时器1中断 TR1 = 1; //允许定时器1定时 } /***************主函数*****************/ void main(){ static uchar value = 5;P0 = P1 = P2 = P3 = 0xff; //初始化单片机IO口为高电平 send_wave();//测距离函数 smg_display();//处理距离显示函数 time_init();//定时器初始化程序 send_wave();//测距离函数 send_wave();//测距离函数 while(1){ if(flag_300ms == 1) { flag_300ms = 0; send_wave();//测距离函数 smg_display();//处理距离显示函数 value ++; if(value > 10)//3秒钟自动播放一次 { value = 0; if(distance == 888) { Send_threelines(0x0d); //语音播放已超出量程 } else { Send_threelines(yujing[2]); //语音播放 Send_threelines(0x0b); Send_threelines(yujing[1]); Send_threelines(yujing[0]); Send_threelines(0x0c); } } } } } /*********************定时器1中断服务程序************************/ void time1_int()interrupt 3 { static uchar value; //定时2ms中断一次 TH1 = 0xf8;TL1 = 0x30; //2ms display();//数码管显示函数 value++;if(value >= 150){ value = 0; flag_300ms = 1;} } 红外测距仪总结报告 一、摘要: 本次设计任务是设计一个红外测距电路,它由硬件和软件两部分组成,硬件部分包括发射模块和接收模块,先由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中文资料——百度文库 5.pcf8591编程实例——百度文库第五篇:红外测距仪总结报告