超声波测距板学习板
超声波测距学习板,可应用于汽车倒车、建筑施工工地以及一些工业现场的位置监控,也可用于如液位、井深、管道长度的测量等场合。要求测量范围在0.27~4.00m,测量精度1cm,测量时与被测物体无直接接触,能够清晰稳定地显示测量结果。
超声波测距原理
超声波发生器内部结构有两个压电晶片和一个共振板。当它的两极外加脉冲信号,其频率等于压电晶片的固有振荡频时,压电晶片将会发生共振,并带动共振板振动,便产生超声波。反之,如果两电极间未外加电压,当共振板接收到超声波本时,将压迫压电晶片作振动,将机械能转换为电信号,就成为超声波接收器。在超声探测电路中,发射端得到输出脉冲为一系列方波,其宽度为发射超声的时间间隔,被测物距离越大,脉冲宽度越大,输出脉冲个数与被测距离成正比。超声测距大致有以下方法:① 取输出脉冲的平均值电压,该电压 (其幅值基本固定 )与距离成正比,测量电压即可测得距离;② 测量输出脉冲的宽度,即发射超声波与接收超声波的时间间隔 t,故被测距离为 S=1/2vt。本测量电路采用第二种方案。由于超声波 的声速 与温度有关,如果温度变化不大,则可认为声速基本不变。如果测距精度要求很高,则应通 过温度补偿的方法加以校正。超声波测距适用于高精度的中长距离测量。因为超声波在标准空气中的传播速度为331.45米/秒,由单片机负责计时,单片机使用12.0M晶振,所以此系统的测量精度理论上可以达到毫米级。
超声波学习板采用AT89C51或AT89S51单片机,晶振:12M,单片机用P1.0口输出超声波换能器所需的40K方波信号,利用外中断0口监测超声波接收电路输出的返回信号,显示电路采用简单的4位共阳LED数码管,断码用74LS245,位码用8550驱动.
超声波测距的算法设计: 超声波在空气中传播速度为每秒钟340米(15℃时)。X2是声波返回的时刻,X1是声波发声的时刻,X2-X1得出的是一个时间差的绝对值,假定X2-X1=0.03S,则有340m×0.03S=10.2m。由于在这10.2m的时间里,超声波发出到遇到返射物返回的距离,
超声波测距器的系统框图如下图所示:
超声波测距器的系统框图如下图所示:
超声波测距器的系统框图如下图所示:
硬件部分
超声波学习板采用AT89C51或AT89S51单片机,晶振:12M,单片机用P1.0口输出超声波换能器所需的40K方波信号,利用外中断0口监测超声波接收电路输出的返回信号,显示电路采用简单的4位共阳LED数码管,断码用74LS245,位码用8550驱动.主要由单片机系统及显示电路、超声波发射电路和超声波检测接收电路三部分组成。采用AT89S51来实现对CX20106A红外接收芯片和TCT40-10系列超声波转换模块的控制。单片机通过P1.0引脚经反相器来控制超声波的发送,然后单片机不停的检测INT0引脚,当INT0引脚的电平由高电平变为低电平时就认为超声波已经返回。计数器所计的数据就是超声波所经历的时间,通过换算就可以得到传感器与障碍物之间的距离。
1.单片机系统及显示电路
单片机采用89S51或其兼容系列。采用12MHz高精度的晶振,以获得较稳定的时钟频率,减小测量误差。单片机用P1.0端口输出超声波转化器所需的40KHz方波信号,利用外中断0口检测超声波接受电路输出的返回信号。显示电路采用简单实用的4位共阳LED数码管,段码用74LS245驱动,位码用PNP三极管驱动。单片机系统及显示电路如下图所示.
超声波发射电路原理图
超声波接收电路:
使用CX20106A集成电路对接收探头受到的信号进行放大、滤波。其总放大增益80db。以下是CX20106A的引脚注释。
1脚:超声信号输入端,该脚的输入阻抗约为40kΩ。
2脚:该脚与地之间连接RC串联网络,它们是负反馈串联网络的一个组成部分,改变它们的数值能改变前置放大器的增益和频率特性。增大电阻R1或减小C1,将使负反馈量增大,放大倍数下降,反之则放大倍数增大。但C1的改变会影响到频率特性,一般在实际使用中不必改动,推荐选用参数为R1=4.7Ω,C1=1μF。
3脚:该脚与地之间连接检波电容,电容量大为平均值检波,瞬间相应灵敏度低;若容量小,则为峰值检波,瞬间相应灵敏度高,但检波输出的脉冲宽度变动大,易造成误动作,推荐参数为3.3μf。
4脚:接地端。
5脚:该脚与电源间接入一个电阻,用以设置带通滤波器的中心频率f0,阻值越大,中心频率越低。例如,取R=200kΩ时,f0≈42kHz,若取R=220kΩ,则中心频率f0≈38kHz。
6脚: 该脚与地之间接一个积分电容,标准值为330pF,如果该电容取得太大,会使探测距离变短。
7脚:遥控命令输出端,它是集电极开路输出方式,因此该引脚必须接上一个上拉电阻到电源端,推荐阻值为22kΩ,没有接受信号是该端输出为高电平,有信号时则产生下降。
8脚:电源正极,4.5~5V。
超声波测距学习成品板
产品性能特点:
成品板上自带:超声波收发传感器、接收放大电路、四位LED数码显示、四位按键,电源部分自带整流、滤波、稳压电路,允许交流7~15V或者直流9~16V输入,经过实际测试,测量范围可达27~300厘米,测量精度为1厘米。因为我们能提供完整的源程序,客户不但可以学习超声波测距的知识,还可以直接将这项技术用于产品开发,是不可多得的资料。
下图是超声波测距学习板的元件布局图,
软硬件调试及性能
超声波测距仪的制作和调试,其中超声波发射和接收采用Φ16的超声波换能器,中心频率为40kHz,安装时应保持两换能器中心轴线平行并相距4~8cm,其余元件无特殊要求。若能将超声波接收电路用金属壳屏蔽起来,则可提高抗干扰能力。根据测量范围要求不同,可适当调整与接收换能器并接的滤波电容C6的大小,以获得合适的接收灵敏度和抗干扰能力。
硬件电路制作完成并调试好后,便可将程序编译好下载到单片机试运行。根据实际情况可以修改超声波发生子程序每次发送的脉冲宽度和两次测量的间隔时间,以适应不同距离的测量需要。根据所设计的电路参数和程序,测距仪能测的范围为0.07~5.5m,测距仪最大误差不超过1cm。系统调试完后应对测量误差和重复一致性进行多次实验分析,不断优化系统使其达到实际使用的测量要求。
后续工作需实验后才能验证
根据参考电路和集成的电路器件测距范围有限10m以内为好。
附录1 超声波测距仪汇编和C51混合编程源程序
#include
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
extern void cs_t(void);
extern void delay(unit);
extern void display(uchar*);
data uchar testok;
void main(void)
{
data uchar dispram[5];
data uint i;
data ulong time;
P0=0xff;
P2=0xff;
TMOD=0x11;
IE=0x80;
while(1)
{
cs_t();
delay(1);
testok=0;
EX0=1;
ET0=1;
while(!testok)display(dispram);
if(1==testok)
{
time=TH0;
time=time<<8|TL0;
time*=172;
time/=10000;
dispram[0]=(uchar)(time);
time/=10;
dispram[1]=(uchar)(time);
time/=10;
dispram[2]=(uchar)(time);
dispram[3]=(uchar)(time/10);
if(0==dispram[3])dispram[3]=17;
}else
{
dispram[0]=16;
dispram[1]=16;
dispram[2]=16;
dispram[3]=16;
}
for(i=0;i<300;i++) display(dispram);
}
}
void cs_r(void) interrupt 0
{
TR0=0;
ET0=0;
EX0=0;
testok=1;
}
void overtime(void) interrupt 1
{
EX0=0;
TR0=0;
ET0=0;
testok=2;
}
;
;----------------------------
;超声发生子程序(12MHz晶振38.5Hz)
;----------------------------
NAME CS_T
?PR?CS_T?CS_TSEGMENTCODE
PUBLICCS_T
RSEG ?PR?CS_T?CS_T
CS_T:PUSH ACC
MOV TH0,#00H
MOV TL0,#00H
MOV A,#4D
SETB TR0
CS_T1: CPL P1.0
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
DJNZ ACC,CS_T1
POP ACC
RET
;
END
;
;------------------------
;四位共阳LED动态扫描显示程序*/
;p0为段码口,p2为位选口(高电平有效0)
;参数为要显示的字符串指针
;--------------------------------
NAME DISPLAY
?PR?_DISPLAY?DISPLAYSEGMENTCODE
?CO?_DISPLAY?DISPLAYSEGMENTDATA
EXTRN CODE (_DELAY)
PUBLIC_DISPLAY
RSEG ?CO?_DISPLAY?DISPLAY
?_DISPLAY?BYTE:
DISPBIT:DS 1
DISPNUM:DS 1
RSEG ?PR?_DISPLAY?DISPLAY
_DISPLAY: PUSHACC
PUSH DPH
PUSH DPL
PUSH PSW
INCDISPNUM
MOVA,DISPNUM
CJNE A,#4D,DISP1
DISP1:JC DISP2
MOVDISPNUM,#00H
MOVDISPBIT,#0FEH
DISP2: MOV A,R1
ADDA,DISPNUM
MOV R0,A
MOVA,@R0
MOVDPTR,#DISPTABLE
MOVC A,@A+DPTR
MOV P0,A
MOVA,DISPNUM
CJNE A,#2D,DISP3
CLR P0.7
DISP3: MOVP2,DISPBIT
MOVR6,#00H
MOVR7,#0AH
LCALL _DELAY
MOVP0,#0FFH
MOVP2,#0FFH
MOVA,DISPBIT
RL A
MOVDISPBIT,A
POP PSW
POP DPL
POP DPH
POP ACC
RET
DISPTABLE:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH,0BFH,0FFH
;"0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","-",""
END
;
;-------------------------------
;延时100机器周期*参数(1~65535)
;--------------------------------
NAME DELAY
?PR?_DELAY?DELAYSEGMENTCODE
PUBLIC_DELAY
RSEG ?PR?_DELAY?DELAY
_DELAY:PUSH ACC ;2
MOVA,R7 ;1
JZ DELA1 ;2
INCR6 ;1
DELA1: MOVR5,#50D ;2
DJNZR5,$ ;2
DJNZR7,DELA1 ;2
DJNZR6,DELA1 ;2
POP ACC
RET
;
END
超声波测距学习板全部元件清单:
参数 | 名称代号 | 数量 | 参数 | 名称代号 | 数量 |
470U | C1 | 1 | 1K | R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12,R16, R17 | 14 |
100u | C2 | 1 | 4.7 | R13 | 1 |
104 | C3, C4 | 2 | 220K | R14 | 1 |
224 | C5, C10 | 2 | 22K | R15 | 1 |
223 | C6 | 1 | 4.7K | R18 | 1 |
330P | C7 | 1 | 按键 | RST, S1, S2, S3, S4 | 5 |
3.3UF | C8 | 1 | 蜂鸣器 | SP1 | 1 |
1UF | C9 | 1 | 超声波接收管 | R | 1 |
47UF | C11 | 1 | 超声波发射管 | T | 1 |
10uF | C12 | 1 | LM7805 | U1 | 1 |
30p | CY1, CY2 | 2 | 74HC245 | U2 | 1 |
4007 | D1, D2, D3, D4 | 4 | 89S52 | U3 | 1 |
0.36数码管 | DS1 | 1 | CD4069/74LS04 | U4 | 1 |
温度传感接口 | J2 | 1 | 红外接收一体头CX20106A | U5 | 1 |
下载头 | JTAG1 | 1 | 11.0592M | Y1 | 1 |
10K排阻 | PR1 | 1 | DC电源插座 | P1 | 1 |
8550 | Q1, Q2, Q3, Q4, Q5 | 5 | PCB电路板 | 1 |