基于51单片机的高精度超声波测距仪.docx

上传人:b****5 文档编号:6010417 上传时间:2023-01-03 格式:DOCX 页数:17 大小:1.19MB
下载 相关 举报
基于51单片机的高精度超声波测距仪.docx_第1页
第1页 / 共17页
基于51单片机的高精度超声波测距仪.docx_第2页
第2页 / 共17页
基于51单片机的高精度超声波测距仪.docx_第3页
第3页 / 共17页
基于51单片机的高精度超声波测距仪.docx_第4页
第4页 / 共17页
基于51单片机的高精度超声波测距仪.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

基于51单片机的高精度超声波测距仪.docx

《基于51单片机的高精度超声波测距仪.docx》由会员分享,可在线阅读,更多相关《基于51单片机的高精度超声波测距仪.docx(17页珍藏版)》请在冰豆网上搜索。

基于51单片机的高精度超声波测距仪.docx

基于51单片机的高精度超声波测距仪

目录

引言1

1系统总体框图设计1

2理论分析与计算1

2.1测量原理1

2.2分析计算2

3电路实现3

3.1系统供电部分3

3.2超声波发射部分4

3.3超声波接收部分4

3.4温度测量部分6

3.4.1DS18B20工作原理6

3.4.2温度计算方法7

3.5LCD显示7

4程序设计8

4.1流程图8

4.2单片机产生40KHZ方波9

4.3超声波传播时间测量10

5系统调试10

5.1精度提高方法11

5.2误差分析12

5.3测量结果12

6结论12

谢辞13

参考文献14

附录15

附录一原理图15

附录二PCB16

 

 

完成实物图

引言

经过一个星期的奋斗,终于把这个超声波测距仪完成了。

这是我的第一个课程设计,

也是我把理论知识运用到实践中的开端。

接下来我将详细介绍这个电路的原理和制作的过程。

1系统总体框图设计

超声测距是一种非接触式的检测方式。

与其它方法相比,如电磁的或光学的方法,它不受光线、被测对象颜色等影响。

测距系统主要由超声波发射,接收,数据处理,显示,温度检测部分组成(如图1所示)。

发射电路

LCD显示

温度检测

接收电路

供电电路

图1系统总框图

其中,超声波传感器所需的40KHZ脉冲由单片机产生。

通过74HC04放大驱动功率。

2理论分析与计算

2.1测量原理

 

图2超声波传感器结构图

为了研究和利用超声波,人们已经设计和制成了许多超声波发生器。

总体上讲,超声波发生器可以分为两大类:

一类是用电气方式产生超声波,一类是用机械方式产生超声波。

电气方式包括压电型、磁致伸缩型和电动型等;机械方式有加尔统笛、液哨和气流旋笛等。

它们所产生的超声波的频率、功率和声波特性各不相同,因而用途也各不相同。

目前较为常用的是压电式超声波发生器。

压电式超声波发生器内部结构有两个压电晶片和一个共振板(如图2所示)。

当它的两极外加脉冲信号,其频率等于压电晶片的固有振荡频时,压电晶片将会发生共振,并带动共振板振动,便产生超声波。

反之,如果两电极间未外加电压,当共振板接收到超声波本时,将压迫压电晶片作振动,将机械能转换为电信号,就成为超声波接收器。

在超声探测电路中,发射端得到输出脉冲为一系列方波,其宽度为发射超声的时间间隔,被测物距离越大,脉冲宽度越大,输出脉冲个数与被测距离成正比。

超声测距大致有以下方法:

①取输出脉冲的平均值电压,该电压(其幅值基本固定)与距离成正比,测量电压即可测得距离;②测量输出脉冲的宽度,即发射超声波与接收超声波的时间间隔T,故被测距离为S=V*T/2。

本测量电路采用第二种方案。

超声波在标准空气中的传播速度为331.45米/秒,但由于其声速与温度有关,如果温度变化不大,则可认为声速基本不变。

如果测距精度要求很高,则应通过温度补偿的方法加以校正。

本电路采用18B20临测温度变化,加上温度补偿。

系统中,单片机同时负责计时,单片机使用12.0M晶振,所以此系统的测量精度理论上可以达到毫米级。

2.2分析计算

S

发射头

 

接收头

图3测距原理图

利用检测声波发出到接收到被测物反射回波的时间来测量距离其原理如图3所示,对于距离较短和要求不高的场合我们可认为空气中的声速V为常数,我们通过测量回波时间T(T由单片机计数器测出)。

可以求出测量距离S:

S=T*V/2

但在实际应用中,声速V与温度有很大的关系。

