DS18B20温度传感器的使用方法说明

网友投稿 264 2022-11-15

DS18B20温度传感器的使用方法说明

PS304 有 4 个通道的 1Wire 接口,每个接口上可同时连接多个 1Wire 芯片(或设备)。具有 64 位 ID 搜索功能;具有远距离线路的自适应功能。

向模块发送[WIRE1][FIND],模块返回搜索线路上挂载的所有 1Wire 芯片 ID 并输出,每个 ID占用 8 字节。举例:搜索通道 1 上所有 1Wire 芯片,模块返回信息如下:S2SREC 28 AA 32 B9 21 20 03 94 2D 85 00 10 20 00 00 7A共返回 16 个字节数据,每个 ID8 字节,故通道 1 上有两个 1Wire 芯片

芯片 1ID: 28 AA 32 B9 21 20 03 94

芯片 2ID: 2D 85 00 10 20 00 00 7A

在搜索过程中,模块会检测线缆参数,自动完成线缆适应校正。当对 1Wire 芯片操作发生错误时,或者改变线路长度,或者更换线缆时,应重新进行上述搜索操作,以获得实时的芯片数量和芯片 ID 以及模块对线缆性能的自适应。注:一般而言,线缆越长时搜索过程消耗的时间越长。

DS18B20 是 1Wire 接口的温度传感器,可实现 12 位精度的温度转换和输出功能。 使用方法简要说明如下。

(1)开始一次温度转换

向芯片发送 0xCC 0x44, S2S 协议为: [WIRE1][START][WT2H]CC 44

(2)读取温度

向芯片发送 0xCC 0xBE,然后读取 2 个字节。S2S 协议为: [WIRE][START][WT2H]CC BE[RD2N]

模块返回: S2SREC C8 010x01C8 转换为 10 进制为 456,根据 DS18B20 数据手册说明,这个数*0.0625=28.5℃。

(3)读取温度(使用芯片唯一 ID)

[WIRE][START][WT10H]55 28 AA 32 B9 21 20 03 94 BE[RD2N](下划线部分为已知的芯片 ID)

模块返回: S2SREC C8 01

0x01C8 转换为 10 进制为 456,根据 DS18B20 数据手册说明,这个数*0.0625=28.5℃。

DS2431 存储芯片

(1)读取 EEPROM

向芯片发送 0xCC 0xF0+两字节起始地址,然后读取 8 字节数据。

例:读取 EEPROM 的地址 0~8, [WIRE][START][WT4H]CC F0 00 00[RD8N]

模块返回: S2SREC 31 32 33 34 35 36 37 38

(2)写 EEPROM

2431 的写操作分为写暂存器和暂存器同步到 EEPROM 两个大的步骤。写暂存器:向芯片发送 0xCC 0x0F+两字节起始地址+8 字节数据。[WIRE][START][WT4H]CC 0F 00 00[WT8H]31 32 33 34 35 36 37 38[RD2N]

模块返回: S2SREC 52 D7(0x52D7 是对本次数据发送的 CRC 校验数据)

[WIRE][START][WT2H]CC AA[RD3N][DELAY1][RD10N]

模块返回: S2SREC 00 00 07 31 32 33 34 35 36 37 38 66 B2

暂存器同步到 EEPROM:向芯片发送 0xCC 0x55+两字节起始地址+0x07

模块返回: S2SREC AA(0xAA 表示同步成功)

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:RocketMQ无法启动broker,/bin/runbroker.sh: line 90: 25991 Killed $JAVA ${JAVA_OPT} $@
下一篇:Mybatis重置Criteria的正确姿势分享
相关文章

 发表评论

暂时没有评论,来抢沙发吧~