(六)arduino进阶:DS18B20温度传感器使用

释放双眼,带上耳机,听听看~!

在本教程中,您将学习如何将DS18B20温度传感器与Arduino配合使用。

温度将打印在Arduino IDE的串行监视器上。

第一步 材料准备

(六)arduino进阶:DS18B20温度传感器使用

对于这个项目,您将需要:

  • Arduino uno
  • 面包板
  • DS18B20温度传感器
  • 4.7K电阻
  • 若干导线

第二步 原理介绍

(六)arduino进阶:DS18B20温度传感器使用

DS18B20通过1-Wire总线进行通信,根据定义,只需要一条数据线(和地线)与Arduino进行通信。它的工作温度范围为-55°C至+ 125°C,在-10°C至+ 85°C的温度范围内精确到±0.5°C。此外,DS18B20可以直接从数据线获得电源(“寄生电源”),无需外部电源。

每个DS18B20都有一个独特的64位串行代码,允许多个DS18B20在同一条1-Wire总线上运行。因此,使用一个微处理器来控制连接的多个DS18B20很简单。可以从此功能中受益的应用包括HVAC环境控制,建筑物内部的温度监控系统,设备或机器,以及温度控制系统。

基本特征:

独特的1-Wire接口仅需一个端口引脚即可实现通信

每个器件都有一个存储在板载ROM中的唯一64位串行代码

不需要外部组件

可以从数据线供电; 电源范围为3.0V至5.5V

测量温度范围为-55°C至+ 125°C(-67°F至+ 257°F)

±0.5°C精度-10°C至+ 85°C

第三步 电路连接

(六)arduino进阶:DS18B20温度传感器使用

上面的电路连接可以连接到面包板上。

  • 传感器的Vcc和GND引脚 – > Arduino的VCC和GND
  • 信号(中间引脚) – > Arduino引脚2
  • 信号引脚与4.7K电阻串接到5V引脚,如上图所示

第四步 编写程序

[scu name=”arduino-ide-post” platform=”arduino:avr:uno”]

/* Arduino DS18B20温度传感器教程
 */


//Include libraries
#include <OneWire.h> 
#include <DallasTemperature.h>

// Data wire is plugged into pin 2 on the Arduino
#define ONE_WIRE_BUS 2
// Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);
// Pass our oneWire reference to Dallas Temperature. 
DallasTemperature sensors(&oneWire);

void setup(void)
{
  Serial.begin(9600); //Begin serial communication
  Serial.println("Arduino Digital Temperature // Serial Monitor Version"); //Print a message
  sensors.begin();
}

void loop(void)
{ 
  // Send the command to get temperatures
  sensors.requestTemperatures();  
  Serial.print("Temperature is: ");
  Serial.println(sensors.getTempCByIndex(0)); // Why "byIndex"? You can have more than one IC on the same bus. 0 refers to the first IC on the wire//Update value every 1 sec.
  delay(1000);
}

[/scu]

在上面的程序中:

Serial.println(sensors.getTempCByIndex(0)); 摄氏温度返回温度
Serial.println(sensors.getTempFByIndex(0)); 以华氏温度返回温度

第五步 上传与验证

程序上传之后,可以从串口监视器查看到当前测得的温度。

除了本教程的那种温度传感器,还有一种版本是防水的,可以用来测水温,如下图所示,如果没有也可以用下面的那种替代:

(六)arduino进阶:DS18B20温度传感器使用

给TA打赏
共{{data.count}}人
人已打赏
ArduinoArduino-进阶

(五)arudino进阶:LM35温度传感器使用方法

2018-9-27 17:11:47

ArduinoArduino-进阶

(七)arduino进阶:超声波传感器使用

2018-9-28 13:14:13

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索
'); })();