超远距离超声波模块适合自制.docx

上传人:b****8 文档编号:29605068 上传时间:2023-07-25 格式:DOCX 页数:23 大小:1.47MB
下载 相关 举报
超远距离超声波模块适合自制.docx_第1页
第1页 / 共23页
超远距离超声波模块适合自制.docx_第2页
第2页 / 共23页
超远距离超声波模块适合自制.docx_第3页
第3页 / 共23页
超远距离超声波模块适合自制.docx_第4页
第4页 / 共23页
超远距离超声波模块适合自制.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

超远距离超声波模块适合自制.docx

《超远距离超声波模块适合自制.docx》由会员分享,可在线阅读,更多相关《超远距离超声波模块适合自制.docx(23页珍藏版)》请在冰豆网上搜索。

超远距离超声波模块适合自制.docx

超远距离超声波模块适合自制

一、需求分析

能在测距范围上弥补GP2D12的不足,将距离延伸到80cm以外;

可以提供给大学生和爱好者DIY,具有学习功能;方便自己随时修改程序,使学习的作用得以充分发挥;成品具有一定的使用价值,可方便的应用于小车等需要测距的装置上。

二、概要设计

图1工作原理框图

总体设计参照SensComp公司,框图中,单片机为核心控制部分,根据设定的工作方式,产生40kHz方波,经过驱动电路驱动超声波发生器发出一簇信号。

单片机此时开始计时。

接收回路为谐振回路,将收到的微弱回波信号检出,送信号放大电路放大,收到产生脉冲输出送单片机中断端,单片机收到中断信号后停止计时,计算出距离值,保存等待读出或直接经UART送出。

接收过程中,单片机定时控制放大电路的增益,逐渐提高,以适应距离越远越弱的回波信号。

核心器件为STC12LE4052、TL852、16mm超声波收、发器。

采用5V供电,因为5V是最常见的工作电压,便于日后将传感器应用于装置中。

为了减小干扰,选用了3.3V供电的单片机,使用目前常用的1117-3.3三端稳压器将5V降到3.3V,减小电源扰动的影响,增加可靠性。

下面分步介绍各个部分的电路原理。

首先是超声波发首先是超声波发射部分。

射部分。

图中,Send_Ctrl、Cut_Off端由STC12LE4052控制。

此单片机的I/O口可设置为推挽输出模式(这是经典51不具备的),拉电流、灌电流均可达20mA,保证了D882有足够的驱动能力和快速的通断性能。

变压器的次级电感与发射器(发射器为容性,一般为2400p左右)构成谐振回路,好处是提高了发射效率,但副作用是发射后的余波时间较长,导致近距离的回波被淹没。

所以电路中设计了2种余波抑制电路。

一个是R6,通过增加谐振回路的损耗加速余波结束,这种方式不需要控制,但由于同时也消耗了发射的功率,所以阻值不能太小,导致衰减效果不明显(此部分读者可自行试验)。

另一个电路由R4、R5、P1构成,由单片机控制,在发射完脉冲后将P1导通,强制短路变压器初级,快速消耗掉谐振能量,达到消除余波的目的,电阻R5越小,效果越好,但带来的问题是:

如控制失灵,会导致短路,烧坏P1或N1。

所以在电路中设计了一个跳线器,在软件没有调试好之前断开,避免无谓的损耗。

变压器升压比设计为20倍,实际输出电压约为50V峰值。

控制部分采用MCU,如下图所示:

图3单片机控制电路

STC12LE4052为一种改进型的51兼容单片机,指令集及主要架构与经典51相同,硬件资源略有增加:

1)增设了2通道PCA(可编程计数器阵列),弥补了经典51定时器功能“偏弱”的缺陷。

2)I/O口改进为可设置方式,支持:

51准双向、高阻输入、OC输出、推挽输出四种模式,简化了外部硬件设计。

3)硬件SPI接口,本设计中暂未使用,但PCB上引出了,有兴趣者可尝试之。

