DS18B20数字温度传感器学习笔记

DS18B20数字温度传感器学习笔记

理论学习

概述

DS18B20数字温度传感器提供9-Bit到12-Bit的摄氏温度测量精度和一个用户可编程的非易失性且具有过温和低温触发报警的报警功能。DS18B20采用的1-Wire通信即仅采用一个数据线(以及地)与微控制器进行通信。该传感器的温度检测范围为-55℃至+125℃,并且在温度范围超过-10℃至85℃之外时还具有±0.5℃℃的精度。此外,DS18B20可以直接由数据线供电而不需要外部电源供电。
每片DS18B20都有一个独一无二的64位序列号,所以一个1-Wire总线上可连接多个DS18B20设备。因此,在一个分布式的大环境里用一个微控制器控制多个DS18B20是非常简单的。这些特征使得其在HVAC环境控制,在建筑、设备及机械的温度监控系统,以及温度过程控制系统中有着很大的优势。

-独特的1-Wire总线接口仅需要一个管脚来通信。

-每个设备的内部ROM上都烧写了一个独一无二的64位序列号。

-多路采集能力使得分布式温度采集应用更加简单。

-无需外围元件。

-能够采用数据线供电;供电范围为3.0V至5.5V。

-温度可测量范围为:-55℃至+125℃(-67℉至+257°F)。

-温度范围超过-10℃至85℃之外时具有±0.5℃的精度。

-内部温度采集精度可以由用户自定义为9-Bits至12-Bits。

在这里插入图片描述

引脚功能

GND:地线

DQ:单总线通信接口,寄生模式时供电端口

VDD:电源线(2线通信时接地,以保证芯片内正确识别VDD状态)

在这里插入图片描述

上图为DS18B20寄存器。

地址0和1代表温度的低八位和高八位,地址0初始为50h,地址1初始为05h,所以温度初始值(复位值)为85(即0x0550)。0x后面第一个数字表示正负,如果为正数即为0(0000ÿ

### 关于DS18B20温度传感器的初始化时序 DS18B20是一种高精度数字温度传感器,支持1-Wire协议进行通信。其初始化过程涉及特定的时序要求,主要包括以下几个阶段: #### 初始化阶段 在初始化过程中,主机(通常是MCU)需要向DS18B20发送复位信号,并等待DS18B20返回存在脉冲以确认设备的存在。具体时序如下: - 主机拉低总线至少480μs[^2]。 - 随后释放总线并进入接收模式,持续监听约75μs以检测是否存在来自DS18B20的存在脉冲。 #### 跳过ROM命令 为了简化多设备环境下的操作流程,可以使用跳过ROM命令`0xCC`来忽略地址匹配的过程。此命令允许直接访问选定的DS18B20设备而不必逐一验证其唯一ID[^1]。 #### 开始温度转换 完成上述两步之后,需发送启动温度转换指令`0x44`给目标器件。这会促使内部ADC开始采集当前环境温度并将结果保存到寄存器中。整个转换周期依据分辨率设置有所不同;例如,在默认9-bit模式下大约耗时93.75ms。 以下是基于C语言实现的一个简单示例程序片段用于展示如何执行这些基本步骤: ```c void DS18B20_Init(void){ OneWire_Reset(); // Step 1: Reset bus and check presence pulse. OneWire_WriteByte(0xCC); // Step 2: Skip ROM command (address all devices). OneWire_WriteByte(0x44); // Step 3: Start conversion. } ``` 以上代码展示了典型的初始化逻辑框架,实际应用可能还需要考虑更多细节比如错误处理机制等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值