温度传感器ds18b20 数字温度传感器DS18B20简介
数字温度传感器DS18B20简介
1、DS18B20的主要特性1.1、适应电压范围更宽,电压范围:3.0~5.5V,在寄生电源方式下可由数据线供电1.2、独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯1.3、DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温1.4、DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内1.5、温范围-55℃~+125℃,在-10~+85℃时精度为±0.5℃1.6、可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测温1.7、在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快1.8、测量结果直接输出数字温度信号,以"一线总线"串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力1.9、负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。
2、DS18B20的外形和内部结构DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20的外形及管脚排列如下图1:
DS18B20引脚定义:
(1)DQ为数字信号输入/输出端;(2)GND为电源地;(3)VDD为外接供电电源输入端(在寄生电源接线方式时接地)。
图2: DS18B20内部结构图
3、DS18B20工作原理
DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s减为750ms。 DS18B20测温原理如图3所示。图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在-55℃所对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图3中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。
图3: DS18B20测温原理框图
DS18B20有4个主要的数据部件:
(1)光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。64位光刻ROM的排列是:开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。
(2)DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以0.0625℃/LSB形式表达,其中S为符号位。
表1: DS18B20温度值格式表
这是12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。
例如+125℃的数字输出为07D0H,+25.0625℃的数字输出为0191H,-25.0625℃的数字输出为FF6FH,-55℃的数字输出为FC90H。
表2: DS18B20温度数据表
(3)DS18B20温度传感器的存储器
DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的EEPRAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。
Arduino教程┃五分钟全面了解DS18B20模拟防水温度传感器「图文」
前言
防水温度传感器是一个模拟输入模块,它的型号为:DS18B20(中间有详细视频讲解)。
图1:DS18B20模拟防水温度传感器
一、课前准备
学习本节课请准备Arduino UNO主板1块、扩展板1块、防水温度传感器1个、USB方口数据线1根、Mixly(米思齐,V0.998)。
图2:课前需要准备的物品及编程软件
二、模拟防水温度传感器简介
DS18B20防水温度传感器支持“单总线”接口(1-Wire),测量温度范围为-55~125,在-10~85范围内,精度为±0.5。现场温度直接以“单总线”的数字方式传输,大大提高了系统的抗干扰性,适合于恶劣环境的现场温度测量。在Arduino中,它需要连接一个上拉电阻才能使用。
图3 终端传感器适配器
终端传感器适配器的出现就是为了解决刚说的上拉电阻问题,它分别在A&B、A&C之间增加了一个10k电阻,这样当传感器必须有上拉或下拉电阻时,就不需要再连接一个附加电阻,提供简单和稳定的连接。简单的说就是,这个终端提供了一个更容易的方法来连接开关或任何需要上拉/下拉电阻的模块到类似于Arduino UNO主板这样的微控制器。
三、模拟防水温度传感器外形尺寸
温度传感器
钢管:6*50mm
引线长度:1m
终端传感器适配器
终端传感器适配器:
尺寸:22x34mm
螺丝安装孔:两个M3
四、模拟防水温度传感器电气特性
输入电压:3-5.5V DC(直流电源)
感温范围:-55℃~+125℃(引线最高只能承受85度左右)
转换精度:9位~12位A/D
五、模拟防水温度传感器接口说明
把防水温度传感器连接到 终端传感器适配器
请注意颜色区分
黑色 负极 连接 C
红色 正极 连接 B
黄色 数字信号 连接 A
再把 终端传感器 连接到扩展板2号数字管脚或A2号模拟管脚(这个传感器很特殊)。
这个传感器很特殊,数字、模拟都可以获取温度值
黑色 负极 连接 G
红色 正极 连接 V
绿色 信号 连接 S
注意:正负极不能反接,会烧坏传感器。
六、获取模拟防水温度传感器返回值
由于AS-Block只有LM35温度传感器,没有集成DS18B20模块,再加上这个传感器的代码比较复制,所以本节课,我们只使用米思齐来调试。具体获取方法请点击观看视频:温度传感器视频介绍。
七、模拟防水温度传感器使用注意事项
DS1820虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点,但在实际应用中也应注意以下几方面的问题:
1) 较小的硬件开销需要相对复杂的软件进行补偿,由于DS1820与微处理器间采用串行数据传送,因此,在对DS1820进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。在使用PL/M、C等高级语言进行系统程序设计时,对DS1820操作部分最好采用汇编语言实现。
2) 在DS1820的有关资料中均未提及单总线上所挂DS1820数量问题,容易使人误认为可以挂任意多个DS1820,在实际应用中并非如此。当单总线上所挂DS1820超过8个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。
3) 连接DS1820的总线电缆是有长度限制的。试验中,当采用普通信号电缆传输长度超过50m时,读取的测温数据将发生错误。当将总线电缆改为双绞线带屏蔽电缆时,正常通讯距离可达150m,当采用每米绞合次数更多的双绞线带屏蔽电缆时,正常通讯距离进一步加长。这种情况主要是由总线分布电容使信号波形产生畸变造成的。因此,在用DS1820进行长距离测温系统设计时要充分考虑总线分布电容和阻抗匹配问题。
4) 在DS1820测温程序设计中,向DS1820发出温度转换命令后,程序总要等待DS1820的返回信号,一旦某个DS1820接触不好或断线,当程序读该DS1820时,将没有返回信号,程序进入死循环。这一点在进行DS1820硬件连接和软件设计时也要给予一定的重视。
测温电缆线建议采用屏蔽4芯双绞线,其中一对线接地线与信号线,另一组接VCC和地线,屏蔽层在源端单点接地。
八、模拟防水温度传感器知识拓展
1、onewire(单总线)onewire(单总线)是DALLAS公司推出的外围串行扩展总线技术总线,顾名思义,它是采用一根信号线进行通信,既传输时钟信号又传输数据,而且能够进行双向通信,具有节省I/O口线、资源结构简单、成本低廉、便于总线扩展和维护等诸多优点。常用到单总线的器件,一般是稳定传感器、EEPROM、唯一序列号芯片等,如DS18B20、DS2431。
在使用单总线时,往往很少CPU会提供硬件单总线,几乎都是根据单总线标准的时序图,通过普通IO翻转模拟实现单总线。而在模式实现时序图的过程中,需要根据CPU时钟频率等条件进行时序时间计算,如果更换CPU后,需要重新计算时序时间,如果时序代码和器件外设控制代码集成在一起,则代码改动比较大。或者同一CPU需要模拟多根单总线时,传统的“复制”方式使得程序显得累赘,还增加ROM占用空间。因此,可以利用“函数指针”的方式,将时序部分抽象出来,达到“复用”代码的效果。
2、上拉电阻、下拉电阻
在数字逻辑电路中,一个信号不是0,就是1。正是因为这样,数字电路的设计才简单,可靠。通常,用电压5v(或者接近5V)代表 on 开状态,代表高电平,对应状态 1。用电压0v (或者接近0v)代表off关状态,代表低电平,对应状态0。有些开发板是基于3,3V的,因此使用3.3V作为高电平。如果一个线路中的电压处于不确定的状态(例如一个引脚不和任何其它回路连通时),那我们就说它的电压是浮动的,他会随着时间不断变化,跳动,而且很容易受到外界环境的影响。处于这种不确定状态的电路会被随机解释为高或者低电平。这种现象也叫电子噪声。然而程序必须是严格准确的,所以电路的设计一定要避免线路电压处于浮动状态。我们可以使用上拉电阻或者下拉电阻将电路的电压在任何时候都保持在确定的状态下,这就是上拉电阻和下拉电阻的作用。
下拉电阻作用:将一个未知的电平拉低到稳定的低电平状态。
上拉电阻作用:将一个未知的电平拉高到稳定的高电平状态。
九、结束语
初始化工作室重点关注“乐高、Scratch、Arduino的学习与创意以及STEAM教育的实施 ”,如果需要更多相关课程,请“关注 ”我,谢谢。
相关问答
一般情况下,当 温度 达到多少度 温度传感器DS18B20 才会报警?_...[最佳回答]报警温度是自己设定的哈你可以设定20°也可以设定75°关键是看你自己设置报警温度就是设置寄存器的值采集值与设置的报警值相比较我当时设置了...
温度传感器DS18B20 _汽配人问答[最佳回答]正好我以前写过DS18B20的程序,现在共享给你。我的单片机频率是8M,如果你的频率不同,请自己计算后把延时参数修改一下就可以了。DS1820温度传感器...
ds18b20 与其他 温度传感器 有什么优缺点?优点:1:与单片机的接口简单2:单只使用比较简单3:有体积小,硬件开销低,抗干扰能力强缺点:1:多只单总线使用涉及到ROM搜索的程序,比较难懂点2:...DS18B20...
界面友好,功耗低.关键词:单片机数据采集 温度 控制[最佳回答]AbstractAtpresentthenumberofhouseholdelectronicbell,themajoritycanonlydisplayhours,minut...
界面友好,功耗低.关键词:单片机数据采集 温度 控制[最佳回答]AbstractAtpresentthenumberofhouseholdelectronicbell,themajoritycanonlydisplayhours,minu...
温度传感器 型号和参数?温度传感器的型号和参数可以根据具体的需求和应用来选择,以下是一些常见的温度传感器型号及其参数:1.NTC热敏电阻:常用型号有10K、50K、100K等,具有较高的...
调温电烙铁用的 温度传感器 是什么样的? - APR0D5VXb 的回答 -...电烙铁烙铁头的实际温度设置为(270~370℃),一般不会使用DS18B20,因为其测温范围-55℃~125℃。1、恒温电烙铁头内,装有带磁铁式的温度控制器,控制通...
温湿度 传感器 参数有哪些?_住范儿家装官网型号:ZRN-WS-A1经济型温湿度变送器特点与用途:ZRN-WS-A1经济型温湿度传感器、变送器为壁挂式,适用于(0~50)℃空间环境下的温湿度监测。湿度...
调温电烙铁用的 温度传感器 是什么样的? - 177****2601 的回答...2第二步,把电烙铁的插头插到插座中,3这时候加热指示灯发亮,表示正在加热,如图:4这时,我们要设定好温度,中间有个小转盘,上面的数字表示温度。手柄...
数字 温度传感器ds18b20 数据输出格式_汽配人问答[最佳回答]DS18B20通信挺复杂的,手边正好有篇相关文章,就是不知道怎么发给你。