查看: 434|回复: 24

[经验] 【Arduino】37种传感器系列实验(39)---18B20温度传感器模块

[复制链接]
  • TA的每日心情

    2019-7-19 07:45
  • 签到天数: 80 天

    [LV.6]常住居民II

    发表于 2019-6-26 13:18 | 显示全部楼层 |阅读模式
    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和模块,依照实践(动手试试)出真知的理念,以学习和交流为目的,这里准备逐一做做实验,不管能否成功,都会记录下来---小小的进步或是搞不掂的问题,希望能够抛砖引玉。

    实验三十九:DS18B20单总线数字温度传感器模块

    DS18B20
    是世界第一片支持"一线总线"接口的温度传感器,一线总线独特而且经济的特点,使用户可轻松组建传感器网络,为测量系统构建系统引入全新要概念。
    00- (1).jpg

  • TA的每日心情

    2019-7-19 07:45
  • 签到天数: 80 天

    [LV.6]常住居民II

     楼主| 发表于 2019-6-27 08:51 | 显示全部楼层
    本帖最后由 eagler8 于 2019-7-12 06:05 编辑

    Arduino 系列传感器和模块实验目录清单:

    一块扩展板完成Arduino的9类18项实验(代码+图形+仿真)
    https://www.arduino.cn/thread-88696-1-1.html
    实验一:干簧管传感器模块
    https://www.arduino.cn/thread-86350-1-1.html
    实验二:光敏电阻传感器模块
    https://www.arduino.cn/thread-86393-1-1.html
    实验三:微波雷达感应开关模块
    https://www.arduino.cn/thread-86397-1-1.html
    实验四:振动传感器模块
    https://www.arduino.cn/thread-86512-1-1.html
    实验五:热敏电阻温度传感器模块
    https://www.arduino.cn/thread-86520-1-1.html
    实验六:KY-038高感度声音传感器模块
    https://www.arduino.cn/thread-86576-1-1.html
    实验七:旋转电位器模块
    https://www.arduino.cn/thread-86866-1-1.html
    实验八:湿度传感器模块
    https://www.arduino.cn/thread-87993-1-1.html
    实验九:火焰(红外线)传感器模块
    https://www.arduino.cn/thread-88283-1-1.html
    实验十:敲击传感器模块KY-031
    https://www.arduino.cn/thread-88401-1-1.html
    实验十一:金属触摸传感器模块KY-36
    https://www.arduino.cn/thread-88422-1-1.html
    实验十二:开关霍尔磁力传感器模块
    https://www.arduino.cn/thread-88461-1-1.html
    实验十三:触摸传感器模块
    https://www.arduino.cn/thread-88523-1-1.html
    实验十四:倾斜传感器模块(角度开关)
    https://www.arduino.cn/thread-88530-1-1.html
    实验十五:手指侦测心跳传感器模块KY-039
    https://www.arduino.cn/thread-88557-1-1.html
    实验十六:电容式数字触摸传感器模块(TTP223 )
    https://www.arduino.cn/thread-88567-1-1.html
    实验十七:HC-SR312微型热释电传感器模块
    https://www.arduino.cn/thread-88578-1-1.html
    实验十八:0.25W太阳能滴胶板传感器模块(45X45毫米)
    https://www.arduino.cn/thread-88669-1-1.html
    实验十九:常闭型SW-420震动开关传感器模块
    https://www.arduino.cn/thread-88672-1-1.html
    实验二十:水银开关传感器模块(KY-017)
    https://www.arduino.cn/thread-88787-1-1.html
    实验二十一:激光头传感器模块(KY-008)
    https://www.arduino.cn/thread-88842-1-1.html
    实验二十二:MAX7219点阵显示模块(8X8 LED共阴)
    https://www.arduino.cn/thread-88851-1-1.html
    实验二十三:NE555频率可调脉冲发生器模块(方波简版)
    https://www.arduino.cn/thread-88867-1-1.html
    实验二十四:水位水滴传感器模块(Water Sensor)
    https://www.arduino.cn/thread-88886-1-1.html
    实验二十五:MQ-2气敏式烟雾传感器模块(甲烷等)
    https://www.arduino.cn/thread-88906-1-1.html
    实验二十六:4X4矩阵键盘模块(轻触式按键)
    https://www.arduino.cn/thread-88966-1-1.html
    实验二十七:GY-BMP280-3.3 高精度大气压强传感器模块
    https://www.arduino.cn/thread-89010-1-1.html
    实验二十八:三色5050 RGB全彩LED模块 KY-009
    https://www.arduino.cn/thread-89022-1-1.html
    实验二十九:DS1302实时时钟模块(带电池  掉电走时)
    https://www.arduino.cn/thread-89070-1-1.html
    实验三十:光敏二极管传感器模块(英语photodiode )
    https://www.arduino.cn/thread-89129-1-1.html
    实验三十一:ISD1820录音语音模块(8-20秒)
    https://www.arduino.cn/thread-89154-1-1.html
    实验三十二:雨滴传感器模块(雨水/雨量/叶面湿度)
    https://www.arduino.cn/thread-89184-1-1.html
    实验三十三:ESP8266串口WIFI收发无线模块 (ESP-01S)
    https://www.arduino.cn/thread-89245-1-1.html
    实验三十四:三色LED交通灯模块(红绿黄灯)
    https://www.arduino.cn/thread-89273-1-1.html
    实验三十五:模拟量声音传感器模块(4线制)
    https://www.arduino.cn/thread-89289-1-1.html
    实验三十六:WS2812B智能外控集成LED四位彩灯模块
    https://www.arduino.cn/thread-89297-1-1.html
    实验三十七:MQ-3酒精乙醇传感器模块
    https://www.arduino.cn/thread-89300-1-1.html
    实验三十八:joystick双轴XY按键摇杆模块(游戏控制杆)
    https://www.arduino.cn/thread-89365-1-1.html
    实验三十九:DS18B20单总线数字温度传感器模块
    https://www.arduino.cn/thread-89368-1-1.html
    实验四十:360度旋转增量编码器模块(KY-040)
    https://www.arduino.cn/thread-89427-1-1.html
    实验四十一:IS0203激光接收管传感器模块
    https://www.arduino.cn/thread-89428-1-1.html
    实验四十二:DSM501A韩国PM2.5灰尘粉尘传感器模块
    https://www.arduino.cn/thread-89441-1-1.html
    实验四十三:5V低电平触发单路继电器模块
    https://www.arduino.cn/thread-89445-1-1.html
    实验四十四:类比霍尔磁性传感器 KY-035(模拟量)
    https://www.arduino.cn/thread-89464-1-1.html
    实验四十五:红外避障传感器模块(光电接近开关)
    https://www.arduino.cn/thread-89473-1-1.html
    实验四十六:350Ω高精度电阻式应变片传感器 (BF350)
    https://www.arduino.cn/thread-89474-1-1.html
    实验四十七:七段LED数码管模块(共阴/共阳)
    https://www.arduino.cn/thread-89475-1-1.html
    实验四十八:GY-291三轴重力加速度模块 (IIC/SPI传输)
    https://www.arduino.cn/thread-89567-1-2.html
    实验四十九:有源蜂鸣器报警器发声模块(低电平触发)
    https://www.arduino.cn/thread-89568-1-2.html
    实验五十:W25Q64 FLASH外扩存储模块 (SPI接口 )
    https://www.arduino.cn/thread-89570-1-2.html
    实验五十一:自锁点动触摸按键传感器模块(TTP223芯片)
    https://www.arduino.cn/thread-89721-1-1.html
    实验五十二:SPI接口Micro SD卡模块(带电平转换芯片)
    https://www.arduino.cn/thread-89729-1-1.html
    实验五十三: 土壤湿度水分传感器模块(电阻式)
    https://www.arduino.cn/thread-89734-1-1.html
    实验五十四: 大按键点动轻触开关模块(高电平输出)
    https://www.arduino.cn/thread-89785-1-1.html
    实验五十五:DHT11 温湿度传感器(数字型单总线通信)
    https://www.arduino.cn/thread-89786-1-1.html
    实验五十六: 8路LED流水的灯跑马灯模块SUNLEPHANT
    https://www.arduino.cn/thread-89832-1-1.html
    实验五十七: 四档频率占空比可调矩形波信号发生器(NE555)
    https://www.arduino.cn/thread-89868-1-1.html
    实验五十八: HC-SR04超声波测距传感器模块(5针宽电压)
    https://www.arduino.cn/thread-89869-1-1.html
    实验五十九: RS232转TTL2代串口模块刷机板(MAX3232)
    https://www.arduino.cn/thread-89895-1-1.html
    实验六十:ATTINY85 Digispark kickstarter 微型usb开发板
    https://www.arduino.cn/thread-89898-1-1.html
  • TA的每日心情

    2019-7-19 07:45
  • 签到天数: 80 天

    [LV.6]常住居民II

     楼主| 发表于 2019-6-27 09:18 | 显示全部楼层
    0--.jpg
  • TA的每日心情

    2019-7-19 07:45
  • 签到天数: 80 天

    [LV.6]常住居民II

     楼主| 发表于 2019-6-27 09:33 | 显示全部楼层
    0-.jpg
    0-0.jpg
  • TA的每日心情

    2019-7-19 07:45
  • 签到天数: 80 天

    [LV.6]常住居民II

     楼主| 发表于 2019-6-27 13:40 | 显示全部楼层
    本帖最后由 eagler8 于 2019-6-27 13:46 编辑

    DS18B20 的内部结构主要由64 位ROM、温度灵敏元件、内部存储器和配置寄存器4 部分组成,如上图所示。
    ( 1) 64 位ROM。它的内容是64 位序列号,它可以被看作是该DS18B20 的地址序列码,其作用是使每个DS18B20 都各不相同,这样就可以实现一根总线上挂接多个DS18B20 的目的。
    ( 2) 温度灵敏元件。它完成对温度的测量,测量后的结果存储在2 个8 b 的温度寄存器中。
    ( 3) 内部存储器。内部存储器包括一个高速暂存RAM 和一个非易失性的可电擦除的E2 PROM,后者存放高温度和低温度触发器TH、TL 以及配置寄存器。

    00 (1).jpg
  • TA的每日心情

    2019-7-19 07:45
  • 签到天数: 80 天

    [LV.6]常住居民II

     楼主| 发表于 2019-6-27 13:46 | 显示全部楼层
    测温原理
    用一个高温度系数的振荡器确定一个门周期,内部计数器在这个门周期内对一个低温度系数的振荡器的脉冲进行计数来得到温度值。计数器被预置到对应于-55摄氏度的一个值。如果计数器在门周期结束前到达0,则温度寄存器(同样初始化到-55摄氏度)的值增加,表明所测温度大于-55摄氏度。

    1。温度系数振荡器是指一种振荡器,它的振荡频率与温度之间有一个特定的关系,即不同的温度对应不同的振荡频率。反之,测量出振荡器的输出频率,就可测量出温度值。
    2.高温度系数振荡器:它的振荡频率受温度的影响很大,温度稍有变化,频率就会变化很多,即对温度敏感,多用于温度传感器。
    3.低温度系数振荡器:它的振荡频率受温度的影响很小,即使温度变化很大,它的频率也基本不变。

      同时,计数器被复位到一个值,这个值由斜坡式累加器电路确定,斜坡式累加器电路用来补偿感温振荡器的抛物线特性。然后计数器又开始计数直到 0,如果门周期仍未结束,将重复这一过程。 斜坡式累加器用来补偿感温振荡器的非线性,以期在测温时获得比较高的分辨力。这是通过改变计数器对温度每增加一度所需计数的的值来实现的。因此,要想获得所需的分辨力,必须同时知道在给定温度下计数器的值和每一度的计数值。

    0-1.jpg

  • TA的每日心情

    2019-7-19 07:45
  • 签到天数: 80 天

    [LV.6]常住居民II

     楼主| 发表于 2019-6-27 15:54 | 显示全部楼层
    主要特性
    (1) 独特的单线接口方式,与单片机连接时仅需要一条口线;
    (2) 测温范围为- 55~ + 125℃,在- 10~ + 85℃范围内精度为±0. 5 ℃;
    (3) 通过编程可实现9~ 12 位的数字读数方式;
    (4) 用户可自设定非易失性的报警上下限值;
    (5) 外围电路简单,使用时不需要外围元件,可用数据总线供电,电压范围为3. 0 ~ 5. 5 V 无需备用电源;
    (6)无需外部元件,独特的一线接口,电源和信号混合在一起;
    (7)每个芯片唯一编码,支持联网寻址,零功耗等待;
    (8)DS18B20 有TO 92、SOIC 及CSP 封装,其中VDD 为外接供电电源输入端,GND 为公共地,DQ为数字信号输出端;
    (9)适用于冷冻库,粮仓,储罐,GPS卫星定位系统,电讯机房,电力机房,电缆线槽等测温和控制领域。
    01 (1).jpg

  • TA的每日心情

    2019-7-19 07:45
  • 签到天数: 80 天

    [LV.6]常住居民II

     楼主| 发表于 2019-6-27 16:07 | 显示全部楼层
    本帖最后由 eagler8 于 2019-6-27 16:16 编辑

    部件描述
    存储器---DS18B20的存储器包括高速暂存器RAM和可电擦除RAM,可电擦除RAM又包括温度触发器TH和TL,以及一个配置寄存器。存储器能完整的确定一线端口的通讯,数字开始用写寄存器的命令写进寄存器,接着也可以用读寄存器的命令来确认这些数字。当确认以后就可以用复制寄存器的命令来将这些数字转移到可电擦除RAM中。当修改过寄存器中的数时,这个过程能确保数字的完整性。高速暂存器RAM是由8个字节的存储器组成;用读寄存器的命令能读出第九个字节,这个字节是对前面的八个字节进行校验。

    64-位光刻ROM---前8位是DS18B20的自身代码,接下来的48位为连续的数字代码,最后的8位是对前56位的CRC校验。64-位的光刻ROM又包括5个ROM的功能命令:读ROM,匹配ROM,跳跃ROM,查找ROM和报警查找。
    外部电源的连---DS18B20可以使用外部电源VDD,也可以使用内部的寄生电源。当VDD端口接3.0V—5.5V的电压时是使用外部电源;当VDD端口接地时使用了内部的寄生电源。无论是内部寄生电源还是外部供电,I/O口线要接5KΩ左右的上拉电阻。

    配置寄存器---配置不同的位数来确定温度和数字的转化。可以知道R1,R0是温度的决定位,由R1,R0的不同组合可以配置为9位,10位,11位,12位的温度显示。这样就可以知道不同的温度转化位所对应的转化时间,四种配置的分辨率分别为0.5℃,0.25℃,0.125℃和0.0625℃,出厂时以配置为12位。

    温度的读取---DS18B20在出厂时以配置为12位,读取温度时共读取16位,前5个位为符号位,当前5位为1时,读取的温度为负数;当前5位为0时,读取的温度为正数。温度为正时读取方法为:将16进制数转换成10进制即可。温度为负时读取方法为:将16进制取反后加1,再转换成10进制即可。例:0550H = +85 度,FC90H = -55 度。

    00 (2).jpg


  • TA的每日心情

    2019-7-19 07:45
  • 签到天数: 80 天

    [LV.6]常住居民II

     楼主| 发表于 2019-6-27 16:23 | 显示全部楼层
    使用要点
    DS18B20 采用的是单线总线协议方式,即在一条数据线上实现数据的双向传输,而单片机硬件上不支持单总线协议,因此必须采用软件方法来模拟单总线的协议是序来完成对DS18B20 芯片的访问。由于DS18B20 是在一根I/ O 线上读写数据,因此对读写的数据位有严格的时序要求,它有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序: 初始化时序、读时序、写时序。所有时序都是将单片机作为主设备,DS18B20 作为从设备,而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求DS18B20 回送数据,在进行写命令后,主机需启动读时序完成数据接收。

    00.jpg

  • TA的每日心情

    2019-7-19 07:45
  • 签到天数: 80 天

    [LV.6]常住居民II

     楼主| 发表于 2019-6-27 16:29 | 显示全部楼层
    几个应用电路

    02 (2).jpg

    02 (4).jpg

    02 (3).jpg

    02 (1).jpg
    您需要登录后才可以回帖 登录 | 立即注册  

    本版积分规则

    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   ( 蜀ICP备14017632号-3 )
    快速回复 返回顶部 返回列表