【快乐分享】接触到学习到无奈舍弃+四路超声波测距+18B20

[复制链接]
10250|85
手机看帖
扫描二维码
随时随地手机跟帖
kpzclxtx|  楼主 | 2013-8-12 00:40 | 显示全部楼层 |阅读模式
本帖最后由 kpzclxtx 于 2013-8-13 23:29 编辑

       斑竹原野建议我将内容整理一下,文字就不管了,想着把我修改的所有程序都传上来大家看着也没意思,本来就不是什么高深的东西,呵呵。
       所以将我遇到的问题自己能够想到的不算是经验的经验给传上来,希望对做超声波的童鞋一点帮助(特别是我们学校的就爽了,不过尽量换方案吧,要不然又会说你抄袭,嘿嘿) ,将程序的源文件和HEX文件也传上来。
         
       问题:
       1、尽量不设全局变量:1).计算后重新调用时容易出错,造成在显示计算等发生调用错误eg:计算最小时只显示最小(num改为局部变量),通路显示错误等; 2).占用程序空间大,程序执行力变差。       2、由于程序执行以及距离计算比较快,故执行速度比较快,若外部中断使用跳变沿触发,则在每次计时开始后开启外部中断可能会产生一个微弱跳变沿,造成中断误触发,引起测距错误;故使用电平触发模式。
      通过此可得出:delayms(1)盲区5cm,delayms(2)盲区12cm。
     3、同上因,若使用单一中断(eg:INTR0),在第二次测量时,容易受到前次测量余波干扰,造成误动作,是第二次显示结果为盲区距离。
     4、同上因,若使用单一定时器,会因为使用太快,定时期可能还未来的及复位造成误动作,引起第二次测量直接溢出。
      使用双定时器非层次使用,结果稳定,但以结果不是很稳定。
     5、在使用555时,发现理论计算40KHZ脉冲需要R1=15K,R2=5.7K左右,但在实际调试过程中,发现R2=1K左右可以形成稳定、占空比50%的稳定脉冲,原因不知;
    6、同上,理论使用的1nf的电容,若使用瓷片电容不能形成理想40K脉冲,改为1nf独石电容解决此问题。
    7、CX20106A的2脚电阻可以适当调节降低灵敏度提高准确度
    尝试:使用P1.0口给CX20106A上电控制,不可行,原因:供电时间短,接收处理滞后

      测温问题
      1、18b20使用时问题:85度问题            由于18b20初始化默认0x0550即85摄氏度,解决这个问题刚开始设置转换温度后延时甚至已达3、4s,不仅容易陷入死循环,且没有解决问题。
      后来从读字节时序命令开始重新修改延时操作,解决问题,发现是写操作(温度转换时)时程序容易写失败导致转换失败。
      因为18b20对时序要求严格,手册建议使用汇编编写程序,C易出错。//这个,真不理解,很怀疑
     2、对于85度问题网上有如下起因介绍,经排除发现是时序延时不准问题
       1.电压不足,有小于4.8V只显示85度只说,故将其直接接标准5v未解决,由于万能版上各个器件之间的影响,18b20电压不足4.8V、
       2.转换温度后延时不足,手册上说是大约750MS即可转换完成,
       3.多测几次,舍弃首次测量值,尝试无效
      4.将写时序延时修改之后,再将测量延时设置600MS基本解决问题,但程序运行缓慢,故将延时600改为显示1s左右解决问题同时,
      不让上电后数码管显示落后显得程序的不足,可将其成为上电仪器预热过程,同时也不需延时就解决了初次测距显示FFF的问题
      5.上电后延时太少,使18b20进入程序后还尚未进入工作状态,延时发现非此问题
      
      还有其他问题想不起来了,有做这个东西的可以互相交流么。。。:lol

      小弟在坛里潜水已久,一直没有啥贡献。看到这个活动瞬间心动。最近在做一个激光二极管的驱动,PCB刚出来,准备过几天放到LIANZAI连载那个活动里。这里就将以前大四自己做的第一个东西分享一下下。主要还是想吐槽一下下,各位大牛请拍砖、、、、、
        楼主本科是在西安一所二本学校,专业是测控技术,光电方向。现在越来越觉得上一个好学校的优势:开放实验室、能够最早接触学习面相应用的能力,而楼主的学校说是光电方向、测控,可是向单片机这么重要的课程直到大三才开,还是草草讲一讲书本上的东西,没有人告诉你这个应用很重要,也没有足够的试验环境,一直浑浑噩噩的混学分、做兼职、靠四六级,第一次知道单片机可以做东西是生产实习,还是老师给好电路、元器件,安排好焊万能板的进程,程序也给你(最后还没有一个同学做出一个结果)。至于什么电子大赛,直到快比赛了才知道有这么回事,还是自己一不小心给导员整理东西发现的一个被埋没的报名通知。不过值得庆幸,那会楼主正准备考研,找方向,发现对这方面特别感兴趣,所以考验方向选择了北邮的模式控制。大四做毕业设计,也选了一个单片机的课题:超声波测距,只是要求实现单路测距就好了,至于精度什么玩意没有要求,经费也有限100块钱。
       因为在论坛里看到别人做的东西,也看到了电赛的许多设计,特别喜欢。所以想做好毕业设计。于是狠心花了近300大洋买了郭天祥的51书和实验板,在考研复习时候抽出一点点时间学习,从流水灯,到定时器,到串口,到18B20测温,当时觉得很有成就感,现在看来当时还是太嫩,许多东西都没有深入理解,程序觉得就那么回事,自以为看懂就好了,都是直接复制粘贴,自己手打的也就流水灯了,这在后面做毕业设计吃了不少亏,而且对于PCB没有多少认识。
       考完研,很遗憾,没有考上北邮,后来找调剂,最终找到北京工大激光研究院,迷迷糊糊的(最主要还是害怕没工作也没研读,至少是211、国家重点实验室不是)就到北京了。
       大四下学期,一心想把毕设做好,拿一个优秀毕业设计也好啊。于是苦苦思索,看了很多资料,在各大论坛学习大牛们的经验,最后决定做4路超声波循环,看到温度对声速的影响,所以就再加了温度补偿模块。没有钱,毕设导师也不让画PCB,所以只是自己在万能板上搭电路。
       最后连着两个月几乎每天都熬夜到3点多,将郭天祥的书重新学习了一遍,然后自己找方案,请教大牛,方案里面主要的超声波接收模块,当时觉得自己用运放做根本就不可能完成,就参考别人用了一个CX20106A的芯片,结果就因为这个芯片在最后答辩时候被答辩老师成为抄袭,波形产生我是直接就想到用的555,因为刚考过研考的是数电模电。硬件调试的时候,第一次一个人用示波器,没有老师指导,我竟然连最基本的共地都忘了,好长时间都看不到回波,而CX20106A芯片的外围电路的参数也画了好久才调的满意。最重要的我在调试555的时候发现,按照计算的参数搭电路,相同容值的独石电容相对瓷片电容出来的波形要好很多,当时很不理解,直到快毕业了某一日突然想到一个寄生电阻的问题,可是可是,可是,可是答辩时候我提出我的疑问发现,某一个白痴答辩老师说了一句:这么神奇,见识了:(:L汗死了。。。。。。
       说了这么多,其实就想告诉大一大二的学弟学妹们,早点自己为自己铺路,自己想办法学习,靠学校不靠谱的
       感觉做完毕设,才算是真正对单片机入门了,从硬件调试,到一句一句改变代码看对结果的影响,走了不少弯路,每一个模块的程序调试都花费了好长时间,一个小问题就问好多人才理解、修改正确,就简单的数码管显示都改了好多次参数才得到一个满意的显示结果。但确实知道了一个系统的完整的过程,并且真正的理解了什么叫调试。
      遗憾的是以为上研后就不会再深入搞了,但暗暗决定自己业余一定要做点小东西。
      所以今年(研一),发现实验室一个蝶形激光二极管驱动买下来竟然要2千多,就自告奋勇在实验室工作之余做一做,花了好长时间学习画PCB并且看了很多大牛的PCB揣摩经验,现在PCB已经出来了,具体的准备过几天放在“连载”活动,还请大牛到时候给给意见,帮忙看看,呵呵。
最最无奈的事情来了,本来对光纤激光器的相关已经学习好长时间了,而且跟师兄师姐也做了好多的实验,但是导师突然要开RFIC/MMIC方向,要我过去。但问题是已经快开题了啊,有点不愿意,但觉得跟模电相关又有点舍不得,纠结死了。总之现在已经注定几乎没有多少时间搞单片机了,郁闷了好多天了都。

      废话不说了,估计吐槽多了也该呗关小黑屋了,版主手下留情啊~~拜谢

      这个系统能够实现四路超声波测距,最远实测7m左右。使用555产生40KHz驱动发射超声波,CX20106A接收回波;DS18B20进行实时环境温度测量,对声速进行补偿,程序里也对由于程序执行时造成的误差实测进行了校正,3m内精度达到1mm实测没有问题,程序显示部分:首先显示环境温度,第一个数码管显示1、2、3、4表示方向,之后的表示距离,最后显示最小距离和方向,呵呵。
      最终没有申请到院里毕设的优秀,原因有:1、没有PCB,老师觉得工作量少;2、我要申优的话许多材料需要某白痴老师写,而此老师开始说我硬件抄袭,在我拿出我是555驱动+是四路测量+温度补偿之后,又说我软件抄袭,在我当面30分钟之内重新写出温度测量程序和单路测量程序并演示正确后,不了了之。

      最后最后,还是建议,给孩子选一个好学校吧,孩子们尽早自己给自己准备后路吧,靠别人不行的。考研一定要自己感兴趣的才行,不感兴趣甚至讨厌的专业宁愿不读也不要选。。。。

下面是几张图片,原理图+实物图+程序都放在这里,请大牛们拍砖。
原理图.jpg
IMG_Ali_00364.jpg
正面
IMG_Ali_00362.jpg
IMG_Ali_00361.jpg
IMG_Ali_00360.jpg
搜3_1.png
程序修改过程,听网友建议的,所以所有程序修改的都有存档,,呵呵
ceju.rar (6.81 KB)
IMG_Ali_00363.jpg

相关帖子

kpzclxtx|  楼主 | 2013-8-12 00:43 | 显示全部楼层
码字不易,自己顶一下,纪念一下自己的单片机学习过程。。。

使用特权

评论回复
fang310080085| | 2013-8-12 09:42 | 显示全部楼层
感谢楼主 感觉自己都白费很多时间了

使用特权

评论回复
通宵敲代码| | 2013-8-12 09:44 | 显示全部楼层
不错不错,好孩子,值得鼓励。

使用特权

评论回复
原野之狼| | 2013-8-12 09:46 | 显示全部楼层
没有看见源代码啊

使用特权

评论回复
kpzclxtx|  楼主 | 2013-8-12 10:31 | 显示全部楼层
原野之狼 发表于 2013-8-12 09:46
没有看见源代码啊

没有发原文档和HEX文件,直接放在TXT文档里了,呵呵,我的代码都这么保存着  呵呵

使用特权

评论回复
kpzclxtx|  楼主 | 2013-8-12 10:33 | 显示全部楼层
通宵敲代码 发表于 2013-8-12 09:44
不错不错,好孩子,值得鼓励。

多谢多谢。。。大牛名字很个性啊,嗯,很务实

使用特权

评论回复
kpzclxtx|  楼主 | 2013-8-12 10:34 | 显示全部楼层
fang310080085 发表于 2013-8-12 09:42
感谢楼主 感觉自己都白费很多时间了

现在努力来得急、、、呵呵

使用特权

评论回复
anjf163| | 2013-8-12 11:05 | 显示全部楼层
不错,支持一下!

使用特权

评论回复
原野之狼| | 2013-8-12 11:29 | 显示全部楼层
kpzclxtx 发表于 2013-8-12 10:31
没有发原文档和HEX文件,直接放在TXT文档里了,呵呵,我的代码都这么保存着  呵呵 ...

整理一下吧  搞得专业一点

使用特权

评论回复
kpzclxtx|  楼主 | 2013-8-12 21:59 | 显示全部楼层
原野之狼 发表于 2013-8-12 11:29
整理一下吧  搞得专业一点

OK,会尽快整理滴~第一次离斑竹这么近~~:lol

使用特权

评论回复
otheric| | 2013-8-12 23:39 | 显示全部楼层
没看完,顶个先

使用特权

评论回复
kenlai123| | 2013-8-13 01:34 | 显示全部楼层
学习了,向你敬礼!

使用特权

评论回复
ygl968| | 2013-8-13 09:15 | 显示全部楼层
学习

使用特权

评论回复
kpzclxtx|  楼主 | 2013-8-13 12:30 | 显示全部楼层
otheric 发表于 2013-8-12 23:39
没看完,顶个先

多谢多谢~~~

使用特权

评论回复
kpzclxtx|  楼主 | 2013-8-13 12:30 | 显示全部楼层
kenlai123 发表于 2013-8-13 01:34
学习了,向你敬礼!

不敢不敢~~~

使用特权

评论回复
kpzclxtx|  楼主 | 2013-8-13 12:31 | 显示全部楼层
ygl968 发表于 2013-8-13 09:15
学习

:lol:lol:lol

使用特权

评论回复
otheric| | 2013-8-13 19:22 | 显示全部楼层
呵呵,那干啥不做个PCB出来,那不就可以 优了

使用特权

评论回复
kpzclxtx|  楼主 | 2013-8-13 22:56 | 显示全部楼层
otheric 发表于 2013-8-13 19:22
呵呵,那干啥不做个PCB出来,那不就可以 优了

第一次做速度慢,所以时间紧,经费也有限,呵呵。。。后来了解到最主要原因还是因为那个评判老师要为申优者写一大堆东西还要修改论文,据说那个**老师很忙。。。

使用特权

评论回复
kpzclxtx|  楼主 | 2013-8-14 13:15 | 显示全部楼层
原野之狼 发表于 2013-8-12 11:29
整理一下吧  搞得专业一点

已整理,:lol

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

298

帖子

1

粉丝