超声波测距温度补偿(更新于20120917)测试通过_第1页
超声波测距温度补偿(更新于20120917)测试通过_第2页
超声波测距温度补偿(更新于20120917)测试通过_第3页
超声波测距温度补偿(更新于20120917)测试通过_第4页
超声波测距温度补偿(更新于20120917)测试通过_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、电孑僅僉mt-实验报告传感器应用技术课程名称超声波测距温度补偿班 级姓 名学生号指导教师2011-2012学年第二学期(一)设计目的采用超声波测量距离的方法,实时检测现场温度用以实现实际波速的校准,减小温度对测距产生的误差,最终由LCD液晶显示所测距离、 温度及对应的波速, 测量范围为7cm1m,误差土2 cm。(二 )设计方案超声波传声器结构简单、行能可靠、成本低、易集成,因此采用超声波测距的方式进行距离测量。在常温下,超声波的传播速度为340m/s,但其传播速度 V易受到空气中的温度、湿度、压强等因素的影响,其中温度的影响最大。一般温度每升高1摄氏度,声速增加约为 0.6m/s。表1为超声

2、波在不同温度下的波速值。表1 一些温度下声速温度T/C-30-20-100102030声速 v/m s-1313319322331337344350由此可见温度对超声波测距系统的影响是不可忽略的。为了得到较为精确的测量结果,必须对波速进行温度补偿。通过实验可获得波速与温度之间的经验模型:V=331.5+0.607T ,T为现场温度,V为实际波速。从式中可看出,要获得精确的波速值,必须首先获取现场温度 T的大小。 本设计采用ds18b20检测现场温度,用以实现实际波速的校准。超声波测距原理超声波传感器分机械方式和电气方式两类,它实际上是一种换能器,在发射端它把电能或机械能转换成声能,接收端则反之

3、。本次设计超声波传感器采用电气方式中的压电式超声波换能器,它是利用压电晶体的谐振来工作的。它有两个压电晶片和一个共振板。当它的两极外加脉 冲信号,其频率等于压电晶片的固有振荡频率时,压电晶片将会发生共振,并带动共振板振动, 产生超声波。反之,如果两电极间未外加电压,当共振板接收到超声波时,将压迫压电晶片作振 动,将机械能转换为电信号,就成为超声波接收器。在超声波电路中,发射端输出一系列脉冲方 波,脉冲宽度越大,输出的个数越多,能量越大,所能测的距离也越远。超声波发射换能器与接 收换能器其结构上稍有不同,使用时应分清器件上的标志。超声波测距的方法有多种:如往返时 间检测、相位检测法、声波幅值检测

4、法。本实验采用往返时间检测法测距。其原理是超声波传感 器发射一定频率的超声波,借助空气媒质传播,到达测量目标或障碍物后反射回来,经反射后由 超声波接收器接收脉冲,其所经历的时间即往返时间,往返时间与超声波传播的路程的远近有关。 测试传输时间可以得出距离。假定 s 为被测物体到测距仪之间的距离, 测得的时间为 ts 。超声波传播速度为 v/m 则有关系式 (1)s=vt 2(1)温度补偿及其原理目前,大多数温度测控系统在进行温度测量时,通常采用模拟式温度敏感元件,如热电阻、 热电偶、红外测温仪等,将温度转化为电信号,经过信号放大电路放大到合适的范围,再由 转换为数字量。此种形式的温度测量结构复杂

5、,测量精度易受原器件参数影响。DS18B20 是 Dallas 公司开发的 1-wire (单总线) 高精度数字式半导体温度传感器, 节省 I/O 口弦资源,结构简单,成本低廉,精度高,便于总线扩展和维护等诸多特点。s-1表示,A/D它具有1-wire 是将数据线、控制线、地址线合为 1 根信号线。用于DS18B20的测温原理如图1所示,图1中低温度系数的晶振的振荡频率受温度很小,产生固定频率的脉冲信号送给计数器1,高温度系数晶振随温度变化其振荡频率明显改变,产生的信号作为计数器 2的脉冲输入图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完