关系如下:

 

其中v0为干燥常温下声音传播的速度。

上式虽然能准确地算出声速,但式中有浮点的开方,乘除运算,将会耗单片机太大量的时间和空间,得不偿失。

实际上并不要求这么准确,取简化的计算式即可达到理想的精度。

简化计算式如下:

其中Temp为环境的温度。

本系统的声速计算将取用此式。

3电路实现

3.1系统供电部分

 

图4供电电路

供电部分如图4所示。

电源使用2颗3V纽扣电池串联成6V,用5.1V稳压管进行稳压。

查稳压管参数手册知道,其稳压范围为4.8V~5.1V,R5为保护电阻。

系统总电流约为20mA,当稳压管电压为5V时,由总电压:

再由分压公式和欧姆定律可知:

因此,电源中只要加上一个10欧的保护电阻,再串联一个1K的可变电阻即可将稳压输出电压调节至5V。

 

3.2超声波发射部分

 

图5发射原理图

发射电路使用74HC04反相器完成,该电路原理简单(见图5)。

电路以单片机输出的40KHz方波作为输入信号,U1B和U1C,U1E和U1F并接提高输出电流;4,6脚和10,12脚上的输出电压相位相反。

这样,发射器上可以得到峰峰值为10V的脉冲,大大提高提高了发射功率,使测量的距离可以更远。

3.3超声波接收部分

 

图6接收原理图

图6接收电路

接收部分电路(图6所示)以红外解码芯片CX20106A为核心,对接收探头受到的信号进行放大、滤波。

其总放大增益80db。

CX20106A是日本索尼公司生产的彩电专用红外遥控接收器,采用单列8脚直插式,超小型封装,+5V供电。

其内部方框图如图7所示。

图7CX20106A内部结构图

1脚:

超声信号输入端,该脚的输入阻抗约为40kΩ。

2脚:

该脚与地之间连接RC串联网络,它们是负反馈串联网络的一个组成部分,改变它们的数值能改变前置放大器的增益0和频率特性。

增大电阻或减小,将使负反馈量增大,放大倍数下降,反之则放大倍数增大。

但C1的改变会影响到频率特性,一般在实际使用中不必改动,本系统选用参数为R2=10Ω,C1=3.3μF。

3脚:

该脚与地之间连接检波电容,电容量大为平均值检波,瞬间相应灵敏度低;若容量小,则为峰值检波,瞬间相应灵敏度高,但检波输出的脉冲宽度变动大,易造成误动作,本系统选用参数为3.3μF。

4脚:

接地端。

5脚:

该脚与电源间接入一个电阻,用以设置带通滤波器的中心频率f0,阻值越大,中心频率越低。

例如,取R=200kΩ时,f0≈40kHz,若取R=220kΩ,则中心频率f0≈38kHz。

6脚:

该脚与地之间接一个积分电容,标准值为330pF,如果该电容取得太大,会使探测距离变短。

7脚:

遥控命令输出端,它是集电极开路输出方式,因此该引脚必须接上一个上拉电阻到电源端,推荐阻值为22kΩ,没有接受信号是该端输出为高电平,有信号时则产生下降。

8脚:

电源正极,4.5~5V。

 

3.4温度测量部分

温度测量部分由DS18B20(如图8所示)单线数字温度传感器完成。

DS18B20支持“一线总线”接口,测量温度范围为-55℃~+125℃,在-10℃~+85℃范围内,精度为±0.5℃。

现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。

适合于恶劣环境的现场温度测量,如:

环境控制、设备或过程控制、测温类消费电子产品等。

18B20支持3V~5.5V的电压范围,使系统设计更灵活、方便。

 

图818B20引脚图

3.4.1DS18B20工作原理

DS18B20数字温度计提供9位(二进制)温度读数,指示器件的温度。

信息经过单线接口送入DSl8B20或从DSl8B20送出。

因此从主机CPU到DSl8B20仅需一条线(和地线)。

DSl8B20的电源可以由数据线本身提供而不需要外部电源。

因为每一个DS18B20在出厂时已经给定了唯一的序号,因此任意多个DSl8B20可以存放在同一条单线总线上。

这允许在许多不同的地方放置温度敏感器件。

DSl8B20的测量范围从-55℃到+125℃,增量值为0.5℃,可在1s内(典型值)把温度变换成数字。

每一个DS18B20包括一个唯一的64位长的序号,该序号值存放在DSl820内部的ROM中。

开始8位是产品类型编码(DSl8B20编码均为10H)。

接着的48位是每个器件唯一的序号。

