• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

单总线上DS18B20的应用

great_CC 2019-07-26 浏览量:1172

想在一条总线上挂多个18b20,并读取每个的测量温度。

问题是:

1、1个18B20的应用,会看到信号线上会加一个上拉电阻,那一条总线上挂多个18b20,还需要上拉电阻吗?

2、一条总线上最多可以挂多少个,有实际应用或知道有人应用过的案例最多挂了多少个?

3、总线长度有要求吗,超过3米会有什么影响吗?

4、如何实现单总线读取多个18b20的数据呢?

1 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 1、多个18B20共用一个上拉电阻就可以了。

    2、这个没有尝试过,可以试一下。

    3、超过3M会影响读取时序。

    4、具体操作步骤查看手册。

    • 发布于 2019-07-26
    • 举报
    • 评论 0
    • 2
    • 0

其他答案 数量:8
  • 这个要看具体使用多个的时候一般用上拉电阻其他的按照步骤做就行
    • 发布于2019-07-26
    • 举报
    • 评论 0
    • 0
    • 0

  • 1 需要上拉电阻,一般只需要一个,如果总线比较长可以多个间隔放置

    2 理论上可以挂无限个,但是受限于总线驱动能力,不加驱动有挂10个成功的

    3 距离越长,损耗越大,通信速率越低,距离太长会拉长数据的上升下降时间,使数据通信失败

    4 每个18B20都有唯一的地址,访问地址来分开通讯

    • 发布于2019-07-26
    • 举报
    • 评论 0
    • 0
    • 0

  • 18B20是单总线通信,在同一条总线上是可以挂很多个的,挂得多需要上拉电阻,上拉电阻可以共用也可以单独使用。每一个18B20都有一个独立的地址,读取对应的地址就可以和该18B20建立通信,就可以获取该18B20的数据
    • 发布于2019-07-27
    • 举报
    • 评论 0
    • 0
    • 0

  • 问题回答如下:

    1. 总线上只用挂一个电阻,但是如果18B20越多,那总线上的等效电容会越大,此时要适量降低阻值,以适应通讯速度。

    2. 没有找到单总线最多挂载多少设备的数据,但是每个18B20内部有一个64bit的地址,这么看的话,理论上挂载的设备是很多的。实际应用中,我挂载过4个,通讯成功。

    3. 总线的长度越长,线阻越大,会影响总线传输波形,适当降低上拉电阻阻值增加驱动能力。

    4. 单总线协议中,如果挂载多个设备,开始通讯时,会启动搜索ROM命令(如果只有一个设备,则跳过此步骤), 之后采用二叉树算法,获取到总线上所有设备的64bit地址。读取温度值时,则先发送匹配rom命令,和对应地址通讯,得到该地址设备的温度值。

    • 发布于2019-07-27
    • 举报
    • 评论 0
    • 0
    • 0

  • 1上拉电阻需要加的,加到18B20的附近

    2这个没有测试过

    3可以超过三米,我用18b20做过汽车的温度显示仪表,已经超过3米,电阻加到传感器附近,通讯正常

    4这可以网上查找相应的程序,有相应的程序实例

    • 发布于2019-07-27
    • 举报
    • 评论 0
    • 0
    • 0

  • 1、那个上拉电阻是用于提高带负载能力,与调节总线电压的,即使是多个18B20,也只需要一个上拉电阻

    2、最多试过挂过3个,更多的没试过,主要是总线带载能力限制

    3、有,线太长,会导致信号质量变差

    4、靠设置不同的地址来指定通信的对象

    • 发布于2019-07-27
    • 举报
    • 评论 0
    • 0
    • 0

  • 1如果数量多可以适当减少电阻,一般减少电阻值20到50%

    2,测试过3个没有问题,理论上可以很多,你可以用示波器观察波形,如果边沿上升缓慢那就是数量差不多了,也可以适当减少电阻值

    3,3m有点长,如果数量多会引起通讯通讯错误

    4首先需要单独把每个id记下来,然后告诉mcu,这样就是一条总线通过分时读取多个温度

    • 发布于2019-07-28
    • 举报
    • 评论 0
    • 0
    • 0

  • 首先第一个问题,18b20之所以需要上拉电阻是因为他内部是开漏输出模式,这样有利于电平匹配还有功耗控制。因此你如果多个传感器挂在一条总线上,电阻相当于并联,所以一般一个上拉电阻就够了。

    第二个问题,挂4个做过。

    第三个问题,我觉得3米有点长了,根本就不适合数字信号传输,如果非要那么用,可以用带施密特特性的非门一个接在发送端,一个放在接收端,有利于信号的稳定性以及抗干扰。

    第四个问题,通过设备地址来判断通讯的对象,具体数据手册会有详细时序图

    • 发布于2019-07-28
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

单总线上DS18B20的应用