欢迎来到天天文库
浏览记录
ID:22723904
大小:177.00 KB
页数:6页
时间:2018-10-31
《《超声波测距仪》word版》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、课程设计作品:超声波测距仪 组员:陈国瑞孔泰王宇1.背景:目前一般都采用波在介质传播速度和时间关系进行测量。常用的技术主要有激光测距、微波雷达测距超声波测距三种。超声波测距就是利用其反射特性,超声波发生器不断地发射出40kHz超声波遇到障碍物后反射回反射波,超声波接收器接收到发射波信号,并将其转换为电信号。相比于其它定位技术超声波定位技术成本低,制作容易,非常适合于短距离测量定位。2测距原理超声波传感器:超声波发生器内部结构有两个压电晶片和一个共振板。当它的两极外加脉冲信号,其频率等于压电晶片的固有振荡频时,压电晶片将会发生共
2、振,并带动共振板振动,便产生超声波。反之,如果两电极间未外加电压,当共振板接收到超声波本时,将压迫压电晶片作振动,将机械能转换为电信号,就成为超声波接收器。本测距仪便是利用了超声波传感器的这种特性,利用其发生超声波。如上图,当遇到障碍物,超声波被反射进入超声波传感器,并产生电信号。经过单片机处理,得出传播时间t,利用公式s=v*t/2便得出测距仪与障碍物之间的距离s。其中,v的取值在温度变化不大时可取344m/s。3.硬件设计硬件设计分为三个部分:发射回路、接收回路、七段数码管显示系统1)发射回路:发射回路的主要设计思想是将单
3、片机端口输出的40KHz的方波经过反相器(所用芯片为CD4049)波形整理后,加在超声波转换器两端使其发射40KHz超声波。同时这里的反相器还可以提高电路的驱动能力,保证超声波发射探头的输出功率,并且Vpp=10V。主要硬件单元的功能:单片机OC1端输出的40kHz方波信号一路经一级反向器后送到超声波换能器的一个电极。另一路经两级反向器后送到超声波换能器的另一个电极。用这种推挽形式将方波信号加到超声波换能器两端。可以提高超声波的发射强度。输出端采用两个反向器并联。用以提高驱动能力。上拉电阻R10、R20一方面可以提高反向器74
4、LS04输出高电平的驱动能力。另一方面可以增加超声波换能器的阻尼效果,缩短其自由振荡的时间。1)接收回路:接收回路的主题设计思想是将超声波探头接收到的信号进行滤波放大后接入比较器,与设定的比较电压进行比较后输出高低点平触发单片机中断。电路中所用集成运放电路芯片为NE5532。采用NE5532进行了两级放大,放大倍数约为100倍。在两级放大电路之间比较器所用芯片为LM311P,比较输出电压为5V。3)七段数码管显示回路:利用PA0-PA6片选,PC0PC1PC6PC7段选,电路图如下:4)整合后的总电路图4.软件设计软件部分主要
5、包括发波部分、计时部分、数码管显示部分、初始化部分和主函数。发波部分:利用T/C0在CTC模式下通过引脚PB3输出80kHz的方波。本来的想法是让方波一段一段的发射,在发射方波时,INT0不使能,即不让接收发射信号,以防超声波发射头与接收头距离太近而产生干扰,即波刚发射,便直接被接收头接收,从而影响了测距。但经实验发现,一直发射方波是可行的,发射头与接收头之间的干扰信号很低,不足以产生干扰。故发射程序一直让PB3输出方波。T/C0发波部分设置函数://TIMER0initialize-prescale:1//WGM:CTC//
6、desiredvalue:80KHz//actualvalue:76.923KHz(-4.0%)voidtimer0_init(void){TCCR0=0x00;//stopTCNT0=0xF4;//setcountOCR0=0x0C;//setcompareTCCR0=0x19;//starttimer}计时部分:当T/C0发波的同时,计时器T/C1开始计时,其实时刻定义为TCNT1=0;当接受回路将电信号传入INT0时,引起INT0中断,在中断函数里记下接收时刻TCNT1。则超声波在空气中传播的时间为TCNT1*(T/C1
7、的周期),进而可得距离S。其中,T/C1工作在CTC模式下,64分频,故(T/C1的周期)=64/1000000s。(M16晶振1MHz)。T/C1计时部分设置函数://TIMER1initialize-prescale:64//WGM:4)CTC,TOP=OCRnA//desiredvalue:1Sec//actualvalue:1.000Sec(0.0%)voidtimer1_init(void){TCCR1B=0x00;//stopTCNT1H=0xC2;//setupTCNT1L=0xF8;OCR1AH=0x3D;OC
8、R1AL=0x08;OCR1BH=0x3D;OCR1BL=0x08;ICR1H=0x3D;ICR1L=0x08;TCCR1A=0x00;TCCR1B=0x0B;//startTimer}//INT0接受波后得到时间#pragmainterrupt_handlerint0_is
此文档下载收益归作者所有