一乐电子

一乐电子百科

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

搜索
查看: 4814|回复: 15
收起左侧

关于18b20的问题,买到假的了?还是其它原因?

  [复制链接]
发表于 2011-5-16 11:41 | 显示全部楼层 |阅读模式
一个正常使用的18b20,用手拿着它,温度能从小数的1,2,3,4.。。。连续的变化到9,然后个位加1,运行正常,因这个联线比较长,就另外焊接了一个(好像是一批买的,但不能完全确定,图上反映是一样的),插上试验就奇怪了,小数位只能显示0,5,然后个位加1,趋势是正确的,但是小数位就只有0和5了,程序没有任何变化,此现象可以重复,每次都如此。难道后一个内部分辨率低一些?或者买到了假的?不知有不有朋友了解原因?
现象如此,作此记载。2011-5-16

18b2问题 011.jpg

18b2问题 019.jpg

18b2问题 026.jpg
发表于 2011-5-16 12:16 | 显示全部楼层
分辨率设置有问题吧
 楼主| 发表于 2011-5-16 12:56 | 显示全部楼层
就是在同一个机器上,原来的18b20线比较长,就另外焊了一个线短一点的,用的3个脚的插座,把原来的扒掉,插上后焊的,就出现上述现象,和分辨率的设置应该无关吧。我就怀疑后一个18b20的本身的分辨率是不是有问题呀?空了把后一个插到我的另一个控制板子上再试一试。
 楼主| 发表于 2011-5-16 14:13 | 显示全部楼层
“在找到BUG后,需要程序员去分析问题并解决问题了。这才是体现个人功力,拉开差距的时候呢。高手和低手的差别就在这时显现出来。”这是目前国内一个知名度很高的程序顶级大师说的话,当然是完全正确的。我发现了BUG,但功力不够,解决不了呀,实践证明了自己是低手,除了努力向高手学习,还有什么办法呢?没有了。
发表于 2011-5-16 14:57 | 显示全部楼层
我以前曾经发贴问过,18B20会不会有山寨版,经对18B20的工艺了解【采用64位光刻ROM】象你这个情况不会是假的。具体什么原因,只有在相同情况下多做一些试验,应该会有答案的。
发表于 2011-5-16 15:22 | 显示全部楼层
应该是1-wire总线时延不对吧!线的长度变了,寄生电容也变了,对信号的有影响
发表于 2011-5-16 19:54 | 显示全部楼层
这个看上去不像假的,应该是分辨率的设置问题。是否断电重启过?有时候分辨率的设置是在开机初始化时完成的。
 楼主| 发表于 2011-5-16 20:18 | 显示全部楼层
回复 6# KANGYD

量了一下原来的线包括18b20和插头总长为395mm,后焊的短的为138mm,差别为257mm(0.257m),这么短一点对测量有影响?我个人认为不可能。

18b2问题.jpg
发表于 2011-5-16 20:23 | 显示全部楼层
本帖最后由 zghlt 于 2011-5-16 20:26 编辑

是分辨率设置问题,18B20的分辨率出厂时默认是设为的12位精度,但你的第二只18B20曾经在某个时候被设置成了9位。而分辨率设置是保存在其EEPROM中的,断电后不能消除。你在你的主程序中加一段程序,先把18B20设置成12位精度试试吧!
例如:
void Adjust_res_18B20(unsigned char res) //res 分别等于 0x1f, 0x3f, 0x5f, 0x7f时, 温度读数分辨率分别对应  0.5, 0.25, 0.125, 0.065;即分别为9,10,11,12 位精度。   
{
    Init_18B20();        //复位
    Write_18B20(0xcc);  //跳过Rom匹配
    Write_18B20(0x4e);  //写暂存器
    Write_18B20(0x02);  //写TH  
    Write_18B20(0x01);  //写TL
    Write_18B20(res); //写结构寄存器
    Init_18B20();       //复位
    Write_18B20(0xcc); //跳过Rom匹配  
    Write_18B20(0x48); //把暂存器内容写到EEPRom中
}
 楼主| 发表于 2011-5-16 20:30 | 显示全部楼层
这个看上去不像假的,应该是分辨率的设置问题。是否断电重启过?有时候分辨率的设置是在开机初始化时完成的 ...
zhangym 发表于 2011-5-16 19:54 https://www.yleee.com.cn/images/common/back.gif



    反复试了一下,不存在断电重启的问题。上电后将插头拔掉,显示16.0度(这是正常的),不断电,再插上原来的显示正常即小数位可以显示1,2,3,...,后焊的(短的一根)小数位只有0和5,但趋势是正确的。

本版积分规则

QQ|一淘宝店|手机版|商店|电子DIY套件|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2025-4-29 12:17 , Processed in 0.058756 second(s), 37 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表