4)指令速度大大提高了,将原来的12时钟为一个机器周期改进为2–3个时钟周期,指令速度平均提高为原来的8倍左右。

5)计时时钟保留12分频模式,新增了2分频模式,提高了计时精度。

后两点对于超声波测距应用有益,指令速度快可减少响应延时的不确定,计时精度高可提高分辨率。

MCU端口资源分配如下:

P10-P13——控制TL852增益,设置为OC输出,852内部有上拉电阻(见图5)

P14-P17——保留

P30(RXD)、P31(TXD)——UART通讯

P32(INT0)——接SOUT端,作为超声波发射时的852输出抑制,置为OC输出。

P33(INT1)——超声波接收输入,设置为输入

P34——产生超声波发射方波,设置为推挽输出模式

P3.5——控制P1,用于衰减余波,设置为OC输出模式

P37——工作指示灯,设置为OC输出模式

关于P32控制SOUT端的作用,请阅读TL851资料。

图4接收回路和信号放大、检出电路

这个电路是超声波测距的核心。

因为产生波形和计时都容易解决,而准确的检测出回波信号才是决定传感器是否成功的关键。

为便于理解上图,将TL852的内部原理框图列出:

图5TL852内部功能框图

读者可对照TL852数据手册分析其工作原理。

从图中可以看出,图4中的R7、R8为运放的输入、反馈电阻,通过改变两者比值可方便的改变灵敏度,故将R7、R8设计为直插器件。

图6TL852输出信号处理电路

图6所示电路是为了将TL852的输出转换为单片机需要的中断信号,U4A构成了一级同相跟随器,是为了隔离后级对C14积分电路的影响。

U4B构成一个比较器,理解此部分可参阅下面的TL851框图。

图7TL851内部功能框图

图中,8脚应接在SOUT上,1.2V基准电压等效于图6中的2个1N4148串联,因为硅PN结的正向压降为0.6V。

第9脚ECHO输出相当于图6中的U4B的第7脚输出。

BLNK、BINH端子都是为了抑制发送时的信号,此部分在本设计中由单片机完成,单片机的P32口置为OC输出,就是为了替代图中接在8脚和3脚之间的三极管,实现对积分电容C14放电,为测量做准备。

如读者希望进一步了解这部分的工作原理,可对照6500模块的原理图和TL851、TL852数据手册仔细研读。

三器件选择和PCB设计

单片机前面已说明。

TL852选用SOP16封装的,否则体积太大。

运放U4选用LMV358,SOP8封装。

LMV358为低电压满幅输出运放,额定工作电压为2.7—5V,读者可对照LM358资料看两者的差别,因为单片机的工作电压为3.3V,所以选用LMV358,虽然成本略高,但性能得到保证。

超声波收、发器选用Φ16mm的,期望发射功率略大,测量距离可以远些。

谐振频率为40kHz,国内基本上都是此频率。

因为超声波收、发器的电容值偏差较大,如读者希望精确匹配电感以提高性能,可能需要自己根据实测的电容量手工绕制,所以电感选用了8X10的工字磁芯,而变压器采用EE16,体积都比较大,便于手工绕制;读者如需优化性能,或体验其影响,可尝试自己制作,从而更好的掌握超声波测距的原理,为日后设计正式产品打下基础。

对外连接的端子采用XH-4A四芯插座,一根电源、一根地线、2根UART收发线,这样可方便的与其它设备连接,既给传感器供电,又可与传感器通讯,获取数据。

PCB设计尺寸约为42X43mm,设置了2个安装孔,孔距和GP2D12相同,便于替换原来使用GP2D12的场合。

PCB板图如下:

因为考虑做好后的传感器要具备一定的使用价值,所以体积略有控制,使用了一些SMD器件,给焊接带来了难度,但对于学习者而言,也提供了一个锻炼机会,因为SMD器件越来越多,很多MCU已无DIP封装。

