当前位置: 首页 > news >正文

DS18B20数字温度传感器操作解析

在这里插入图片描述

文章目录

  • 引言
  • 特点
  • 工作原理
  • 引脚说明
  • 配置寄存器
  • 温度寄存器
  • 时序
    • 初始化时序
    • 写时序
    • 读时序

引言

DS18B20 是一种广泛使用的数字温度传感器,具有高精度和易用性。是Dallas Semiconductor公司(现为Maxim Integrated公司)生产的单总线数字温度传感器。

特点

  1. 高精度:温度测量精度为±0.5°C。分辨率可配置为9到12位,默认情况下为12位。
  2. 宽测温范围:温度测量范围为-55°C到+125°C。
  3. 单总线接口:使用1-Wire通信协议,仅需一根数据线进行通信,极大地简化了布线。支持多个传感器连接到同一总线,通过唯一的64位序列号进行识别。
  4. 电源选项:支持寄生电源模式,只需两根引脚(数据和地)即可工作,通过数据线提供电源。
    工作电压范围为3.0V到5.5V,适用于各种微控制器和电源环境。
  5. 低功耗:在非活动状态下功耗极低,适合电池供电的应用。
  6. 内置存储:具有温度上限和下限的报警功能,用户可以设置温度阈值。
    内置非易失性存储器,可存储用户配置。

工作原理

DS18B20 通过1-Wire协议进行通信,只需要一根数据线(以及电源和地线)。每个DS18B20传感器都有一个唯一的64位序列号,使得多个传感器可以同时连接在一条总线上而不会发生地址冲突。

引脚说明

DS18B20 有三根引脚:
在这里插入图片描述

  • VDD(电源): 3.0V到5.5V
  • GND(地): 连接到系统地
  • DQ(数据): 与微控制器的GPIO引脚连接,同时通过一个4.7kΩ的上拉电阻连接到VDD

在这里插入图片描述

配置寄存器

配置寄存器用于设置温度测量的分辨率,以及控制其他功能。它是一个8位的寄存器。低五位全是1,高三位的TM是测试模式位,用来设置DS18B20在工作模式还是测试模式。出厂设置的是0,用户无法进行更改。
在这里插入图片描述
配置寄存器中的R1和R0位用于设置温度测量的分辨率。不同的分辨率会影响测量的精度和转换时间。以下是R1和R0位的组合及其对应的分辨率和转换时间:

R1R0精度最大转换时间
009位(bit)93.75 ms
0110位(bit)187.5 ms
1011位(bit)375 ms
1112位(bit)750 ms

R1 和 R0 位的组合决定了 DS18B20 传感器的温度测量精度(分辨率),精度越高,最大转换时间越长。(注意:默认情况下是12位)

温度寄存器

温度寄存器存储的是当前的温度测量值。它是一个16位的寄存器,由两个字节组成:

  • 高字节(Most Significant Byte, MSB):前五位用于表示符号位。
  • 低字节(Least Significant Byte, LSB)

在这里插入图片描述
其中 S 表示符号位(0 表示正温度,1 表示负温度)。
在这里插入图片描述
温度数据以补码形式存储,具体转换公式如下:

  • 温度 ( ° C ) = R a w T e m p e r a t u r e D a t a 16.0 温度(°C)=\frac{Raw Temperature Data}{16.0} 温度(°C)=16.0RawTemperatureData

例如,读取的原始数据为 0x0191,则温度值为: 温度 ( ° C ) = 0 x 0191 16.0 = 401 16.0 = 25.0625 温度(°C)=\frac{0x0191}{16.0}=\frac{401}{16.0}=25.0625 温度(°C)=16.00x0191=16.0401=25.0625

注意:负温度,需要对数据输出进行取反之后加1,然后按照上面的公式进行计算。

时序

DS18B20 温度传感器通过单总线(1-Wire)协议进行通信。1-Wire 协议使用一根数据线(DQ)进行通信,该协议包括复位、存在检测、命令和数据传输等操作。

初始化时序