6、成温度测量。计数门的开启时间由高温度系数振 荡器来决定,每次测量前,首先将-55 C所对应的基数分别置入计数器1和温度寄存器中,计数器1的温度寄存器被预置在-55 C所对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时温度寄存器的值将加 1,计数器1的预置将重新被装入,重新开始对低温度系数晶振产生的脉冲 进行计数。如此循环直至计数器 2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的 数值即为所测温度。图1中的斜率累加器用于补偿和修正测温过程中振荡器温度特性的非线性,以产生高分辨率的温度测量。其输出用于修正计数器的预置值,只要计数门仍未关闭就

7、重复上述 过程,直至温度寄存器值达到被测温度值。由经验公式V=331.5+0.607T 得出现场波速,实现温度补偿。图1另外, 由于 DS18B20 单总线通信功能是分时完成的, 因此他有严格的时隙概念, 因此读写时序很重要。系统对 DS18B20 的各种操作必须按协议进行。操作协议为:初始化 DS18B20 (发复位脉冲)t发ROM功能命令t发存储器操作命令t处理数据。7三)硬件设计系统总体设计本系统由超声波发射、回波信号接收、显示和单片机等硬件电路部分以及相应的软件部分 构成。整个系统由单片机 AT89S52 控制, 超声波传感器采用收发分体式, 分别是一支超声波发射 换能器 TCT40

8、16T 和一支超声波接收换能器 TCT40 16R 。超声波信号通过超声波发射换能器 发射至空气中,遇被测物反射后回波被超声波接收换能器接收。进行相关处理后,输入单片机的 INT0 脚产生中断,计算中间经历的时间,同时再根据具体的温度计算相应的声速,根据式(1) 就可得出相应的距离用来显示。超声波发射部分超声波发射部分是为了让超声波发射换能器 TCT40 16T 能向外界发出 40 kHz 左右的方 波脉冲信号。 40 kHz 左右的方波脉冲信号的产生通常有两种方法:采用硬件如由555 振荡产生或软件如单片机软件编程输出,本系统采用后者。编程由单片机 P1.0 端口输出 40 kHz 左右的方

9、 波脉冲信号, 由于单片机端口输出功率不够, 40 kHz 方波脉冲信号分成两路, 送给一个由 74HC04 组成的推挽式电路进行功率放大以便使发射距离足够远,满足测量距离要求,最后送给超声波发 射换能器 TCT40 16T 以声波形式发射到空气中。 发射部分的电路,如图 2 所示。图中输出端上 拉电阻 R1,R6 ,一方面可以提高反向器 74HC04 输出高电平的驱动能力, 另一方面可以增加超声 换能器的阻尼效果,缩短其自由振荡的时间。图3超声波发射电路超声波接收部分传统的接收电路采用 LM386等功率放大器件,结合其他一些硬件电路实现,电路结构复杂,制作成本较高,且检测灵敏度没有保障。本设

10、计选用了索尼 CX20106A芯片,这是一款专用的红外信号接收芯片,内部集成了检波、除噪、放大电路,具有很高的信号检测灵敏度,且输出信号 电平等级与单片机相同。上述TCT40 16T发射的在空气中传播,遇到障碍物就会返回,超声波接收部分是为了将 反射波(回波)顺利接收到超声波接收换能器TCT40 16R进行转换变成电信号,经过索尼CX20106A芯片对此电信号进行放大、滤波、整形等处理后,得到一个负脉冲送给单片机的 P3.2(INT0)弓I脚,以产生一个中断。超声波接收电路图如图4所9tillCX20106A图4超声波接收电路10温度补偿电路温度采用DS18B20传感器进行测量,P1.3接DS

11、18B20数据总线,控制 DS18B20进行温度转换和传输数据,同时数据总线上还接 10k的上拉电阻。本系统对 DS18B20采用外部供电,其优点 在于I/O线不需要强上拉,而且总线控制器无需在温度转换期间一直保持高电平。这样在转换期间可以允许在单线总线上进行其他数据传输,硬件结构如图5所示U511-单片机控制电路单片机米用STC89C52,借用实验箱电路,单片机原理电路如图6所示U12P0034盼1 2 3 4 5哈 DDDDrxDDDo 1 6 7 A A A A ppppppppp£ - A pp-p7PAP37/RDP36. R36;P22P238:RST/51Y3ARESE

