关于一个IO口挂接多个DS18B20

2019-07-21 02:06发布

请教各位大神一个问题,我实现一个IO口接多个DS18B20,通过识别内部ID来读取各个DS18B20的温度,从而检测多个温度。有一个问题没想明白:
DS18B20外壳上也没有序列号,我怎么判断哪个温度是哪个DS18B20的?
可能这么说大家都看不明白:我举个例子
比如我要检测室外温度,客厅温度,卧室温度,厨房温度这样四个温度,我接了4个温度传感器分别在4个位置,而且现在这4个序列号和温度也都检测出来了
那么,我怎么判断哪个温度是哪个房间的???
如果要批量生产类似产品怎么办?
难道和DS18B20到单片机的接线的长短有关系,接线短的先识别,接线长的后识别???????
求各位大神指点迷津??
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
shuaigew88
1楼-- · 2019-07-22 00:27
当主机需要对众多在线DS18B20中的某一个进行操作时,首先应将主机逐个与DS18B20挂接,读出其序列号;然后再将所有的传感器挂接到总线上,单片机发出匹配ROM命令(55H),紧接着主机提供的64位序号之后的操作就是针对该传感器的。
NULLFF
2楼-- · 2019-07-22 05:52
shuaigew88 发表于 2017-8-24 18:28
有两种方法,1是预先记录好每个DS18B20的ID   2是每个DS18B20用一个IO驱动。两种方法各有利弊。

估计只有这么解决了!
wanghy
3楼-- · 2019-07-22 11:30
 精彩回答 2  元偷偷看……
lvkanger
4楼-- · 2019-07-22 14:45
 精彩回答 2  元偷偷看……
xuande
5楼-- · 2019-07-22 17:57
18b20太贵了.NTC电阻就可以满足一般用户对温度的要求.除了高精度的..如孵化之类的要求.都可以搞定.
l6931639
6楼-- · 2019-07-22 22:55
请问楼主有写好的程序可以借鉴一下吗?在写4路的DS18B20,但是定义不会,不知道使用1个I/O还是4个I/O

一周热门 更多>