DS18B20数字温度计 (一) 电气特性, 供电和接线方式
目录
DS18B20
DS18B20 是一个常见的数字温度计芯片, 因为测温准确, 廉价且接线简单, 实际应用广泛, 在各种教学实验套装中出镜率也很高.
在写STC8H GPIO示例的时候写了一下 DS18B20, 这个型号虽然简单古老, 但是内容比较有意思, 一个篇幅写不下, 所以把内容抽出来单独介绍.
参数
- 1-Wire Bus 单线总线结构, 允许一根总线上挂接多个 DS18B20 并分别通信
- 在普通温度下, 可以直接从数据口取电, 这时候只需要两根连线.
- 供电电压 [3.0V, 5.5V]
- 温度检测范围 [-55°C, +125°C]摄氏度, [-67°F, +257°F]华氏度
- 精确率: 在 [-10°C, +85°C] 为 ±0.5°C
参数说明
- 常温下误差不超过±0.5°C
对国产的廉价DS18B20实际测过, 基本上在这个范围至内, 二三十摄氏度室温下, 实际测试得到的个体误差在±0.35°C以内. - 功耗很低
单个DS18B20用一个0.1uF的电容蓄电就可以驱动 - 可以通过三线或双线连接进行温度监控
去掉Vcc和GND, 实际上只需要一根IO线, 非常节省MCU的IO资源 - 支持在单线总线上连接多个芯片
这个最赞了, 只用一根线通信, 这根线还能同时与多个DS18B20通信, 而且这个距离还可以很长
对最后一点的说明: 单根线上 DS18B20 的数量和距离和布线形式有关, 十几厘米的短距离上连接五六十个 DS18B20 没有任何问题, 如果是上百米的长距离连接, 建议10个以内, 最多不要超过20个. 以上的前提都是供电充足. DS18B20的这些特性在工业环境中特别有利, 例如一个IDC机房, 几十个测温点只需要一个8位MCU就能完成采集, 功耗低并且可靠.
Pin脚
一般见到的都是3pin的To-92封装, 和普通三极管一样, 使平面朝向自己, Pin脚朝下, 从左往右依次为: GND, DQ, VDD