最后8位是前面56位的CRC(循环冗余校验)码。

DSl820中还有用于贮存测得的温度值的两个8位存贮器RAM(如表1所示),编号为0号和1号。

1号存贮器存放温度值的符号。

如果温度为负,则1号存贮器8位全为1,否则全为0。

0号存贮器用于存放温度值的补码,LSB(最低位)的“1”表示0.5℃。

将存贮器中的二进制数求补再转换成十进制数并除以2就得到被测温度值。

表118B20内部存贮器

0号

bit7

bit6

bit5

bit4

bit3

bit2

bit1

bit0

26

25

24

23

22

21

20

2-1

1号

bit7

bit6

bit5

bit4

bit3

bit2

bit1

bit0

S

S

S

S

S

S

S

S

 

3.4.2温度计算方法

1、DS18B20用9位存贮温度值,最高位为符号位,如表1所示。

负温度时S=1,正温度时S=0。

如:

00AAH为+85℃,0032H为25℃,FF92H为-55℃

2、DS18B20用12位存贮温值度,最高位为符号位,下图为18b20的温度存储方式,负温度S=1,正温度S=0。

如:

0550H为+85℃,0191H为25.0625℃,FC90H为-55℃

3.5LCD显示

系统结果显示由Nokia5110液晶完成。

5110是一块低48X84的图形液晶,内部由PCD8544驱动控制(如图9)。

接到控制器上的引脚只有5个。

功耗非常小。

 

图95110内部方块图

接到单片机上的引脚是SDIN,SCLK,D/C,SCE。

各引脚功能如下:

SDIN:

数据输入

SCLK:

时钟输入

D/C:

数据/指令选择

SCE:

片选

4程序设计

4.1流程图

系统程序的流程图如图10所示。

程序使用模块化设计。

并可以对测量离的远近自动调节测量模式。

因为超声波测量时会受到周围其他障碍物反射回来的回波干扰,因而测量时必须要设置一定的延迟,这段时间通常称为死区时间。

死区时间小,有利于近距离的测量,而大的死区时间则有利于远距离的测量。

本系统把4.5~50cm视为近距离测量,大于50cm视为远距离测量。

近距离测量时,LCD上会显示“N”;远距离测量时则显示“F”,以作区别。

 

4.2单片机产生40KHZ方波

超声波发射模块中需要单片机产生大概40KHz的方波。

单片机产生方波还是比较简单的,大体上可分为两种方式:

用定时器置初值产生;用延时的方式循环产生。

前者为硬件方式,后者为软件方式。

在本系统中,使用软件方试比较灵活,而且容易调整方波的频率和个数。

程序如下:

for(LOOP=0;LOOP<4;)

{

P3=P3^0x80;

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();_nop_();_nop_();_nop_();

LOOP++;

}

P3_7=1;

程序中,_nop_()为空指令,每执行一次需要一个机器周期。

晶振为12MHz时刚好1us。

P3_7脚用作脉冲输出。

P3_7脚循环取反四次,产生2个周期大概为40KHz的方波。

在Proteus中观察仿真波形(如图11所示)。

在图中可看到,波形周期为25.75us,为38.8KHz。

 

图11超声波发射脉冲

4.3超声波传播时间测量

CX20106A没有接收到超声波时,输出脚一直保持高电平状态。

当连续接收到反射回来的超声波时会产生周期性低电平脉冲(如图12所示)。

因而可以用单片机外部中断来检测此低电平。

而用计数器计数发送和中断产生的时间即可测出超声波传播的距离。

 

图12CX20106A输出端电平

 

5系统调试

超声波测距仪的制作和调试都比较简单,其中超声波发射和接收采用Φ15的超声波换能器TCT40-10F1(T发射)和TCT40-10S1(R接收),中心频率为40kHz,安装时应保持两换能器中心轴线平行并相距3~8cm,其余元件无特殊要求。

若能将超声波接收电路用金属壳屏蔽起来,则可提高抗干扰能力。

根据测量范围要求不同,可适当调整与接收换能器并接的滤波电容的大小,以获得合适的接收灵敏度和抗干扰能力。

硬件电路制作完成并调试好后,便可将程序编译好下载到单片机试运行。

根据实际情况可以修改超声波发生子程序每次发送的脉冲宽度和两次测量的间隔时间,以适应不同距离的测量需要。

根据所设计的电路参数和程序,测距仪能测的范围为0.045m~3.5m,测距仪最大误差不超过1cm。

系统调试完后应对测量误差和重复一致性进行多次实验分析,不断优化系统使其达到实际使用的测量要求。

 