在使用 DS18B20 温度传感器时,初始化时序是至关重要的。初始化时序包括总线复位、存在脉冲以及设备初始化的详细步骤。
在这里插入图片描述
初始化时序步骤

  1. 总线复位:主机通过总线复位将数据线拉低至少 480 微秒(µs),以重置总线上的所有设备。此时,所有连接在总线上的 DS18B20 设备都会被复位。

  2. 存在脉冲:DS18B20 响应主机的复位信号,在复位脉冲后的 15-60 µs 内,将数据线拉低 60-240 µs,发送存在脉冲。

  3. ROM 命令:ROM 命令用于选择特定的 DS18B20 设备。在单个设备的情况下,可以使用跳过 ROM(Skip ROM)命令。常见的 ROM 命令包括:

  4. 功能命令:功能命令用于控制 DS18B20 的操作,如温度转换和数据读取。常见的功能命令包括:

    • Convert T (0x44): 启动温度转换。
    • Write Scratchpad (0x4E): 向 Scratchpad 写入数据。
    • Read Scratchpad (0xBE): 读取 Scratchpad 数据。
    • Copy Scratchpad (0x48): 将 Scratchpad 数据复制到 EEPROM。
    • Recall E2 (0xB8): 从 EEPROM 读取数据到 Scratchpad。
    • Read Power Supply (0xB4): 检查设备的电源模式。

写时序

写时段有两种情况:“写1”时段和“写0”时段。主设备通过写1时段来向DS18B20中写入逻辑1以及通过写0时段来向DS18B20中写入逻辑0。每个写时段最小必须有60us的持续时间且独立的写时段间至少有1us的恢复时间。两次写时序均起始于主机拉低总线。
在这里插入图片描述

读时序

仅在读时段期间DS18B20才能向主设备传送数据。因此,主设备在执行完读暂存寄存器(BEh)或读取供电模式[B4h]后,必须及时地生成读时段,这样DS18B20才能提供所需的数据。此外,主设备可以在执行完转换温度(44h)或拷贝EEPROM(B8h)命令后生成读时段,以便获得在“DS18B20功能命令”章节中提到的操作信息。 每个读时段最小必须有60us的持续时间且独立的写时段间至少有1us的恢复时间。读时段通过主设备将总线拉低超过1us再释放总线来实现初始化。当主设备初始化完读时段后,DS18B20将会向总线发送0或者1。DS18B20通过将总线拉至高来发送逻辑1,将总线拉至低来发送逻辑0。当发送完0后,DS18B20将会释放总线,则通过上拉电阻该总线将会恢复到高电平的闲置状态。从DS18B20中输出的数据在初始化读时序后仅有15us的有效时间。因此,主设备在开始改读时段后的15us之内必须释放总线,并且对总线进行采样。
在这里插入图片描述
DS18B20的典型温度读取过程为:复位 → \rightarrow 发SKIP ROM命令(0xCC) → \rightarrow 发开始转换命令(0x44) → \rightarrow 延时 → \rightarrow 复位 → \rightarrow 发送SKIP ROM命令(0xCC) → \rightarrow 发读存储器命令(0xBE) → \rightarrow 连续读出两个字节数据(即温度) → \rightarrow 结束。

数据传输包括命令和数据的写入和读取。常见命令包括:

  • Skip ROM(0xCC):跳过 ROM 操作,直接与总线上唯一的 DS18B20 通信。
  • Read Scratchpad(0xBE):读取 Scratchpad 的内容。
  • Write Scratchpad(0x4E):向 Scratchpad 写入数据。
  • Convert T(0x44):启动温度转换。
  • Copy Scratchpad(0x48):将 Scratchpad 的内容复制到 EEPROM。
  • Recall E2(0xB8):将 EEPROM 的内容读取到 Scratchpad。
  • Read Power Supply(0xB4):检查 DS18B20 是否使用寄生电源。

相关文章:

DS18B20数字温度传感器操作解析

文章目录 引言特点工作原理引脚说明配置寄存器温度寄存器时序初始化时序写时序读时序 引言 DS18B20 是一种广泛使用的数字温度传感器,具有高精度和易用性。是Dallas Semiconductor公司(现为Maxim Integrated公司)生产的单总线数字温度传感器…...

你的财富正在被一个叫做通货膨胀的怪兽给吞噬掉,你却浑然不觉。

据统计,2024年全球总体通货膨胀率预计达到5.8%,这意味着:你的财富正在被一个叫做通货膨胀的怪兽给吞噬掉,你却浑然不觉。 数据来源:国际货币基金组织 如何跑赢通货膨胀? 家庭财富的积累速度,要…...

医疗设备漏费控制管理系统的必然性及未来发展性

医疗设备控费的必然性 医疗改革的要求 随着医疗改革的不断深入,原有的医药模式已经发生了改变。药品和耗材零差价的执行,使得医院需要寻找新的开源节流、降耗增效的方法。医疗设备控费系统的出现,正是为了满足这种管理需求。 控制成本和优…...

