Arduino_DS18B20


库教程

1. DS18B20介绍

DS18B20是常用的数字温度传感器,使用集成芯片,采用单总线技术,能够有效的减小外界的干扰,提高测量的精度。其输出的是数字信号,接线非常方便,封装成不同方式可以应用于不同场合,如管道式,螺纹式,磁铁吸附式,不锈钢封装式。

主要特点:

采用单总线的接口方式。只需要一条数据线就能双向通讯。
测量范围宽,精度高。其测量范围为-55℃ — +125℃ ,在-10—+85℃ 范围内,精度为±0.5℃ 。
多点组网功能。多个DS18B20可以并联在惟一的三线上,实现多点测温。
供电方式灵活。可通过内部寄生电路从数据线上获取电源。
测量参数可配置。DS18B20的测量分辨率可通过程序设定9—12位。
掉电保护功能。内部含有EEPROM,在系统掉电以后,仍可保存分辨率及报警温度的设定值。


2. 实验材料
Due开发板
配套USB数据线
面包板及配套连接线
DS18B20
10K直插电阻
3. 安装库
本实验用到两个库,分别为「OneWire」和「DallasTemperature」,前者是单总线库,后者是在前者基础上针对Dallas温度传感器封装的库。

在IDE中点击「Tools」—「加载库」—「管理库」,查找「OneWire」,选择最新版本进行安装。目前最新版本为2.3.4。


查找「DallasTemperature」,选择最新版本进行安装。目前最新版本为3.8.0。


4. 实验步骤
1. 根据原理图搭建电路图。
线路连接非常简单,DS18B20的VCC、DQ、GND分别连接到开发板的5V、4、GND。10K电阻一段连接VCC,另一端连接DQ,上拉电阻用于提高I/O口的驱动能力。

#include 

#include 
#define ONE_WIRE_BUS 4
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);

void setup() {
  Serial.begin(9600);
  sensors.begin();
}

void loop() {
  
  sensors.requestTemperatures();
  float tep = sensors.getTempCByIndex(0);
  Serial.print("Temperature for the device :");
  Serial.println(tep);
  delay(2000);
}