使用DS18B20温度传感器采集温度

来源:本站
导读:目前正在解读《使用DS18B20温度传感器采集温度》的相关信息,《使用DS18B20温度传感器采集温度》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《使用DS18B20温度传感器采集温度》的详细说明。
简介:Rainbow开发包中已经封装了DTH11温湿度传感器,按照我的想法,同类型的传感器有了一种就可以了,本不想做DS18B20的封装,但是前两天有个朋友让我给他做个项目,需要测液体的温度,用DHT11个头太大,主要用于测室温,而DS18B20有用于测量液体温度的封装,非常方便使用。迫于无奈,今天就花了半天时间做了个小小的封装,在Rainbow开发板上通过了测试。


使用DS18B20非常简单,和DHT11差不多,按照下列步骤:

1、定义DS18B20对象,设定DS18B20的DQ数据线所使用的GPIO,如:DS18B20 ds(PC1);

2、调用read()方法进行温度采集,如果返回DS18B20::OK,表示采集成功,其它值表示失败

3、采集成功之后就可以使用对象的getCelsius()和getFahrenheit()分别获取到摄氏温度和华氏温度

我这次试验选用了PC3与DS18B20的DQ管脚相连,这个管脚是用于DHT11数据采集,带有一个4.7K上拉电阻,电路原理图和实际接线图如下:

使用DS18B20温度传感器采集温度使用DS18B20温度传感器采集温度

在软件包的“ProjectsDS18B20”文件夹包含了本文的完整工程,可以直接编译、烧写和调试。来看看main.cpp的代码:

#include "WProgram.h"

#include "DS18B20.h"

//接到DHT11_DATA_PIN,通过4.7K电阻上拉

DS18B20 ds(DHT11_DATA_PIN);

void setup()

{

//启用默认串口,波特率9600

Serial.start();

}

void loop()

{

//数据采集成功

if(ds.read() == DS18B20::OK)

{

Serial.print("Celsius:");

Serial.println(ds.getCelsius());

Serial.print("Fahrenheit:");

Serial.println(ds.getFahrenheit());

delay(5000);

}

}

int main(void)

{

//初始化开发板

boardInit();

setup();

while(1) loop();

}

程序非常简单,就不再啰嗦,将USART3和USB-TTL模块连接,在串口调试工具中可以看到运行效果:

使用DS18B20温度传感器采集温度

提醒:《使用DS18B20温度传感器采集温度》最后刷新时间 2024-03-14 01:14:56,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《使用DS18B20温度传感器采集温度》该内容的真实性请自行鉴别。