软件设计师笔记-网络基础知识

计算机网络的发展 计算机网络(计算机技术通信技术)的发展是一个逐步演进的过程,从简单的具有通信功能的单机系统,到复杂的以局域网及因特网为支撑环境的分布式计算机系统,这一历程经历了多个关键阶段: #me…...

MMC和eMMC的区别

MMC 和 eMMC 的区别 1. MMC MMC(MultiMediaCard)是一种接口协议,定义了符合这一接口的内存器,称为 MMC 储存体或 MMC 卡。它是一种非易失性存储器件,广泛应用于消费类电子产品中。 1.1 外观及引脚定义 MMC卡共有七个…...

亚马逊爬虫(Amazonbot)IP地址,真实采集数据

一、数据来源: 1、这批亚马逊爬虫(Amazonbot)IP来源于尚贤达猎头公司网站采集数据; ​ 2、数据采集时间段:2023年10月-2024年7月; 3、判断标准:主要根据用户代理是否包含“Amazonbot”和IP核…...

Spring Boot(八十四):集成Thumbnailator来生成缩略图

1 Thumbnailator简介 Thumbnailator是一个用于Java的缩略图生成库。通过Thumbnailator提供的流畅接口(fluent interface)的方式可以完成复杂的缩略图处理任务,无需访问Image I/O API并通过Graphics2D对象手动操作BufferedImages。 2 代码示例 2.1 引入依赖 <dependency&g…...

MySQL基础操作全攻略:增删改查实用指南(上)

本节目标&#xff1a; NOT NULL - 指示某列不能存储 NULL 值。 UNIQUE - 保证某列的每行必须有唯一的值。 DEFAULT - 规定没有给列赋值时的默认值。 PRIMARY KEY - NOT NULL 和 UNIQUE 的结合。确保某列&#xff08;或两个列多个列的结合&#xff09;有唯一标 识&am…...

SAP MM学习笔记 - 豆知识02 - MR21 修改物料原价,MM02 修改基本数量单位/评价Class,MMAM 修改物料类型/评价Class

上一章讲了一些豆知识。比如 - MM50 批量扩张品目 - XK05/06 Block/消除供应商 - MM06/MM16 品目消除 - SE11/SE16/SE16/SE16N/SE16H/DB02 等查看常用的操作Table和数据的T-code SAP MM学习笔记- 豆知识01 - MM50 批量扩张&#xff0c;XK05/XK06 Block/消除供应商&#xf…...

谷粒商城实战笔记-126-全文检索-ElasticSearch-整合-测试保存

文章目录 一&#xff0c;谷粒商城实战笔记-126-全文检索-ElasticSearch-整合-测试保存1&#xff0c;在Elasticsearch的配置类中增加通用设置2&#xff0c;索引数据3&#xff0c;验证 一&#xff0c;谷粒商城实战笔记-126-全文检索-ElasticSearch-整合-测试保存 1&#xff0c;在…...

flutter开发环境搭建与android studio 安装配置

flutter开发环境搭建与android studio 安装配置 安装 android studio 下载安装 Android Studio 开发工具 Android Studio官网安装的时看到配置路径就换成自己其他盘的路径即可&#xff0c;其他的一路下一步就ok安装完毕&#xff0c;运行打开缺少 android sdk 按照提示下载即可…...

postgresql 字符串 替换

postgresql 字符串 替换 在PostgreSQL中&#xff0c;可以使用replace()函数来替换字符串中的某个部分。该函数的语法如下&#xff1a; REPLACE(string text, from text, to text) 其中&#xff1a; string 是要进行替换操作的原始字符串。 from 是原始字符串中需要被替换掉的…...

如何强化学习神经网络

强化学习&#xff08;Reinforcement Learning, RL&#xff09;神经网络是一种通过奖励和惩罚机制来学习策略的方法&#xff0c;适用于各种复杂的决策问题。以下是强化学习神经网络的一些主要步骤和方法&#xff1a; 1. 了解基本概念 环境&#xff08;Environment&#xff09;…...

Hadoop未授权访问漏洞

Hadoop未授权访问漏洞 Hadoop是一个由Apache基金会所开发的分布式系统基础架构&#xff0c;由于服务器直接在开放了Hadoop机器HDFS的50070web端口及部分默认服务端口&#xff0c;黑客可以通过命令行操作多个目录下的数据&#xff0c;如进行删除&#xff0c;下载&#xff0c;目…...

