一、DS18B20

数字温度传感器,半双工, 异步, 串行

二、传感器参数

功能:温度采集

量程:-55℃ - 125℃

精度:±0.5℃ 

工作电压:3V - 5.5V

分辨率:12位 0.0625

        分辨率:传感器对温度变化的敏感程度
        9位 0.5℃
        10位 0.25℃
        11位 0.125℃
        12位 0.0625℃(默认)

三、操作ROM 命令

1. 读ROM (0x33)
2. 搜索ROM (0xF0)
3. 匹配ROM (0x55)
4. 跳过ROM (0xCC)
5. 报警搜索 (0xEC)

四、ds18b20 采集温度完整流程

1. 复位                                            ds18b20_reset();
2. 发送0xCC,跳过ROM                  write_ds18b20(0xCC);
3. 发送0x44,开启温度转换           write_ds18b20(0x44);
4. 延时1s
5. 复位                                            ds18b20_reset();
6. 发送0xCC,跳过ROM                write_ds18b20(0xCC);
7. 发送0xBE,读取温度                  write_ds18b20(0xBE);
8. 读取两个字节温度                       read_ds18b20();

五、 ds18b20 时序

1、复位时序

(1)主机先将总线拉低至少480us,再释放总线,代表主机发送了一个复位脉冲
(2)主机如果在60-240us检测到总线出现低电平,代表ds18b20回复了一个存在脉冲
(3)ds18b20最终释放总线,总线为高电平

2、写时序

        写0时序:
                (1)主机将总线拉低大于60us
                (2)ds18b20在60us内进行采样,如果采到低电平,代表主机发送了一个0
                (3)主机释放总线,将引脚拉高
        写1时序:
                (1)主机将总线拉低大于1us
                (2)主机释放总线,将引脚拉高
                (3)ds18b20在45us内进行采样,如果采到高电平,代表主机发送了一个1

3、读时序

(1)主机将总线拉低大于1us,释放总线,引脚变为高电平
(2)主机再15us内进行采样
(3)若采到一个高电平,代表读到1,若采到低电平,代表读到0
(4)最终ds18b20释放总线

-----使用示例

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