焊接包含SMD器件的PCB也并非不可为之。

首先要有合适的工具,至少有尖头烙铁,30W即可;尖头镊子,用于抓取小器件。

此外最好使用细焊锡丝,我使用的是0.3mm的。

其次要注意焊接顺序:

先焊小的器件,本设计中为0603电阻、0805电容,之后焊接SOP的IC,最后再按器件的高度从矮到高依次焊接直插器件,体积较大的器件最后焊接,如本设计中的超声波传感器、变压器等。

焊接0603电阻、0805电容时,可尝试以下方法:

先将器件的一个焊盘上锡(注意:

如有一个是接大面积地线的,先给这个上锡,因为大面积地线的散热作用明显,会给后续焊接带来麻烦!

):

然后用尖镊子拿住器件,先放在没有焊锡的焊盘上,再用镊子夹住(这样可保证器件贴着PCB)器件,同时用烙铁熔化上好锡的焊盘,平推器件到焊锡中,注意:

为了方便另一个焊盘的焊接,可适当偏向已上锡的焊盘,为另一侧焊盘留下较大的空间。

焊好一端后,可参照我介绍过的焊接工艺:

然后用免清洗的助焊剂略涂一些(如没有,可尝试用无水酒精,我没用过,不知效果),用细焊锡丝逐脚焊接,方法和焊接直插器件类似,先放上烙铁头,略延时后将焊丝送上,只是时间稍短,锡不要给的太多,以免连焊!

全部焊好后,可以用烙铁尖点IC引脚的端头,再次让焊点熔化一次,使焊锡更好的将引脚和PCB连接。

因为空间问题,所以有几个器件是放置在超声波收发器之下的,焊接时注意,将收发器焊的和变压器一样高即可,不要太低!

两个调整增益的电阻R7、R8、一个控制余波的限流电阻R5如觉得需要自己改变,以观察效果,可焊接在反面。

用于减弱余波的R6和初级的余波抑制电路两部分选择一个,建议选用初级的回波抑制电路,效果好一些,缺点是需要程序配合,且调试时如不慎会短路导致三极管损坏。

如采用初级的余波抑制电路,建议在调试程序时将跳线器断开,调好程序后再接上。

等一切就绪后如考虑传感器的可靠性,可将跳线器焊死。

在线路上设计了2组匹配电容,C7、C8组是为了调整发射回路已达到谐振状态的,C9、C10组是为了接收回路谐振的,需要通过测量使用的超声波收发器电容值以及相应的电感、变压器次级电感确定,因为超声波收发器的电容量差别较大,电感量也有些差异。

一般情况下将C7、C9短路即可,C8、C10不用处理(配套器材时会给出实际的值供参考,如有需要会附上匹配电容)。

焊接完成如下图:

(注意图中二极管的方向)

虽然设计是用UART作为输入、输出的接口,但由于MCU的SPI没有使用,所以在PCB上引出了(由于空间限制,比较勉强),如有特殊需要或想学习SPI的使用,也可将SPI口作为与传感器交换数据的通道:

5.2调试

调试分两步进行。

首先是超声波发射部分。

先断开跳线器,检测单片机输出的波形是否正确,测量R3接MCU端的信号,保证波形的频率、占空比及脉冲的个数正确(符合你程序控制的要求,目前的程序是发送10个脉冲):

然后测试余波减弱控制信号(如果你选择了初级余波减弱电路,并且在软件上设计了),检测R4接MCU的端子(设计欠考虑,没有留测点),注意不要短路了!

最好有双通道的示波器,因为需要和发送脉冲匹配,此信号应该略延时于发送脉冲结束,我设计是约28us(想想为什么图中是接近44us):

上述两个MCU控制调试好后,可以将跳线器接上,看一下驱动的波形和变压器次级的输出。

驱动波形测量D882的C端,也就是跳线器上。

次级波形可直接检测超声波发射器两端。