Python中json模块的编码和解码

在Python中&#xff0c;可以用json模块处理JSON的编码和解码问题。json的全程是 javascript object notation, 翻译一下就是javascritpt 对象表示法。json是一种轻量级的数据交换格式&#xff0c;容易阅读和编写&#xff0c;支持的数据类型有&#xff1a;字符串、数字、数组和对…...

【Linux】文件变身大作战:Linux下的文件重命名艺术

欢迎来到 CILMY23 的博客 &#x1f3c6;本篇主题为&#xff1a;文件变身大作战&#xff1a;Linux下的文件重命名艺术 &#x1f3c6;个人主页&#xff1a;CILMY23-CSDN博客 &#x1f3c6;系列专栏&#xff1a;Python | C | C语言 | 数据结构与算法 | 贪心算法 | Linux | 算法…...

字节的存储和字符的存储

字节的存储 内存中的存储 基本数据类型&#xff1a; 在Java中&#xff0c;byte 类型占用 1 个字节&#xff08;8 位&#xff09;。它的取值范围是从 -128 到 127。存储在内存中的 byte 数据可以直接操作&#xff0c;例如通过数组或变量访问。 数据结构&#xff1a; byte 数组…...

Markdown插入Base64格式的图片,无需图床,稳定保存

Markdown插入Base64格式的图片&#xff0c;无需图床&#xff0c;稳定保存 我是一个Markdown的爱好者&#xff0c;转存图片是MD经常出问题的地方&#xff0c;因为MD不像其他富文本编辑器&#xff0c;将图片内嵌到文件中&#xff0c;而是用链接的形式引用&#xff0c;或网络链接…...

weblogic 连接gaussdb测试数据源是否联通

文章目录 1. gaussdb创建远程连接用户和数据库2. weblogic构建GaussDB源数据库3. 测试结果查询注意 weblogic中jar包已经放入lib目录中gaussdb已经创建可以连接登录的用户和数据库1. gaussdb创建远程连接用户和数据库 新建用户和数据库连接客户端Gauss=# create user lily pas…...

如何成为全域运营商?掌握这2种申请方式就够了!

随着全域概念的兴起&#xff0c;全域运营商的职业前景和收益空间逐渐显现&#xff0c;并迅速成为了热门创业赛道中的一份子&#xff0c;连带着如何成为全域运营商等入局方式相关话题也成为了众多创业者热议的焦点。 不过&#xff0c;从市场现状来看&#xff0c;作为涵盖公域和私…...

[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解

突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 ​安全措施依赖问题​ GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...

Java如何权衡是使用无序的数组还是有序的数组

在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...

【磁盘】每天掌握一个Linux命令 - iostat

目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat&#xff08;I/O Statistics&#xff09;是Linux系统下用于监视系统输入输出设备和CPU使…...

Nuxt.js 中的路由配置详解

Nuxt.js 通过其内置的路由系统简化了应用的路由配置&#xff0c;使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...

【论文笔记】若干矿井粉尘检测算法概述

总的来说&#xff0c;传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度&#xff0c;通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...

spring:实例工厂方法获取bean

spring处理使用静态工厂方法获取bean实例&#xff0c;也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下&#xff1a; 定义实例工厂类&#xff08;Java代码&#xff09;&#xff0c;定义实例工厂&#xff08;xml&#xff09;&#xff0c;定义调用实例工厂&#xff…...

Python爬虫(二):爬虫完整流程

爬虫完整流程详解&#xff08;7大核心步骤实战技巧&#xff09; 一、爬虫完整工作流程 以下是爬虫开发的完整流程&#xff0c;我将结合具体技术点和实战经验展开说明&#xff1a; 1. 目标分析与前期准备 网站技术分析&#xff1a; 使用浏览器开发者工具&#xff08;F12&…...

【生成模型】视频生成论文调研

工作清单 上游应用方向&#xff1a;控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...

回溯算法学习

一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...

深度学习水论文:mamba+图像增强

&#x1f9c0;当前视觉领域对高效长序列建模需求激增&#xff0c;对Mamba图像增强这方向的研究自然也逐渐火热。原因在于其高效长程建模&#xff0c;以及动态计算优势&#xff0c;在图像质量提升和细节恢复方面有难以替代的作用。 &#x1f9c0;因此短时间内&#xff0c;就有不…...