5.1精度提高方法

1.温度校正声速。

本系统采用18B20温度传感器通过换算对声速进行了校正,在一定程度上大大提高了测量的准备性。

2.采用曲线拟合的方法处理数据。

由拟合曲线作为距离换算公式。

拟合前必须要先测量10组以上的数据,包括测量距离和实际距离(如表2所示)。

表2曲线拟合数据采集(单位:

mm)

序号

1

2

3

4

5

6

7

8

9

10

实际距离

50

53

55

60

65

70

75

80

85

90

测量距离

52.9

55.8

58

63

68.4

73.5

78.4

83.5

88.9

93.5

……

序号

16

17

18

19

20

21

22

23

24

25

实际距离

1300

1400

1500

1600

1700

1800

1900

2000

2100

2200

测量距离

1360

1458

1559

1658

1758

1865

1972

2080

2190

2301

……

测量完成之后可用EXCEL作曲线拟合。

以测量距离为X轴,实际距离为Y轴,用折线方式作出图。

之后选择线性曲线拟合(如图13所示)。

由此可得出测量距离与实际距离关系公式y=0.9648x-5.7716。

可以用此式作为最终的距离换算公式。

(注:

限于篇幅,下图只画出50cm~230cm的拟合方法)

 

图13曲线拟合示例

5.2误差分析

测量误差的产生的原因是多方面的,大体上有几点:

其一,单片机晶振不可能做得100%精确,因而程序执行时间会有小小不同。

但是,这个对系统距离的影响非常非常小,几乎可以忽略;其二,温度对声速的影响非常明显,虽然本系统使用了18B20对声速进行较正。

但是限于18B20温度测量精度的影响,对测量的误差还是比较大的;其三,温度与距离建立的数学模型也不能做到100%准确,而且本系统采用的是简化后的数字模型,对测量误差影响也比较明显;其四,测量较正时人为的读数也会产生较大的影响。

这个是系统误差最大的根源。

5.3测量结果

表3测量结果与实际值比较(单位:

cm)

实际

距离

4.5

5

10

15

20

25

30

35

40

50

测量

距离

4.6

5

9.8

15.1

20.2

24.8

30.2

35.3

40.1

50.1

误差

0.1

0

0.2

0.1

0.2

0.2

0.2

0.3

0.1

0.1

实际

距离

60

70

80

90

100

110

120

130

140

160

测量

距离

60.2

69.7

79.8

90.2

100.3

109.5

120.7

130.4

139.5

159.8

误差

0.2

0.3

0.2

0.2

0.3

0.5

0.7

0.4

0.5

0.2

实际

距离

170

180

200

220

240

260

280

300

320

350

测量

距离

170.6

180.5

199.2

220.6

239.8

260.5

280.9

299.1

319.3

351.0

误差

0.6

0.5

0.8

0.6

0.2

0.5

0.9

0.9

0.7

1

 

6结论

电路在0.045m~1m的范围内测量时,最大误差在0.3cm以内。

在1m~3.5m以内测量时,最大误差在1cm以内。

达到了设计的精度要求。

不足的地方也有很多。

比如在测量不规则物体时,示数会有点波动,有时甚至会出测量失败的现象。

受限于发射功率,3.5m以外的距离无法测量。

谢辞

从方案设计到完成,前前后后总共花了一个星期的时间。

期间,我遇到了很多难题,为了解决除了查阅了大量相关的资料,还请教了很多老师和同学。

在这我首先要感谢我的指导老师邓德迎,感谢他对我的论文进行了详细的指导,使我的论文得以顺利完成。

还要感谢热心帮助我的老师和同学。

也要感谢我的每一个任课老师,如果没有他们的理论知识的教导,这设计不可能完成。

总之,此次论文的写作过程,我收获了很多。

回首望去,这过程虽然艰辛,却很快乐。

再次感谢在大学传授给我知识以及给我帮助和鼓励的老师,同学和朋友,谢谢你们。

 

参考文献

[1]郭天祥.新概念51单片机C语言教程[M].北京:

电子工业出版社,2009:

46-120

[2]路锦正王建勤杨绍国赵珂赵太飞.超声波测距仪的设计[J].传感器技术.2002

[3]高峰郑源明.超声波传感器测量声速和距离实验的研究[J].传感器与微系统.2009:

29-34

[4]郭秀芬.超声传感器及其应用[J].压电与声光,1987,04:

32-42

[5]阎石.数字电子技术基础[M].北京:

清华大学出版社,2004:

456-488

附录

附录一原理图

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 水产渔业

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1