DS18B20数字温度传感器参数介绍及示例程序
  eveAonEPtMEX 2023年11月02日 78 0

DS18B20是一种数字温度传感器,具有高精度、数字输出、多点测量等特点。在本文中我们会详细介绍DS18B20的参数详情及示例程序。


1、参数详情

DS18B20的主要参数如下:

(1) 工作电源电压范围:3V~5.5V。

(2) 测量温度范围:-55℃~+125℃。

(3) 分辨率:9~12位(可通过寄存器设置)。

(4) 精度:±0.5℃(-10℃~+85℃范围内)。

(5) 输出格式:数字信号(12位二进制)。

(6) 通信协议:1-Wire。

(7) 封装形式:TO-92、DS18B20+。

DS18B20数字温度传感器参数介绍及示例程序_数据

以上参数详情参考来自于捷配datasheet查询网站:DS18B20


2、示例程序

下面是DS18B20的示例程序,我们使用Arduino IDE编写,实现读取DS18B20的温度值并通过串口输出。在开始编写程序之前,我们需要先将DS18B20连接到Arduino板上。连接方式如下:

DS18B20 VCC管脚 -> Arduino 5V

DS18B20 GND管脚 -> Arduino GND

DS18B20 DQ(数据)管脚 -> Arduino数字输入口

示例程序如下:

#include <OneWire.h> //引入OneWire库
#define DS18B20_PIN 2 //DS18B20数据线连接到Arduino的2号口
OneWire ds(DS18B20_PIN); //定义ds对象,连接DS18B20传感器
void setup() {
  Serial.begin(9600); //初始化串口通信
}
void loop() {
  byte data[2]; //定义存放温度数据的数组,最多两个字节
  ds.reset(); //复位DS18B20传感器
  ds.write(0xcc); //发送SKIP ROM指令
  ds.write(0x44); //发送温度转换指令
  delay(800); //等待转换完成,一般转换时间不超过750ms
  ds.reset(); //复位DS18B20传感器
  ds.write(0xcc); //发送SKIP ROM指令
  ds.write(0xbe); //发送读取温度指令
  data[0] = ds.read(); //读取温度数据低字节
  data[1] = ds.read(); //读取温度数据高字节
  int temperature = (data[1] << 8) + data[0]; //将低、高字节合并成一个整型数值
  if (temperature & 0x8000) { //对于负数温度值,需取反并减一
    temperature = ~temperature + 1; 
    temperature = -temperature;
  }
  float temp = temperature * 0.0625; //计算温度值
  Serial.print("Temperature: "); 
  Serial.print(temp); //串口输出温度值
  Serial.print(" °C");
  Serial.println();
  delay(1000); //延时1秒钟
}

上述程序通过OneWire库实现与DS18B20的通信,包括发送SKIP ROM指令、温度转换指令、读取温度指令等。读取到温度数据后,将低、高字节合并成一个整型数值,并计算出温度值,并通过串口输出。注意程序中需要引入OneWire库,并将DS18B20数据线连接到Arduino的2号口。

总结

本文介绍了DS18B20的参数详情及示例程序。通过上述示例程序的学习,我们可以了解到如何使用DS18B20实现温度的测量,并将测量结果通过串口输出。DS18B20被广泛应用于温度测量领域,有着广泛的应用前景。

DS18B20数字温度传感器参数介绍及示例程序_示例程序_02

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
eveAonEPtMEX