单个DS18B20的接线
单个DS18B20是最基础的连线方式
普通供电模式
普通供电模式使用的是三线连接, 电压可以选择3.3V或5V
- MCU IO -> DQ
- GND -> GND
- 5V/3.3V -> VDD
寄生供电模式
寄生供电模式使用的是双线连接. 这时候DS18B20的GND和Vdd都要接地. DQ脚既是数据通信脚, 也是供电脚, 上位机需要在这个脚上使用上拉电阻连接到VCC上, 对于STC8, 可以通过寄存器PxPU进行设置.
需要注意的是, 并非所有线上购买的DS18B20都能工作在寄生供电模式下, 有一些在寄生供电模式的电路下只会输出0, 这时候你需要通过一些额外的电路让其在双线模式下工作.
- MCU IO -> DQ
- GND -> GND & VDD
模拟寄生供电模式
如果DS18B20不能在寄生供电模式下工作, 可以使用一个 0.1uF 的电容和一个1N4148二极管实现双线连接. 这时候 DS18B20 实际上工作在普通供电模式下.
+-----1N4148-|>|-----+
| |
| |DS18B20|-VCC--+
| | | |
MCU IO--+-DQ--|DS18B20| 0.1uF
| | |
GND ----GND-|DS18B20|-GND--+
多个 DS18B20 接线
在实际的场景中, DS18B20 经常成组使用, 用于收集一个区域范围的温度信息, 区域的跨度从几十厘米(机箱, 机柜, 车床), 到上百米(住宅, 机房, 车间)都有可能. 对不同的距离和环境有不同的选择, 总结一下有以下几种情况
可以参考这篇 1-wire 总线的接线 https://www.loxone.com/enen/kb/wiring-1-wire-devices/
总线连接方式
下面的结构中S代表 Sensor, DS18B20. MCU是单片机.
总线方式是推荐的接线方式, 所有的 DS18B20 都接在同一根线上. 使用总线连接方式可以达到最远距离通信
MCU-------8m---S---3m----S----3m----S-----10m-----S
或者有个别分叉, 分叉离总线很近
MCU-------8m----------+--S---3m----S--+--10m-----S
| |
1m 1m
| |
S S
星形连接方式
如果总线上产生了较多较长的分叉, 就变成了星形连接, 类似于下面的接线方式, 星形连接仅建议在小区域场景使用, 与总线连接方式相比, 长度要短得多.
S---------8m----MCU
|
4m
|
S------6m-----+----3m------S
|
8m
|
S--+------4m-----+----6m------------S
|
2m
|
S
供电方式
集中供电
绝大多数场景使用的都是集中供电. 在这个场景下, 由控制端(MCU端)供电.
如果使用三线则无需注意, 如果使用双线连接, 需要注意
- 因为通信IO同时负责供电, 所以需要配置上拉电阻, 上拉电阻在短距离场景5KR足够, 但是在长距离场景需要降低, 可以尝试使用2KR的电阻.
- 如果是使用正常供电模式模拟的寄生供电模式, 电压使用5V, 电容需要靠近 DS18B20 部署, 每个 DS18B20 配一个 0.1uF 的电容.
终端供电
在有条件的场景, 每个 DS18B20 可以单独供电, 此时控制端与 DS18B20 共地, 连接通信IO即可. 为稳定起见在 DS18B20 端可以加配 0.1uF 电容.
参考
- DS18B20 最大距离 https://forums.raspberrypi.com/viewtopic.php?t=36163#p1337521
- 40米 CAT5 网线连接7个 DS18B20 https://raspberrypi.stackexchange.com/questions/41234/max-length-of-wire-w-3-3v-or-other-issue
- 寄生供电模式 https://learn.openenergymonitor.org/electricity-monitoring/temperature/DS18B20-temperature-sensing
- 寄生供电模式 https://e-radionica.com/en/blog/hum-how-to-use-the-ds18b20-with-parasitic-power-supply/
DS18B20数字温度计 (一) 电气特性, 供电和接线方式的更多相关文章
- DS18B20数字温度计 (三) 1-WIRE总线 ROM搜索算法和实际测试
目录 DS18B20数字温度计 (一) 电气特性, 寄生供电模式和远距离接线 DS18B20数字温度计 (二) 测温, ROM和CRC算法 DS18B20数字温度计 (三) 1-WIRE总线 ROM搜 ...
- STC8H开发(十一): GPIO单线驱动多个DS18B20数字温度计
目录 STC8H开发(一): 在Keil5中配置和使用FwLib_STC8封装库(图文详解) STC8H开发(二): 在Linux VSCode中配置和使用FwLib_STC8封装库(图文详解) ST ...
- [转]SRTM、ASTER GDEM等全球数字高程数据(DEM)下载方式简介
之前写过一篇短文对比过几种数字高程数据的区别:5种全球高程数据对比,这篇文章简要介绍下如何下载这些数据. 1.DLR的数字高程数据.该数据也是SRTM(shuttle radar topo ...
- excel打开csv格式的文件,数字末尾都变成零,解决方式
excel打开csv格式的文件,数字末尾都变成零,解决方式
- PTP 接线方式及通讯距离
PTP 接线方式 CB 1241 RS485 接线 (6ES7 241 1CH30-1XB0) CB1241 RS485 信号板(安装在CPU机本体上) ,订货号为: 6ES7 241 1CH30-1 ...
- JTAG各类接口针脚定义、含义以及SWD接线方式
JTAG有10pin的.14pin的和20pin的,尽管引脚数和引脚的排列顺序不同,但是其中有一些引脚是一样的,各个引脚的定义如下. 一.引脚定义 Test Clock Input (TCK) --- ...
- 使用以下映射将包含A-ZIS的字母的消息编码为数字:'A' - > 1,'B' - > 2 ...'Z' - > 26 给定包含数字的编码消息,确定解码方式的总数(python)(原创)
题目:有一种将字母编码成数字的方式:'a'->1, 'b->2', ... , 'z->26'.现在给一串数字,给出有多少种可能的译码结果. 实现逻辑: 1,使用队列的数据类型,每一 ...
- [异常解决] JLINK 与STM32的SWD连接接线方式
如果我们的板子上只留了4个接口:V3.3,SWDIO,SWDCLK,GND.那么和JTAG的连接关系参见下图: 注意缺口方向.然后GND可以接左边任何一个pin(除了最底下这个PIN). FROM: ...
- [异常解决] JTAG 与STM32的SWD连接接线方式
如果我们的板子上只留了4个接口:V3.3,SWDIO,SWDCLK,GND.那么和JTAG的连接关系参见下图: dd400cf22b5c01e57a6c9e198d5383a0_189.jpg (0 ...
随机推荐
- Go xmas2020 学习笔记 08、Functions, Parameters & Defer
08-Functions, Parameters. functions. first class. function signatures. parameter. pass by value. pas ...
- OpenHarmony 3.1 Beta版本关键特性解析——OpenHarmony图形框架
(以下内容来自开发者分享,不代表 OpenHarmony 项目群工作委员会观点) 李煜 华为技术有限公司 崔坤华为技术有限公司 众所周知,动画是系统和应用与用户交互的重要环节.动画效果的好坏会直接影响 ...
- perf性能分析工具使用分享
@ 目录 前言 perf的介绍和安装 perf基本使用 perf list使用,可以列出所有的采样事件 perf stat 概览程序的运行情况 perf top实时显示当前系统的性能统计信息 perf ...
- javaWeb代码整理02-jdbcTemplete数据库连接工具
jar包: maven坐标: /**属于spring框架的包*/<dependency> <groupId>org.springframework</groupId> ...
- MySQL8自增主键变化
MySQL8自增主键变化 醉后不知天在水,满船清梦压星河. 一.简述 MySQL版本从5直接大跃进到8,相信MySQL8一定会有很多令人意想不到的改进,如果不想只会CRUD可以看看. 比如系统表引擎的 ...
- netty系列之:netty中的核心MessageToMessage编码器
目录 简介 框架简介 MessageToMessageEncoder MessageToMessageDecoder MessageToMessageCodec 总结 简介 在netty中我们需要传递 ...
- Aop踩坑!记一次模板类调用注入属性为空的问题
问题起因 在做一个需求的时候,发现原来的代码逻辑都是基于模板+泛型的设计模式,模板用于规整逻辑处理流程,泛型用来转换参数和选取实现类.听上去是不是很nice! 类目录结构 AbstractTestAo ...
- Exception in thread "main" java.awt.AWTError: Assistive Technology not found: org.GNOME.Accessibilit
系统环境 Ubuntu 20.04 focal 问题分析 该异常出现的原因,从谷歌上可以得到答案 one of the more common causes of this exception is ...
- KTL 一个支持C++14编辑公式的K线技术工具平台 - 第六版,支持OpenGL,3D上帝视角俯视K线概貌。
K,K线,Candle蜡烛图. T,技术分析,工具平台 L,公式Language语言使用c++14,Lite小巧简易. 项目仓库:https://github.com/bbqz007/KTL 国内仓库 ...
- 【面试普通人VS高手系列】volatile关键字有什么用?它的实现原理是什么?
一个工作了6年的Java程序员,在阿里二面,被问到"volatile"关键字. 然后,就没有然后了- 同样,另外一个去美团面试的工作4年的小伙伴,也被"volatile关 ...