注意右侧的波形,峰值电压超过50V,所以你能够听到发射器发出的“啪啪”声。

如果有兴趣,可以检测一下有无余波消除的差别,因为要和余波控制信号同时观察,所以用驱动信号代替输出,由于变压器的偶合作用,信号是一样的,只是幅值不同。

注意,上图中左侧余波实际上远不止388us,由于变压器的升压作用,很小的驱动信号都可以产生接收器能感受的超声波,因为收、发之间太近了!

这样将使得近距离的回波淹没在余波中,导致测量范围缩小。

读者可以改变R5的数值观察一下右侧的效果的变化。

一个技巧:

要想确定是否达到谐振状态,可检测没有余波抑制时的余波信号,此时的频率即为谐振频率(图中用余波抑制控制信号来指明后面的波不是由MCU产生的)。

从上图可以看出谐振频率是40kHz。

至此,超声波发送部分基本完成。

超声波接收部分硬件比较简单,关键是软件上能控制好增益的变化,以及内部计时。

调试时首先检测一下C12上的信号,此处为TL852的第一级放大输出,在信号较强时可以看到波形,以确定超声波接收器及回路是否正常,至少能看到一组波,即发射时的信号,如果有比较近的物体,应该可以看到接着有一组波形,此信号即回波。

接着看看4路增益控制有无变换,检测MCU输出给TL852的增益控制信号(其中三个连接有过孔,测量方便),而是否正确主要靠软件逻辑的检查,用波形来判断有些困难。

上图为增益控制最低位GCA的波形,注意图中光标所示的时间,对照TL851资料,看看能否解释清楚:

P

确定增益控制有效后,检测SOUT端(或者C14),可以看到输出。

注意:

为了消除自己发射时收到的信号干扰测量,在发射时用MCU控制了SOUT端,使之处于对地短路状态(参见前述TL851的原理和说明),发射结束后释放。

之后在收到回波后,我设计的程序会根据设定的时间决定是否再次短路SOUT输出,以避免由于附近两侧的物体反射干扰。

超声波的发射、接收角度虽然号称是60度,但那是指强度大于一定数值的信号,实际上放宽信号强度会更宽,所以很近的物体虽然在测量角度以外,也许会测到。

这个功能在读者设计程序时自己确定是否需要!

此处只是作为参考。

SOUT的输出经过比较器后变为负跳脉冲,触发MCU中断,从而使MCU内部实现对回波的计时,即可计算出距离了,这部分在软件篇中讨论。

因为前述处理方式,中断的波形可能会比较窄,不容易测到,需要使用示波器的信号触发扫描功能。

至此,硬件部分应该算是调试结束了,而测量功能的实现主要取决于软件的设计

四调试“花絮”

现在DVD影碟都时髦附上拍摄花絮,将摄制过程中的一些“差错”汇总,以搏大家一笑。

我也在此效仿一下,将调试中遇到的值得关注的问题整理与此,但不是为了搏大家一笑,而是希望读者能从中悟出些东西,从而避免“重蹈覆辙”。

上面详细描述的已是第二版,第一版电路设计和PCB排版均有不少问题,调试后做了较多修改。

新PCB拿到后,我十分自信,边拍照边焊接,很快硬件就大功告成。

下载程序后,得意的启动测量,亲切的“啪啪”声即刻响起;随即接上示波器准备记录调试部分的波形。

可一看测量结果,给我当头一棒,测量数据根本不对。

拿示波器一看,晕!

没有发射信号时,C12上居然有连续不断的波形!

频率还正好是设计的谐振频率。

首先怀疑是此批TL852有问题,因为用的是新购买的;立刻用原来剩余的一片TL852又焊了一个,结果一样,汗!

当时有个不详的预感:

坏了,PCB排版不当,电路自激振荡了!

