关于一个IO口挂接多个DS18B20

2019-07-21 02:06发布

请教各位大神一个问题,我实现一个IO口接多个DS18B20,通过识别内部ID来读取各个DS18B20的温度,从而检测多个温度。有一个问题没想明白:
DS18B20外壳上也没有序列号,我怎么判断哪个温度是哪个DS18B20的?
可能这么说大家都看不明白:我举个例子
比如我要检测室外温度,客厅温度,卧室温度,厨房温度这样四个温度,我接了4个温度传感器分别在4个位置,而且现在这4个序列号和温度也都检测出来了
那么,我怎么判断哪个温度是哪个房间的???
如果要批量生产类似产品怎么办?
难道和DS18B20到单片机的接线的长短有关系,接线短的先识别,接线长的后识别???????
求各位大神指点迷津??
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
shuaigew88
1楼-- · 2019-07-21 04:22
虽然我没用过但是我猜测可能需要预先对每个DS18B20进行单个ID读取,因为如果能在一条总线上单独读取到每个芯片的ID那前提就是必须要先识别每个芯片,所以说不可能。
NULLFF
2楼-- · 2019-07-21 06:44
ID 绑定  地址(窗外1,室内2,房间3),
mygod
3楼-- · 2019-07-21 08:08
NULLFF 发表于 2017-8-24 17:23
可以的,1-wire总线协议支持单线多器件,而且支持对多个器件的ID进行查询,然后此后的所有命令都可以特异 ...

IIC跟它的最大区别就是IIC的器件地址范围窄,编写程序时完全可以地址循环查询一下就可以了,而DS18B20虽然有唯一ID但地址范围太广,如果循环查询恐怕几天几夜也查不完,除了循环查询和预先记录ID,其他我真不知道DS18B20还能有什么好方法,望指教?
shuaigew88
4楼-- · 2019-07-21 12:55
 精彩回答 2  元偷偷看……
EVERGREEN
5楼-- · 2019-07-21 15:43
EVERGREEN 发表于 2017-8-24 18:15
可能大家没看懂我的意思,我的意思是我已经实现了单总线读取各个DS18B20,但是我不知道我识别出来的是哪个D ...

除了预先记录ID估计没有其他好办法。
shuaigew88
6楼-- · 2019-07-21 20:49
EVERGREEN 发表于 2017-8-24 18:15
可能大家没看懂我的意思,我的意思是我已经实现了单总线读取各个DS18B20,但是我不知道我识别出来的是哪个D ...

有两种方法,1是预先记录好每个DS18B20的ID   2是每个DS18B20用一个IO驱动。两种方法各有利弊。

一周热门 更多>