0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

单线数字温度传感器DS18B20以及ArduinoDS18B20接口的工作原理

454398 来源:工程师吴畏 2019-07-30 10:55 次阅读

温度传感器是非常重要的设备,因为它们可以帮助我们测量,监控和维持房间,仪器或设备的温度。

以前我们几乎使用了非常流行的LM35温度传感器每个温度相关的项目。我们现在将尝试使用名为DS18B20的不同温度传感器来测量使用Arduino的温度。

相关项目:基于Arduino的数字温度计

DS18B20温度传感器概述

DS18B20是1-Wire(单线)温度传感器由Maxim Integrated生产。它提供摄氏度的温度测量,分辨率为9位至12位。

DS18B20温度通过1-Wire接口或1-Wire总线交换信息,由Dallas Semiconductor开发的系统。在1-Wire接口中,通信只需要一根电线(从技术上讲,您需要两根电线:一根数据线和一根GND线)。

DS18B20温度传感器的另一个重要特性是每个DS18B20传感器都带有一个特定于该传感器的64位串行代码。

使用此功能独特的代码,您可以在同一个1-Wire总线上连接多个DS18B20传感器,并使用单个控制器访问信息。这种类型的设置在多个DS18B20传感器分布在很大区域的情况下非常有用。

以下是DS18B20数字温度计的一些主要功能。

使用只需一条线路进行数据传输的1-Wire接口。

9位到12位的可编程分辨率-bit。

它可以测量-55 0 C到+125 0 C范围内的温度。/span》

提供TO-92,8引脚SO和8引脚μSOP等不同封装。

DS18B20的引脚图

下图显示了DS18B20数字温度传感器的TO-92封装的引脚图。

DS18B20温度传感器的引脚说明

As您可以在上面的引脚图中看到,DS18B20传感器由三个引脚组成,即:V DD ,DQ和GND。

V DD :这是电源引脚。当使用寄生供电模式时,它必须接地(稍后会详细介绍)。

DQ:这是数据输入/输出引脚。它是一个开漏引脚,必须拉高。它以寄生供电模式提供电源。

GND:这是接地引脚。

DS18B20的框图

下图显示了DS18B20温度传感器的功能框图。它由一个电源电路,64位ROM,内存控制器,主温度传感器和一个Scratchpad区域组成,该区域有一个温度寄存器和一些其他寄存器,用于存储配置和报警高低触发。

64位ROM存储设备的唯一串行代码。温度传感器的数字输出存储在Scratchpad的2字节温度寄存器中。暂存器还包括1-Byte for Alarm HIGH Trigger寄存器,Alarm LOW Trigger寄存器和Configuration寄存器。

使用配置寄存器,您可以设置数字的分辨率输出从9位到12位之间的任何位置。为了保留配置中存储的数据,报警高电平和报警低电平寄存器,即使器件断电,这三个寄存器也实现为EEPROM。

为电源供电DS18B20传感器

有两种方法可以为DS18B20传感器供电。一种方法是将外部电源连接到传感器的V DD 引脚的传统方式。这个操作没有什么特别之处。

启动DS18B20传感器的第二种方法是让事情变得有趣。为传感器供电的第二种方式称为寄生电源模式,无需外部电源。

在寄生供电模式下,DS18B20在拉高时从DQ引脚获取电源。当1-Wire总线为高电平时,它为DS18B20供电。当总线为低电平时,寄生电源电容(C PP )中存储的电荷将为传感器供电。在寄生供电模式下,V DD 引脚连接到GND。

DS18B20与Arduino接口

在本项目中,我们将了解如何将DS18B20温度传感器与Arduino连接。由于传感器基于1-Wire通信,因此Arduino和DS18B20之间只需要一根线。

Arduino DS18B20接口电路图

下图显示了Arduino DS18B20接口的电路图。

所需组件

Arduino UNO

DS18B20数字温度传感器

16×2 LCD显示器

10KΩ电位器

4.7KΩ电阻器(1/4瓦)

330Ω电阻(1/4瓦)

5mm LED

连接电线

面包板

电源

电路设计

Arduino DS18B20接口电路的设计非常简单。您只需将传感器的V DD 和GND连接到+ 5V和GND,并将传感器的DQ引脚连接到任何一个数字I/O引脚(它连接到数字) I/O引脚8)。

使用4.7KΩ电阻将DQ引脚拉高。

因为我们需要为了查看测量温度,我已将一个简单的16X2 LCD显示器连接到Arduino。

代码

项目代码如下。您需要为Arduino下载两个库:OneWire和DallasTemperature。您可以从以下链接下载这些库:下载OneWire Library 和下载DallasTemperature Library 。

工作Arduino DS18B20接口

项目的工作非常简单。 Arduino通过1-Wire接口与DS18B20通信,并从传感器中提取温度信息。提取的信息显示在16X2 LCD显示屏上。

应用

DS18B20温度传感器可用于各种应用,例如:

