4 有用
3 下载

基于Arduino的DS18B20(数字温度传感器)

文件列表(压缩包大小 45.11K)

免费

概述

在本项目,我将向你展示如何使用Arduino配合DS18B20搭建数字温度计。

需要的元件

硬件

  • Arduino UNO
  • Maxim integrated DS18B20可编程数字温度计
  • 电阻(4.75k)
  • 面包板
  • 杜邦线

软件

  • Arduino IDE
  • Arduino Web编辑器

项目流程

接下来我将向你展示如何在Arduino上使用DS18B20数字温度传感器,以便你测量空气,液体(如水)和地面的温度。

步骤1:关于传感器

  DS18B20是Maxim IC的1-Wire数字温度传感器。以9到12位精度(从-55到125(+/- 0.5))以摄氏度报告度数。每个传感器都有一个唯一的64位序列号,可以在一条数据总线上使用大量传感器。

特征:

  • 独特的1-Wire®接口仅需一个端口引脚即可进行通信
  • 每个设备都有一个唯一的64位串行代码,存储在板载ROM中
  • 多点功能简化了分布式温度感测应用
  • 无需外部组件
  • 可以通过数据线供电。
  • 电源范围为3.0V至5.5V
  • 测量的温度范围为–55°C至+ 125°C(–67°F至+ 257°F),±0.5°C的精度范围为–10°C至+ 85°C
  • 用户可以选择9到12位的温度计分辨率
  • 在750ms(最大)内将温度转换为12位数字
  • 用户定义的非易失(NV)警报设置
  • 警报搜索命令可识别和寻址温度超出编程限制的设备(温度警报条件)
  • 应用包括恒温控制,工业系统,消费产品,温度计或任何热敏系统

步骤2 需要的设备

  • Arduino 板(UNO、DUE 、Micro 等)。
  • DS18B20 传感器
  • 一个 4.7k 电阻
  • 面包板
  • 杜邦线

步骤3 Ardunio库

  在开始之前,请在/ Progam Files(x86)/ Arduino / Libraries(默认)中下载以下库(你也可以在下载区找到它)并将其解压缩,以便将传感器与Arduino板配合使用。

步骤4 连接电路

  首先将传感器插入面包板上,然后按以下顺序使用跳线将其引脚连接到Arduino:引脚1到GND;引脚2到任何数字引脚(本例中为引脚2);引脚3至+5V或+3.3V,最后放上拉电阻。

步骤5 代码

/********************************************************************/
// First we include the 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) 
{ 
 // start serial port 
 Serial.begin(9600); 
 Serial.println("Dallas Temperature IC Control Library Demo"); 
 // Start up the library 
 sensors.begin(); 
} 
void loop(void) 
{ 
 // call sensors.requestTemperatures() to issue a global temperature 
 // request to all devices on the bus 
/********************************************************************/
 Serial.print(" Requesting temperatures..."); 
 sensors.requestTemperatures(); // Send the command to get temperature readings 
 Serial.println("DONE"); 
/********************************************************************/
 Serial.print("Temperature is: "); 
 Serial.print(sensors.getTempCByIndex(0)); // Why "byIndex"?  
   // You can have more than one DS18B20 on the same bus.  
   // 0 refers to the first IC on the wire 
   delay(1000); 
} 

如果一切正常,您应该会看到正在测量的温度,并在 IDE 的串行监视器中显示。

最后

本项目涉及到的文件均可以在下载区找到。 via:https://create.arduino.cc/projecthub/TheGadgetBoy/ds18b20-digital-temperature-sensor-and-arduino-9cc806?ref=platform&ref_id=424_popular___&offset=2

理工酷提示:

如果遇到文件不能下载或其他产品问题,请添加管理员微信:ligongku001,并备注:产品反馈

评论(0)

0/250