马上想到的是R7、R8电阻,因为第一版设计是0603器件,后为了便于DIY者修改参数,改为RT13,这样离超声波接收器就很近了(看PCB图),怀疑是R8的反馈信号耦合到超声波接收器端子上,导致振荡。

可割断电路改变位置后,依然如故。

只好依次将输入部分的各个器件脱离PCB,看是哪个导致的,直到电感移开后,问题消失了:

最后找出了问题所在:

是2个电感之间耦合;因为L1、L2并排紧挨着,又都是“工”字磁芯,漏磁较大;L2中是放大后的信号,L1是输入,这样就导致了自激振荡。

第一版PCB也是这样排的,可巧的是电感焊的方向不同,正好相位相反,所以没有暴露;而此次焊的2块均正好相位相同,形成正反馈,导致振荡。

后来我验证了,只要将L2交换引脚插入(不用焊),就可以轻松复现。

因为电感没有极性标志,所以读者如DIY此传感器,要注意,先不要焊接L2,其它都焊好后,通电,插入L2,用示波器测量C12的信号,如振荡则交换2个引脚,确定正常后再焊上。

考虑到多数学生没有示波器,我将在软件中设计一个检测功能,详见“软件篇”。

从这个插曲中可以看出,模拟电路排版还是挺讲究的,需要考虑因素远比数字电路多。

不过目前变换方向焊接后是否变成了负反馈?

对测量的影响是什么?

还望读者发表高见!

五、实验效果

为了便于测试,还是采用了PC辅助调试的方式,控制命令上设计了内存读写命令,以方便调试。

关于软件的设计,在后续“软件篇”中再作详细讨论。

由于使用的是USB转串口模式,USB的5V可作为超声波传感器的电源,调试起来十分方便,串口既作为下载程序的工具,又作为调试的手段:

现设计是以mm为单位,测试后发现稳定度还不错,波动不超过5mm,测量距离可在25cm——5m。

近距离受限是由于在软件中设置了防护,前面已有描述。

远距离似乎是灵敏度不够了,现在我用的第一级放大增益电阻都是4.7k(R7、R8),读者可以改变两者的比值以增大增益,看看是否能提高测量的距离。

由于是软件控制实现测量,所以十分灵活,作为示例,设计了3种工作模式:

1)单次测量,即发出一次命令,传感器按要求测量后返回一组数据,可指定采集的次数、采集后数据的处理方式等;

2)自动测量并返回数据,传感器按照指定的周期不断测量,并且将数据及时返回;

3)自动测量但不返回数据,传感器按照指定的周期不断测量,保存最近8次数据,需要时通过串口读出,可任意设定读出前几次。

这些只是一个示范而已,应用于具体场合时可自己编程以达到最佳的工作模式。

如用于检测是否有物体进入限定的区域,就可以将限定值“告知”传感器,传感器自动测量、判断,只有当有物体进入时才返回数据,通知系统,这样系统的软件开销可大大减低。

这就是用单片机作为传感器核心的优势。

七、结语

通过这个制作,证实了我对超声波测距原理的期望是正确的,而且也树立了自信。

第一次失败后对涉及模拟电路的项目有些发怵,不知道该如何解决遇到的问题。

想必有读者经历过和我一样的感受,所以费如此笔墨描述之,就是为了新参与者不再因模拟电路而“却步”。

不过从调试花絮中应该看出,模拟电路还是比数字电路考虑的问题要多一些。

同时,在测试中对于一些一知半解的概念有了深刻的理解,如“BLANKING”,“MultipleMeasurementCapability”等。

而且感受了超声波测量的“非指向性”,体会了GP2D12的“强指向性”,理解了为何GP2D12不可能被超声波测距所替代的道理,难怪GP2D12在国外的机器人部件市场上一直存在!

硬件部分基本完成,留一个题目给大家:

仔细分析一下TL852的2脚有什么作用?

可以为电路提供什么帮助?

基于它,能实现什么?

“软件篇”再见。

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

当前位置:首页 > 人文社科 > 法律资料

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

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