温度计

温度敏感系统

消费类电子产品

工业设备

恒温器

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 温度传感器
    +关注

    关注

    48

    文章

    2648

    浏览量

    154283
  • DS18B20
    +关注

    关注

    10

    文章

    765

    浏览量

    80084
  • Arduino
    +关注

    关注

    184

    文章

    6426

    浏览量

    184800
收藏 人收藏

    评论

    相关推荐

    树莓派Pico上使用DS18B20温度传感器

    DS18B20 温度传感采用单总线的接口方式,与微处理器连接时仅需要一条口线即可实现微处理器与 DS18B20 的双向通讯。单总线具有经济性
    的头像 发表于 11-21 14:21 598次阅读
    树莓派Pico上使用<b class='flag-5'>DS18B20</b><b class='flag-5'>温度</b><b class='flag-5'>传感器</b>

    DS18B20采样温度的精度可以达到多少?

    DS18B20采样温度的精度可以达到多少
    发表于 10-12 08:14

    基于DS18B20的多点测温方案详解

    DS18B20 单线数字温度传感器,多个 DS18B20 可以并联在惟一的
    的头像 发表于 09-15 16:23 1603次阅读
    基于<b class='flag-5'>DS18B20</b>的多点测温方案详解

    DS18B20 数字温度计特点

    一.DS18B20特点 DS18B20 数字温度计提供12位(二进制)温度读数的数字
    的头像 发表于 09-11 11:19 1308次阅读
    <b class='flag-5'>DS18B20</b> <b class='flag-5'>数字</b><b class='flag-5'>温度</b>计特点

    ds18b20温度传感器内部结构 ds18b20温度传感器工作原理

    DS18B20内部包含一个数字转换器,用于将传感器输出的模拟电信号转换成数字信号。该数字转换器能够将温度
    的头像 发表于 08-30 16:16 4266次阅读
    <b class='flag-5'>ds18b20</b><b class='flag-5'>温度</b><b class='flag-5'>传感器</b>内部结构 <b class='flag-5'>ds18b20</b><b class='flag-5'>温度</b><b class='flag-5'>传感器</b>的<b class='flag-5'>工作原理</b>

    如何使用Nano100来读DS18B20

    : NuTiny-EVB-Nano130-LQFP128 v1.1 MCU与DS18B20到PD.0的DS18B20通信读DS18B20,然后通过串端输出温度,作为浮体类型。
    发表于 08-30 08:07

    如何使用Mini51来读DS18B20

    MCU与DS18B20至P5.2进行通信,读DS18B20,然后通过串端输出温度,作为浮体类型。 DS18B20温度分辨率为12比特。 港
    发表于 08-29 07:08

    如何使用Nano100来读DS18B20

    : NuTiny-EVB-Nano130-LQFP128 v1.1 MCU与DS18B20到PD.0的DS18B20通信读DS18B20,然后通过串端输出温度,作为浮体类型。
    发表于 08-22 07:54

    使用Mini51来读DS18B20

    MCU与DS18B20至P5.2进行通信,读DS18B20,然后通过串端输出温度,作为浮体类型。 DS18B20温度分辨率为12比特。 港
    发表于 08-22 06:08

    如何使用i2c接口获取温度传感器DS18B20数据?

    使用i2c接口获取ds18b20数据,并且进行数据处理
    发表于 08-16 07:45

    【笔记】多路DS18B20温度的读取

    多路DS18B20温度传感器的读取原理如下:1.初始化:首先需要初始化GPIO引脚的配置,将其设置为推挽输出模式。这个引脚将用于与DS18B20传感
    的头像 发表于 06-08 09:49 2863次阅读
    【笔记】多路<b class='flag-5'>DS18B20</b><b class='flag-5'>温度</b>的读取

    ds18b20错误输出的原因?

    所以我遇到了一个问题。我让 tasmota 在连接了两个 DS18B20 的 esp8266 上运行。我在数据和电源之间有通常的 4k7 电阻。我不断收到其中一个传感器报告 85° 然后返回实际温度。它一直来回跳动,我不确定发生
    发表于 05-29 08:15

    【正点原子STM32精英V2开发板体验】DS18B20温度采集

    of \'XXX\'”。 本节主要分享基于DS18B20温度精准采集,我们知道DS18B20是美国DSLIAS公司推出的单总线数字温度
    发表于 05-03 19:31

    DS18b20传感器读数问题如何解决?

    “read_DS18B20_Temp”,我将传感器连接到的引脚号传递给该函数,它将返回温度。我用 DHT 传感器做了一些事情,它工作正常。
    发表于 04-27 07:04

    ds18b20模块未加载是怎么回事?

    嗨,我尝试使用 ds18b20 模块将我的软件更新到版本 3.0.0.0 中的新 lua 模块,但是它不会加载: 代码:全选NodeMCU 3.0.0.0 built
    发表于 04-26 08:10