12、T CSPBOPB1PB2PB3PB4PB5PB6PB7PCO PC)PC2PC3PC4PC5PC6PC78255A图6单片机原理电路p-psoBoPRB4PB74 -2”0413-显示电路采用简单的数码管显示14#DSIDS2#图7显示接口电路图15四)软件设计系统软件设计采用模块化设计,主要包括主程序设计、 T1 中断服务程序、 INT0 外部中断服 务程序、温度测量子程序、距离计算子程序、显示子程序、延时子程序等。系统软件编制时考虑相关硬件的连线,同时还要进行存储空间、寄存器以及定时器和外部中 断引脚的分配和使用。 本设计中 P1.0 引脚连接到 7HC04 推挽放大电路再连接到超声波发

13、射传感 器,P1.0引脚输出的将是软件方式产生的40 kHz方波,而P3 . 2(INT0)则被用来接收回波。P1.3引脚连接 18B20 进行温度测量。主程序首先要对系统环境初始化,设置定时器 T0 工作模式为 16 位定时 /计数器模式,置位 总中断允许位 EA 并对液晶清屏,显示边框等基本显示;然后调用超声波发生子程序送出一个超 声波脉冲, 同时调用测温子程序进行现场温度的测量并由经验公式 V=31.5+0.607T 得出现场温度 对应的波速。为了避免超声波从发射器直接传送到接收器引起的直射波触发,需要延时约0.1ms后才打开外中断 0 接收返回的超声波信号。由于采用的是 12mhz 晶

14、振,计数器每计一个数就是 1us,所以当主程序检测到接收成功的标志位后,将计数器T0中的数按式(41 )计算,即可得被测物体与测距之间的距离。则有:s=(unsigned int) (TH1<<8)+TL1*v)(4-)其中:为计数器 T0 的计数值 ,V 为现场温度对应的波速。测出距离后,结果由液晶显示出来,然后再发超声波脉冲调用温补子程序重复测量过程。主程序流程图图8超声波发生子程序和超声波接收中断程序设计超声波发生子程序的作用是通过 P1.0端口发送两个 左右的超声波脉冲信号(频率为 40khz的方波),脉冲宽 度约为12us左右,同时把计数器 TO打开进行计时。超声波测距主

15、程序利用外部中断0检测返回超声波信号,一旦接收到返回超声波信号(INTO低电平),立即 进入超声波接收中断程序。进入该中断后,就立即关闭计 数器TO,停止计时,并将测距成功标志子赋值1,寄存器用00h单元。温度采集及波速补偿程序设计DS18B20对时序和电性参数要求很高,所以单片机在通过单总线接口访问 DS18B20时,其工作流程必须要 遵守严格的操作时序,如果时序中任意一步缺少或顺序错 乱,DS18B20将不会响应。DS18B20的操作顺序是:第 一步:对 DS18B20初始化;第二步:发送 ROM 命令; 第三步:发送功能命令。超声波测距系统上电后,单片机 开始初始化 DS18B20,检测

16、现场温度,软件控制DS18B20的具体流程图如图 9所示图9通过以上程序,超声波测距系统上电启动后即可获得现场温度,在进行测距工作时单片机 会把温度值通过公式 V=331.5+0.607T 补偿到超声波的波速中,使得现场的实际波速得到校正, 从而降低温度对测距结果的影响,提高超声波测距系统的精度。(四)调试及性能分析超声波发射电路结构简单没有过多调试,主要对接收部分进行调试。超声波接收电路采用的是索尼CX20106A芯片,这是一款专用的红外信号接收芯片,电路结构简单但参数设置的不当会直接影响接收的效果。其中2号脚与地之间连接 RC串联网络,它们是负反馈串联网络的组成部分,改变它们的 数值能改变

17、前置放大的增益和频率特性。增大R或减小C将使负反馈量增大, 放大倍数下降,之则放大倍数增大。在制作过程中 R取4.7欧姆C取3.3uf,导致放大倍数过大,测距功能不能正常工作,后来 R取4.7k,C不变,测距功能基本可以实现,最终为了方便调节放大倍数将R用10k电位器代替,以此达到最佳效果。5号脚与地之间接入的电阻用以设置带通滤波器中心频率fO,阻值越大,中心频率越低,本设计采用经验值 200k,此时中心频率约为 40khz。6号脚与地之间接的积分电容,标准值为330pf,由于手头没有330pf的就用两个680pf的电容串联,这样做对功能有一定影响但不是很大,具体规律是电容太大会导致探测距离缩

