最新消息:

Arduino教程┃五分钟全面了解DS18B20模拟防水温度传感器「图文版」

Arduino 少儿编程 4486浏览 0评论

一、前言

防水温度传感器是一个模拟输入模块,它的型号为:DS18B20(中间有详细视频讲解)

Arduino教程┃五分钟全面了解DS18B20模拟防水温度传感器「图文版」

图1:DS18B20模拟防水温度传感器

一、课前准备

学习本节课请准备Arduino UNO主板1块、扩展板1块、防水温度传感器1个、USB方口数据线1根、Mixly(米思齐,V0.998)。

Arduino教程┃五分钟全面了解DS18B20模拟防水温度传感器「图文版」

图2:课前需要准备的物品及编程软件

二、模拟防水温度传感器简介

DS18B20防水温度传感器支持“单总线”接口(1-Wire),测量温度范围为-55~125,在-10~85范围内,精度为±0.5。现场温度直接以“单总线”的数字方式传输,大大提高了系统的抗干扰性,适合于恶劣环境的现场温度测量。在Arduino中,它需要连接一个上拉电阻才能使用。

Arduino教程┃五分钟全面了解DS18B20模拟防水温度传感器「图文版」

图3 终端传感器适配器

终端传感器适配器的出现就是为了解决刚说的上拉电阻问题,它分别在A&B、A&C之间增加了一个10k电阻,这样当传感器必须有上拉或下拉电阻时,就不需要再连接一个附加电阻,提供简单和稳定的连接。简单的说就是,这个终端提供了一个更容易的方法来连接开关或任何需要上拉/下拉电阻的模块到类似于Arduino UNO主板这样的微控制器。

三、模拟防水温度传感器外形尺寸

Arduino教程┃五分钟全面了解DS18B20模拟防水温度传感器「图文版」

钢管:6*50mm

引线长度:1m

Arduino教程┃五分钟全面了解DS18B20模拟防水温度传感器「图文版」

终端传感器适配器:

尺寸:22x34mm

螺丝安装孔:两个M3

四、模拟防水温度传感器电气特性

输入电压:3-5.5V DC(直流电源)

感温范围:-55℃~+125℃(引线最高只能承受85度左右)

转换精度:9位~12位A/D

五、模拟防水温度传感器接口说明

把防水温度传感器连接到 终端传感器适配器

Arduino教程┃五分钟全面了解DS18B20模拟防水温度传感器「图文版」

黑色 负极 连接 C

红色 正极 连接 B

黄色 数字信号 连接 A

Arduino教程┃五分钟全面了解DS18B20模拟防水温度传感器「图文版」

再把 终端传感器  连接到扩展板2号数字管脚或A2号模拟管脚(这个传感器很特殊)。

黑色 负极 连接 G

红色 正极 连接 V

绿色 信号 连接 S

注意:正负极不能反接,会烧坏传感器。

六、获取模拟防水温度传感器返回值

Arduino教程┃五分钟全面了解DS18B20模拟防水温度传感器「图文版」

由于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作为高电平。如果一个线路中的电压处于不确定的状态(例如一个引脚不和任何其它回路连通时),那我们就说它的电压是浮动的,他会随着时间不断变化,跳动,而且很容易受到外界环境的影响。处于这种不确定状态的电路会被随机解释为高或者低电平。这种现象也叫电子噪声。然而程序必须是严格准确的,所以电路的设计一定要避免线路电压处于浮动状态。我们可以使用上拉电阻或者下拉电阻将电路的电压在任何时候都保持在确定的状态下,这就是上拉电阻和下拉电阻的作用。

下拉电阻作用:将一个未知的电平拉低到稳定的低电平状态。

上拉电阻作用:将一个未知的电平拉高到稳定的高电平状态。

您必须 登录 才能发表评论!