用户工具

站点工具


ocrobot:alpha:ds18b20:main

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
ocrobot:alpha:ds18b20:main [2018/12/17 01:30] – [参数] 董凯萍ocrobot:alpha:ds18b20:main [2023/06/07 04:23] (当前版本) – 外部编辑 127.0.0.1
行 1: 行 1:
 +====== 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:alpha:ds18b20:ds未焊接侧面435.png?nolink|}}{{:ocrobot:alpha:ds18b20:ds未焊接正面435.png?nolink|}}
 +===== 示例程序 =====
 +需使用OCROBOT_APLHA_DS18B20_Module库
 +
 +github:https://github.com/534659123/OCROBOT_APLHA_DS18B20_Module
 +
 +
 +例程:
 +
 +<code cpp>
 +#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);
 +}
 +</code>
 +
 +
 +=====修改设备地址=====
 +本设备默认地址为**1** 十六进制:**0x01**,如需自定义I2C地址,首先准备如下程序
 +<code cpp>
 +#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:
 +
 +}
 +</code>
 +
 +自行修改程序中需要写入的地址,程序显示OK后,如下图拨动开关,断电后即可,如需恢复默认地址或忘记修改地址,将开关拨回即可
 +<WRAP lift round tip 60%>
 +请注意:以上程序必须在I2C地址有效情况下才能正确写入,建议写入时保证开关在默认地址位置。
 +
 +并且任何时候改变开关位置,请重新上电使其生效
 +</WRAP>
 +
 +==== 拨动开关示意图 ====
 +{{:ocrobot:alpha:gps:拨动开关435默认地址.png?nolink|}}
 +{{:ocrobot:alpha:gps:拨动开关435更改地址.png?nolink|}}
 +===== 下载 =====
 +**数据手册:**
 +
 +**原理图:**
 +{{ :ocrobot:alpha:ds18b20:alpha_ds18b20_r1.pdf |ALPHA DS18B20 R1}}