18、短。其它引脚不用调试。温度采集及显示的调试中出现数据显示的位置错误,原因是显示程序中存储数据的数组重复利用,在显示完一组数据后应对存储数据的数组重新赋值,这样问题就可得到解决。测量数据表1距离实际距离(cm)57102030507090100测量距离(cm)67102029497192101表2温度及对应的波速当前温度(C)282930313233343536当前波速(m/s)348349349350350351352352353数据分析测量工距用两成为 23cm的三角尺,挡板。最小有效测量距离为 6cm ,测量误差在1cm左右,重复性较好。误差原因主要有尺子短,温度补偿和距离计算中的数据取整

19、造成的误差。(五)心得体会在单片机课程设计中,经过选题、设计电路、购买元件、焊接电路、程序编写调试等步骤,最终得到完整的作品。这次课程设计是本门课程课堂教学的延伸和发展,是理论知识与工程实践 之间的衔接。通过本课程设计,我获益匪浅,增强了我对单片机专业知识的学习,加深了认识, 进一步巩固了我的动手能力,培养独立自主、综合分析的思维与创新能力,最终使初步具有设计 小型计算机控制系统的硬件及软件的能力。同时,通过资料搜集、方案分析、系统设计与报告撰 写的一系列过程,得到一次科学研究工作的初步训练。从而,在专业知识与研究方法方面为日后 的毕业设计乃至毕业后的工作奠定良好的基础。本次课程设计使我得到了

20、锻炼,让我明白学习不知能是纸上谈兵,要能在生活生产中用到的具体使用。(六)附录#in elude <atmelat89x52.h>#in elude vintrin s.h>#include <1302.h> #define TX P1_0#define RX P1_1sbit p25=P2A5;sbit p26=P2A6;sbit p27=P2A7;unsigned char s;unsigned char cnt;float v;unsigned char code dsp_code_ca = 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x8

21、2,0xf8,0x80,0x90;void display(void);void init_t(void);void delay1(void);void Pulse()unsigned char i;for (i =0 ;i<10; +i) _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();/ _nop_();/延时 ,调整发射频率TX = TX; unsigned int sonic()unsigned int n;RX=1;TR1=0;TH1=TL1=0;Pulse();/开定时器/查询方式

22、中断标志位/ 排出相邻干扰TR1=1;TF1=0;for(n=0;n<160;n+);while( RX =1 && TF1 = 0 ) ;TR1=0;if ( TF1 )n=9999;elsen=(TH1<<8)+TL1;/ 0.017*12/11.0592n=(unsigned int) (n*v); /0.018446);return n;void main()/ unsigned int cnt;TMOD= 0x10;/ 超声用定时器 1EA = 1;while(1)ReadyReadTemp();/读温度准备TL=ReadOneChar();/先读的

23、是温度值低位TH=ReadOneChar();/接着读的是温度值高位TN=TH*16+TL/16;/实际温度值 =(TH*256+TL)/16, 即: TH*16+TL/16/ 这样得出的是温度的整数部分 ,小数部分被丢弃了/ TD=(TL%16)*10/16;/ 计算温度的小数部分 ,将余数乘以 10 再除以 16 取整,/ 这样得到的是温度小数部分的第一位数字(保留 1 位小数 )v = (331.45+0.61*TN)/2000;/ 应用于超声波的速度计算/v=0.017;/ delaynms(10);/ cnt = sonic();/ delay1();delay1();delay1(

24、);/delay1();delay1();delay1();delay1();delay1();delay1();/ 外接超声波探头display();void delay1(void)/ 延时 2msunsigned char i,k;for(i=4;i>0;i-)for(k=250;k>0;k-);/500usvoid display(void)unsigned int d;d=sonic();if(d>=0&&d<=9)p25=1;p26=1;p27=1;P0 = dsp_code_cad;p25=0;p26=1;p27=1;P0 = 0x80;delay1();else if(d>=10&&d<=99)p25=1;p26=1;p27=1;P0 =

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论