传感器课程设计(2010级)题目:超声波传感器的设计与应用学员:xxx 学号:201003011020 学员:xxx 学号:201003011027 学员:xxx 学号:201003011003xxx二〇一三年九月目录 ...............................................................................................................................................第一章超声波传感器简介.....................................................................................1.1超声波传感器是什么 (2)1.2超声波传感器应用前景 (2)第二章超声波传感器设计 (3)2.1 设计目标描述 (3)2.2 设计指标 (3)2.3 传感器结构概述 (4)2.4 传感器设计原理 (4)2.4.1 物理部分设计 (4)2.4.2 电路部分设计 (7)第三章硬件设计 (8)3.1 单片机设计 (8)3.2 传感器设计 (11)3.3 单片机与传感器连接 (12)第四章软件设计 (13)4.1 总体设计思路 (13)4.2 软件程序 (13)第五章测试结果与分析 (21)第六章结论 (22)参考文献 (24)第一章超声波传感器的设计1.1超声波传感器是什么超声波传感器是利用超声波的特性研制而成的传感器。
超声波是一种振动频率高于声波的机械波,由换能晶片在电压的激励下发生振动产生的,它具有频率高、波长短、绕射现象小,特别是方向性好、能够成为射线而定向传播等特点。
超声波对液体、固体的穿透本领很大,尤其是在不透明的固体中,它可穿透几十米的深度。
超声波碰到杂质或分界面会产生显著反射形成反射成回波,碰到活动物体能产生多普勒效应。
因此超声波检测广泛应用在工业、国防、生物医学等方面。
1.2超声波传感器应用前景随着科学技术的快速发展,超声波将在传感器中的应用越来越广。
在人类文明的历次产业革命中,传感技术一直扮演着先行官的重要角色,它是贯穿各个技术和应用领域的关键技术,在人们可以想象的所有领域中,它几乎无所不在。
传感器是世界各国发展最快的产业之一,在各国有关研究、生产、应用部门的共同努力下,传感器技术得到了飞速的发展和进步。
但就目前技术水平来说,人们可以具体利用的传感技术还十分有限,因此,这是一个正在蓬勃发展而又有无限前景的技术及产业领域。
展望未来,超声波传感器作为一种新型的非常重要有用的工具在各方面都将有很大的发展空间,它将朝着更加高定位高精度的方向发展,以满足日益发展的社会需求,如声纳的发展趋势基本为:研制具有更高定位精度的被动测距声纳,以满足水中武器实施全隐蔽攻击的需要;继续发展采用低频线谱检测的潜艇拖曳线列阵声纳,实现超远程的被动探测和识别;研制更适合于浅海工作的潜艇声纳,特别是解决浅海水中目标识别问题;大力降低潜艇自噪声,改善潜艇声纳的工作环境。
无庸置疑,未来的超声波传感器将与自动化智能化接轨,与其他的传感器集成和融合,形成多传感器。
随着传感器的技术进步,传感器将从具有单纯判断功能发展到具有学习功能,最终发展到具有创造力。
在新的世纪里,面貌一新的传感器将发挥更大的作用。
第二章超声波传感器设计2.1设计目标描述此次,我们所设计的超声波传感器预计将应用在日常生活中一些电子产品之中。
所以,我们所设计的超声波传感器很多相应的指标,要求不会很高。
从而相应降低成本。
而在体积方面也不是特别小。
2.2设计指标工作电压:DC 5 V工作电流:15 mA工作频率:40 Hz工作温度:-10~+70℃工作频率:40kHz最远射程:4 m最近射程:2 cm测量角度:15度输入触发信号:10 us的T TL脉冲输出反馈信号:与射程成比例的T TL输出信号2.3 传感器结构概述如图2-3所示,我们所设计的超声波传感器的结构主要部分是一个锥形振子和双压电陶瓷晶片。
当压电陶瓷晶片的两极外加电压脉冲信号时,压电晶片利用逆压电效应产生振动。
当脉冲信号的频率等于压电晶片的固有频率时,将产生共振效应,从而产生超声波。
超声波以疏密形式传播传给接收器。
接受器中的压电晶片也会相应振动,利用压电效应产生电信号。
实际上这种变化的电信号是很小的,因此要用放大电路去放大。
2.4 传感器设计原理2.4.1物理部分设计压电材料是超声波传感器的关键部分,现在市场较多使用压电陶瓷作为超声波传感器的敏感原件。
那么,压电陶瓷的振动模式和它的具体材料将决定超声波的谐振频率。
由于我们所需的工作频率是40kHz,可选的震动模式有两种,一个是薄长条的长度伸缩振动模式,其振动的频率围是:15~200kHz;另一个是圆片厚度弯曲振动模式,其振动的频率围是:2~70kHz。
我们选择第二种,因为它的围更接近。
于是,有是谐振频率,是频率常数与材料有关,t是厚度,D是直径。
当把两个厚度相同,有电极的圆形压电陶瓷片粘连在一起时,可以产生弯曲振动,极化方向相反时,以串联方式接入电源,在电场激励下,整个陶瓷片就会产生厚度弯曲振动。
我们在下面的公式推导中,我们以矩形(正方形)模拟圆形。
对于薄板的小挠度弯曲振动其形变分量可表示为:其中,u为板的挠度。
则其压电方程可以简化为:其中,Ez及Dz为厚度方向的电场及电位移分量,和是弹性柔顺常数,是压电应变常数,为自由节点常数分量。
令称为机械耦合系数。
则:由(1)得为由产生的弯矩可表示计算此积分,将(3)代入(4)得到根据力矩平衡方程,在不计转动的情况下可得由此可得到矩形薄板绕y轴的弯曲振动方程由(7)可得矩形薄板绕y轴弯曲振动的位移分布程:移方程。
并最终得到共振频率的方当薄板压电陶瓷振子的材料,几何尺寸及振动模式给定后可得出关于频率的根。
我们所使用的材料是钛酸铅,其密度是7.7g/,居里温度是520℃,相对介电常数150,压电系数是-6.8,是56,弹性系数为7.8,品质因数是1300。
通过这些参数,推算出我们的传感器的直径大概为9.3mm,厚度约是0.7mm。
由此根据最开始的频率公式可以算出我们的压电振子的实际共振频率为38kHz。
物理部分我们从给出的条件开始,由材料所处运动状态求得材料尺寸,在由最初公式,得到实际频率是多少,来说明物理设计过程2.4.2电路设计部分压电元件在受到敏感轴向外力作用以后,会在电极表面产生不同极性的电荷,因此,他相当于一个电荷器,又相当于一个平板电容器,于是它就有两种等效电路,一种是电荷源等效电路,另一种是电压源等效电路。
如图2-4:压电式传感器相当于平板电容器,所以部阻抗很高,因此输出信号很小,不能直接显示和记录,需要进行阻抗变换和放大,所以测量电路的作用是:①阻抗变换器,将高阻抗变为低阻抗;②信号放大器,进行电压放大和电荷放大。
第三章硬件设计3.1单片机设计本次实验选择mini80E开发板,如图3-1:超声波传感器测距,利用了它如下的功能:(1)8个高亮数码管显示用于显示所测的距离,第二位为千位,依次第三位为百位,第四位为十位,第五位为个位。
数据的单位为cm,所测的距离在2-400cm之间。
(2)8个高亮发光二极管(跑马灯、指示灯、红绿灯)低电平时LED点亮,高电平时LED熄灭。
LED2为传感器的控制口,一直处于低电平状态,亮红灯。
实验用LED3-8指示距离的远近,当距离在0-40cm时,LED3点亮;当距离在40-80cm时,LED4点亮,同时其他灯熄灭;当距离在当距离在80-120cm时,LED5点亮,同时其他灯熄灭;以此类推,120-160cm时,LED6点亮;160-200cm时,LED7点亮;160-200cm时,LED8点亮。
(3)独立按键独立按键软件操作简单,主要检测按键连接的IO口是否为0,为0表示按键按下,实验利用按键完成数据的保持与重新测距功能。
当s2按下时,显示在数码管上的数据将保持不变,便于检测者记录数据;当s1按下时,传感器开始重新测距,并显示新的数据。
(4)定时器利用16位的定时器,实现时间的累加,利用发出超声波与接收的时间差来计算出所测的距离。
(5)STC12C5A60S2芯片STC12C5A60S2单片机具有如下特点1、具有电源指示;2、所以I/O口以引出;3、可以实现与电脑串口通信;4、可以实现双串口通讯;5、具有上电复位和手动复位;6、附带SD卡读写接口;7、支持STC串口下载;8、双串口通讯(注:只能使用串口一下载程序);9、八路LED灯(注:可拔出短路帽,断开LED灯);10、可端子接线供电、可排针引电;11、7805供电,输入电压围宽,且确保AD参考电压准确。
STC12C5A60S2单片机的工作电压为直流4.5~5.5伏(或者USB 供电)(6)标准的RS232通信接口(PC通信)RS232芯片用于电压转换,将电脑电平转换成T TL电平。
在开发板上我们主要使用了三根线,发送线TXD,接收线RXD,地线GND。
它主要用于基础的串口通信(使用串口调试程序进行调试),和STC单片机程序的在线下载。
(7)USB电源输入使用了USB将电脑与单片机相接,用于直流电源供电。
电压为5V。
3.2 传感器设计采用了HC-SR04超声波传感器,如图3-10:使用方法:工作时,一个控制口发一个10US以上的高电平,就可以在接收口等待高电平输出.一有输出就可以开定时器计时,当此口变为低电平时就可以读定时器的值,此时就为此次测距的时间,方可算出距离.3.3 单片机与传感器连接图3-9 USB电源输入实物图用了杜邦线,将传感器与单片机相连,一共四根线。
地线,电源线,控制线与接收线。
其中,定义P1.0口为控制线,控制传感器超声波的发射,P3.2口为接收线,用于接收遇到障碍物返回的超声波。
电源线与开发板的5v电源接口相连,地线与开发板的地线相连。
如图3-11图3-11 开发板接线图第四章软件设计4.1总体设计思路超声波测距的原理是借助于超声波脉冲回波渡越时间法来实现的。
因此,主要由定时器来完成时间的累加,将超声波的发射时间与被接收到的时间间隔得到并存放在寄存器中,再由公式计算出传感器到目标的距离,并显示在数码显示管上。
以下为总体设计框图:4.2 软件程序://一线式超声波测距模组测试代码//MCU--- STC10F04XE//晶振:4M//说明:程序中我们读回测量的距离并通过六个LED灯来显示出来//2-40厘米蜂鸣器响第一个灯及数码管闪烁40-80厘米第二个灯亮//80-120厘米第三个灯亮120-160厘米第四个灯亮160-200厘米第五个灯亮//200-240厘米第六个灯亮#include<reg51.h>#include <intrins.H>#define uchar unsigned char#define uint unsigned intuchar distance_H0,distance_L0;unsigned char const dofly[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; // 显示段码值01234567unsigned char code seg[]={0,1,2,3,4,5,6,7}; //分别对应相应的数码管点亮,即位码//特殊寄存器定义sfr CLK_DIV =0x97;//STC MCU IO register define total waysfr P1M1= 0x91;sfr P1M0= 0x92;sfr P3M1= 0xB1;sfr P3M0= 0xB2;//IO口引脚说明sbit Trig0 =P1^0;sbit Echo0 =P3^2;sbit led1_4 =P1^1;sbit led4_8 =P1^2;sbit led8_12 =P1^3;sbit led12_16 =P1^4;sbit led16_20 =P1^5;sbit led20_24 =P1^6;sbit SPK=P1^1;void IO_inint(void);void sys_inint(void);void delay_nop(uint timer);void led_out(void);/*------------------------------------------------函数声明------------------------------------------------*/ void DelayUs2x(unsigned char t);//函数声明void DelayMs(unsigned char t);void IO_inint(void){CLK_DIV=0x02; //系统时钟四分之一分频P1M1= 0x00; //0000 0000P1M0= 0x1e; //0001 1110P1=0x00; //0000 0000P3M1= 0x04; //0000 0100P3M0= 0x00; //0000 0000}//定时中断初始化设定void sys_inint0(void){TMOD=0x01;TH0=0x00;TL0=0x00;TR0=0;IT0=1;EX0=1;EA=1;}// 延时子程序//------------------------------------------------ void delay(unsigned int cnt){while(--cnt);}//NOP延时void delay_nop(uint timer){while(timer--){_nop_();}}//外部中断0,用做判断回波电平void int0_routine0(void) interrupt 0{EX1=0;distance_H0 =TH0; //取出定时器0的值distance_L0 =TL0; //取出定时器0的值EX0=0; //关闭外部中断}void DelayUs2x(unsigned char t){while(--t);}//LED输出及数码管控制void led_out0(void){uint distance0;unsigned char i;int j;int display[5];distance0=distance_H0; //测量结果的高8位distance0<<=8; //放入16位的高8位distance0=distance0|distance_L0; //与低8位合并成为16位结果数据distance0*=4; //因为定时器为4分频distance0/=58; //一厘米就是58usfor(j=0;j<=100;j++){display[0]=distance0/1000;display[1]=(distance0%1000)/100;display[2]=(distance0%1000%100)/10;display[3]=distance0%10/1;for(i=0;i<=3;i++){P0=dofly[display[i]];//取显示数据,段码P2=seg[i+1]; //取位码delay(200); //扫描间隙延时,时间太长会闪烁,太短会造成重影}}if(distance0>=2&&distance0<=40)//测量距离在2到40厘米时,led2_4灯亮{led1_4=0;for(i=0;i<200;i++) //喇叭发声的时间循环,改变大小可以改变发声时间长短{delay(80); //参数决定发声的频率,估算值,可以自行更改参数并SPK=!SPK;}SPK=1; //喇叭停止工作,间歇的时间,可更改delay(2000);}else{led1_4=1;}if(distance0>40&&distance0<=80)//测量距离在40到80厘米时,led4_8灯亮{led4_8=0;}else{led4_8=1;}if(distance0>80&&distance0<=120)//测量距离在80到120厘米时,led8_12灯亮{led8_12=0;}else{led8_12=1;}if(distance0>120&&distance0<=160)//测量距离在120到160厘米时,led12_14灯亮{led12_16=0;}else{led12_16=1;}if(distance0>160&&distance0<=200)//测量距离在160到200厘米时,led16_20灯亮{led16_20=0;}else{led16_20=1;}if(distance0>200&&distance0<=240)//测量距离在200到240厘米时,led20_24灯亮{led20_24=0;}else{led20_24=1;}}void DelayMs(unsigned char t){while(t--){DelayUs2x(245); //大致延时1mS DelayUs2x(245);}}//系统主程序void main(void){IO_inint();sys_inint0();while(1){Trig0=1;delay_nop(20);Trig0=0;while(!Echo0);TR0=1; //启动定时器0EX0=1; //打开外部中断1while(TH0<40);TR0=0; //关闭定时器1TH0=0; //定时器1清零TL0=0; //定时器1清零led_out0();}}第五章测试结果与分析如表6-1,我们用超声波传感器测了距离,并记录下了实验现象:表6-1实验分析:LED灯是用来表示距离的远近的,程序设计每隔40cm换一个灯亮;并且设计了一个蜂鸣器,间距在2-40cm也就是最短间距时,蜂鸣器响,用于表示警告。