居家实验:使用DS18B20&Arduino探究热传导规律

居家实验:使用DS18B20&Arduino探究热传导规律

1.DS18B20温度传感器

DS18B20温度传感器常见的数字温度传感器,不贵,4元到10元之间,淘宝上常见两种封装,一种是直插式,如图1;另一种是带防水探头,长得很严肃的样子。还有一些已经封装在模块上了,不要买,学不到东西。

图1 温度传感器DS18B20直插式封装

图2 温度传感器DS18B20防水型

DS18B20测量范围为-55℃ 至+125℃ ,在-10至+85℃ 范围内,精度为±0.5℃。

2.接线图和实物图

DS18B20就3只脚,平面朝向自己,由左至右的GND、DQ、VCC,分别连接Arduino的GND、D2和5V。一般在VCC和DQ之间连接一个4.7K至10K电阻,起上拉作用,以提高I/O口驱动能力。

接线图直接网上找了一个,如图3。

图3 直插DS18B20接线图

实物连接如图4。其实连接非常简单,看一眼实物连接图的目的,是未来在代码里面会申明bus总线时,要和数字口对应上。

图4 直插DS18B20实物连接图

3.测量用手指捏住元件时温度T(K)与t(s)的关系。

实验时,位于房间门空气流通处的煤油温度计指示温度大约23℃,笔记本附近大约26℃,用手指捏住元件后,每1秒钟采集1次温度数值。当采集到的连续变化范围非常小、且本身值也很小的温度,应该视为环境温度;连续变化范围非常小、但本身值却很大的温度,应该视为最终温度。实际采集,环境温度26.44℃,最终温度32.88℃。串口数据采集,如图5。

图5 串口采集DS18B20测量的温度数据

当手指始终捏住DS18B20塑料封装时,采集的温度数据与时间数据,如表1。

表1 直插DS18B20实物连接图

对表1数据作图,猜想及建模,如图6。事实上,按照理想的一维热传导模型看,手指捏住塑料封装时可视为手指温度不变,二者温差不断减小,由傅里叶导热定律,温度T与时间t的函数关系是可以推导出来的。图6给出拟合方程

我想这个方程,应该能刺激脑神经,想起来电容器充电、汽车恒功率启动、一类单杆电磁感应、另类匀变速直线运动,它们有相类似的数学规律。

图6 温度T和时间t的指数关系拟合

4.逃不开的技术补充

实质上我们之所以能够把这个实验居家化,还是因为我们使用了Arduino;虽然Arduino很简单,但它也毕竟是单片机。仍需补充说明Arduino相关的内容。

一个是DS18B20需要的两个库,OneWire和DallasTemperature,分别是单总线库和对DS18B20的封装库。直接在IDE里面安装即可。

另一个则是代码,复制之后,稍稍理解即可。我也这么做的。

#include<OneWire.h>
#include<DallasTemperature.h>
#define BUS 2
OneWire onewire(BUS);
DallasTemperature sensors(&onewire);
void setup() {
Serial.begin(9600);
sensors.begin();
}

void loop() {
sensors.requestTemperatures();
Serial.println(sensors.getTempCByIndex(0));
delay(1000);
}

烧写,采集串口,到Logger Pro里面做图即可。顺带,好象不能用Excel,它不能拟合型曲线。

(0)

相关推荐