4、外部的压电效应,把作用于其的机械振动转换为电信号,发挥能量转换的作用。市售的超声波传感器有兼用作专用型的类型,专用型作为发送器的超声波,接收器作为接收超声波使用。兼用型是收发一体,传感头只有一个,具有收发声波的双重作用,被称为可逆元件。图3超声波发送电路超声波传感器的结构超声波发生器t是超声波频率电子振荡器,当把振荡器产生的超声波频率电压施加到超声波换能器的压电陶瓷上时,压电陶瓷模块因电场而产生纵向振动。压电模块在超声波振动时,像小活塞一样振幅小(110.2)Lm左右,但该振动加速度大(10103)gn左右,将电磁振动能量转换成振动能量,该巨大的超声波能量向特定的方向传播。
5、其关键技术是使超声波束变细,不受到测量对象以外的结构物的影响。超声波传感器是产生超声波所需的能量转换装置,将超声波的电磁振动的能量转换成声波。根据上述超声波交换能量结构,配备了适当的收发电路,传递超声波能量的方向性,并按预期接收反射波,可以实现超声波遥控器、测距、防盗等检查功能。2.超声波接收电路超声波接收和信号处理电路是该系统的设计和调试难点。超声波接收器需要把反射的超声波转换成40KHz毫安级的电压信号,并触发放大、处理和单片机的中断INT0。另一方面,传感器输出信号微弱的同时,根据反射条件,信号的大小发生很大变化,放大倍率需要约为1005000倍。另一方面,传感器输出阻抗大
6、,需要高输入阻抗的多级放大电路,引入了两个问题:在高输入阻抗容易接收干扰信号的同时,多级放大电路容易自振荡。最后参考各种资料选择了SONY公司的专用前置放大器CX20106,取得了较好的效果。CX20106由:前置放大器、限幅放大器、带通滤波器、检波器、积分器、整数电路构成。其中的前置放大器具有自动增益控制功能,可以保证在超声波传感器接收远处的反射信号并输出微弱电压时放大器的增益高,近距离输入信号强时放大器不会过载。可通过芯片引脚5的外接电阻调节该带通滤波器的中心频率。其主要指标:单电源5V供电,电压增益77-79DB,输入阻抗27K,滤波器中心频率30K-60KHz。功
7、能可以描述当:接收到与滤波器的中心频率一致的信号时,其输出脚7输出低电平。芯片内的带通滤波器、积分器等抗干扰能力强。CX20106采用8脚单线式塑料封装,图4所示为内部结构框图。超声波接收器能够将从接收到的发送电路发送的红外光信号从几十伏特转换为数百伏特的电信号,发送到CX20106的脚,CX20106的总放大增益约为80dB,并且从脚输出的控制脉冲序列信号的振幅在3.55V的范围内总增益的大小由与脚外接的R1、C1决定,R1越小或C1越大,增益越高。C1的值过大时,频率响应变差,通常为1uf。C2是检波电容,一般为3.3uf。CX20106采用峰值检测方式,c-2容量大时成为平均值
8、检测,过渡响应灵敏度低,c-2小时成为峰值检测,尽管过渡响应灵敏度高,但检测输出脉冲宽度却大幅度变动,容易引起解调错误而误动作。R2是带通滤波器的中心频率f0的外部电阻,可以改变R2的电阻值,该电阻改变载波信号的接收频率。如果f0偏离载波频率,则放大增益显着降低脚为输出端,CX20106处理过的脉冲信号脚输出到单片机进行处理,获得显示输出。图4CX20106的内部结构框图适用于本系统的接收电路参照图5,89c51的P1.7为高电平时三级管V1导通,5V电源通过继电器线圈和V1的发射接地,继电器K1导通,R2和R3并联地用C1构成RC电路,红外线接收专用集成电路CX20106的增益此外,该
9、芯片的价格为35元,非常节省系统成本。图5超声波接收电路3.距离显示电路图6显示电路超声波显示电路如图6所示。是由单片机实现的串行输出.只用单片机的TXD、RXD端子就能显示数字。三、软件程序设计该系统采用模块设计,由主程序、发送子例程、接收子例程、定时子例程、显示子例程等的模块构成,图8是程序流程图。该系统的主程序是键组方式,当按下测定键时,主程序调用发送子程序、询问接收子程序、定时子程序,通过显示子程序在数字显示器上显示测定结果。图9是图8的软件程序框图计时器中断子例程。外部中断服务子例程四、具体步骤#include#include/*数据类型的定义*/#defineuintu
11、d,0x99,0x49,0x41,0x1f,0x01,0x09;/*代码表0、1、2、3、4、5、6、7、8、9*/显示voidsdisfb()/*5位数据*/chari;for(i=0;i5;表示I)dispi=tablenumberi;以下disp3=disp31;/*小数点*/for(i=0;i6;表示I)SBUF=dispi;while(TI=0)TI=0;以下以下/*通用延迟子程序*/voiddelay(intj)inti;for(i=0;i4;i-)dispi=0xff;cshu=0;/*传输数*/延迟(200)/*延迟*/;IE=0x80;/*中断*/ET1=0;ET0=0;TR1=0;TR0=0;TL1=T12us;TH1=T12us;while(1)举止key=getkey();/*读键盘*/PS(PS=