ALPHA DS18B20
经过I2C接口转换的标准防水型DS18B20温度传感器
特点
参数
DS18B20
支持读取温度
支持读取设备唯一ID
特点
DS18B20 单线数字温度传感器,即“一线器件”,其具有独特的优点:
( 1 )采用单总线的接口方式 与微处理器连接时仅需要一条口线即可实现微处理器与 DS18B20 的双向通讯。单总线具有经济性好,抗干扰能力强,适合于恶劣环境的现场温度测量,使用方便等优点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。
( 2 )测量温度范围宽,测量精度高 DS18B20 的测量范围为 -55 ℃ ~+ 125 ℃ ; 在 -10~+ 85°C范围内,精度为 ± 0.5°C 。
( 3 )在使用中不需要任何外围元件。
( 4 )持多点组网功能 多个 DS18B20 可以并联在惟一的单线上,实现多点测温。
( 5 )供电方式灵活 DS18B20 可以通过内部寄生电路从数据线上获取电源。因此,当数据线上的时序满足一定的要求时,可以不接外部电源,从而使系统结构更趋简单,可靠性更高。
( 6 )测量参数可配置 DS18B20 的测量分辨率可通过程序设定 9~12 位。
( 7 ) 负压特性电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。
( 8 )掉电保护功能 DS18B20 内部含有 EEPROM ,在系统掉电以后,它仍可保存分辨率及报警温度的设定值。 DS18B20 具有体积更小、适用电压更宽、更经济、可选更小的封装方式,更宽的电压适用范围,适合于构建自己的经济的测温系统,因此也就被设计者们所青睐。
参考图片
示例程序
需使用OCROBOT_APLHA_DS18B20_Module库
github:https://github.com/534659123/OCROBOT_APLHA_DS18B20_Module
例程:
#include "OCROBOT_DS18B20.h" DS18B20 ds(0x01); void setup() { ds.begin(); Serial.begin(9600); } void loop() { float Temperature = ds.readTemperature(); Serial.println(Temperature); //print Temperature byte ID[8]; ds.readID(ID); for(byte num = 0;num<8;num++) { Serial.print(ID[num]); Serial.print(","); } Serial.println(); delay(1000); }
修改设备地址
本设备默认地址为1 十六进制:0x01,如需自定义I2C地址,首先准备如下程序
#include <Wire.h> /***********/ byte I2CAddr = 10; //需要修改的地址,请自行修改 (取值范围1-127) /***********/ void setup() { Wire.begin(); // 初始化I2C接口 Serial.begin(9600); Wire.beginTransmission(1); //设备默认地址 本设备DS18B20模块 = 1 Wire.write(200); // 修改地址的操作码 Wire.write(I2CAddr); //向I2C设备写入新地址 Wire.endTransmission(); // stop transmitting Serial.println("OK"); //串口显示OK则完成写入,拨动模块开关并重新上电即可 } void loop() { // put your main code here, to run repeatedly: }
自行修改程序中需要写入的地址,程序显示OK后,如下图拨动开关,断电后即可,如需恢复默认地址或忘记修改地址,将开关拨回即可
请注意:以上程序必须在I2C地址有效情况下才能正确写入,建议写入时保证开关在默认地址位置。
并且任何时候改变开关位置,请重新上电使其生效
拨动开关示意图
下载
数据手册:
原理图: ALPHA DS18B20 R1