【摘要】介绍了热敏电阻温度传感器经过温度频率变换电路进行模数转换,利用单片机的计算和查表功能对热敏电阻的温度非线性特性进行线性化处理,提高了热敏电阻测温精度。
关键词:热敏电阻;温度传感器;单片机;线性化
1 前言
目前大多利用硬件电路对热敏电阻温度非线性特性进行线性化,再经模/数转换送到单片机进行测量并显示,这样不仅线路复杂,难以消除硬件元器件参数随温度变化而引起温度测量误差,且成本相对较高,利用单片机的计算机和查表功能对热敏电阻温度非线性特性进行线性化处理,可以消除硬件参数随温度变化而引起的测量误差,且成本相对便宜,利于维护。
2 硬件设计
硬件由温度传感器、温度频率变换电路、单片机、显示电路等组成,原理如图1所示。
图1 结构原理图
2.1 温度/频率变换电路
温度/频率变换电路由集成块NE555、电阻R0、温度传感器Rt(CWF51A)、振荡电容C0组成无稳态振荡电路,由集成块NE555第3脚输出频率信号,与单片机输入脚2相连。振荡器频率由表1确定。
表1 NE555第3脚输出状态
2脚 | 6脚 | 7脚 | 3脚 |
≤1/3VCC | <VCC | 开路 | 低 |
>1/3VCC | <2/3VCC | 保持 | 保持 |
>1/VCC | ≥2/3VCC | 导通 | 高 |
2.2 单片机及显示电路
单片机选用美国Microchop公司生产的PIC16C54芯片,该单片机价格低廉,驱动能极强,可直接驱动数码显示(LED),指令简洁,运行速度快,最快执行单周期指令为200ns,自带看门狗电路,抗干扰能力极强,可在恶劣环境工作。该单片机外围线路,如图1所示。
3 计算分析,建立数学模型
热敏电阻CWF51A的特性:
式中 Rto——在温度25℃时的热敏电阻阻值
t——被测温度,℃
我们从式(1)中得知温度传感器热敏电阻的电阻随温度呈指数式变化,是一种非线性关系。
根据表1求出振荡器输出信号低电平、高电平的脉宽,脉宽用X表示。
X低=(Ro+Rt)Coln2 (2)
X高=RtColn2 (3)
由式(2),(3)得
X低-X高=R0C0ln2 (4)
再式(3)除式(4)得:
如选择R0=Rt0,则得
从式(7)中知,测量温度跟硬件使用元器件无关,只要求精确测量低电平、高电平脉宽,单片机非常容易做到,因此可消除硬件电路元器件参数随温度变化而引起的测量误差。
把式(7)中左边进行数字化,取温度变化增量△t=1组成数据表格,如表2示。以便单片机进行数字化处理。
表2 数字化结果(-10℃~+85℃)
t(℃) | Rt/Rto | t(℃) | Rt/Rto | t(℃) | Rt/Rto |
-10 | 5.104 | 22 | 1.133 | 54 | 0.337 |
-9 | 4.843 | 23 | 1.086 | 55 | 0.326 |
-8 | 4.596 | 24 | 1.042 | 56 | 0.315 |
-7 | 4.364 | 25 | 1.000 | 57 | 0.305 |
-6 | 4.146 | 26 | 0.960 | 58 | 0.295 |
-5 | 3.94 | 27 | 0.922 | 59 | 0.285 |
-4 | 3.745 | 28 | 0.885 | 60 | 0.276 |
-3 | 3.562 | 29 | 0.850 | 61 | 0.267 |
-2 | 3.388 | 30 | 0.817 | 62 | 0.259 |
-1 | 3.225 | 31 | 0.785 | 63 | 0.25 |
0 | 3.07 | 32 | 0.755 | 64 | 0.242 |
1 | 2.924 | 33 | 0.726 | 65 | 0.235 |
2 | 2.785 | 34 | 0.698 | 66 | 0.227 |
3 | 2.655 | 35 | 0.672 | 67 | 0.22 |
4 | 2.531 | 36 | 0.647 | 68 | 0.213 |
5 | 2.414 | 37 | 0.622 | 69 | 0.207 |
6 | 2.303 | 38 | 0.599 | 70 | 0.201 |
7 | 2.198 | 39 | 0.577 | 71 | 0.194 |
8 | 2.098 | 40 | 0.556 | 72 | 0.189 |
9 | 2.004 | 41 | 0.536 | 73 | 0.183 |
10 | 1.914 | 42 | 0.516 | 74 | 0.177 |
11 | 1.829 | 43 | 0.498 | 75 | 0.172 |
12 | 1.748 | 44 | 0.480 | 76 | 0.167 |
13 | 1.672 | 45 | 0.463 | 77 | 0.162 |
14 | 1.599 | 46 | 0.447 | 78 | 0.157 |
15 | 1.53 | 47 | 0.431 | 79 | 0.153 |
16 | 1.464 | 48 | 0.416 | 80 | 0.148 |
17 | 1.402 | 49 | 0.401 | 81 | 0.144 |
18 | 1.343 | 50 | 0.388 | 82 | 0.14 |
19 | 1.286 | 51 | 0.374 | 83 | 0.136 |
20 | 1.232 | 52 | 0.361 | 84 | 0.132 |
21 | 1.181 | 53 | 0.349 | 85 | 0.128 |
把上述表格数据存入单片机ROM中。
式(7)右边值由单片机测量计算得到,用Yt来表示在温度t℃时的值。根据Yt在上述数据表格中查找,使Yt夹在两点Rt/Rto之间,这两点为Yn-1、Yn,则得:
Tt=Yn-1+(Yn-Yn-1)△t
选择t的增量制作数据表格,要根据测温要求和单片机ROM容量来确定(△t≤1)。
实测对比结果,如表3示。
表3 实测结果对比(℃)
点温计0.01℃ | 测量结果 | 点温计0.01℃ | 测量结果 |
-9.1 | -9.1 | 50.91 | 50.9 |
0.9 | 0.9 | 60.91 | 50.9 |
10.9 | 10.9 | 70.95 | 70.9 |
20.9 | 20.9 | 80.92 | 80.9 |
30.9 | 30.9 | 84.99 | 84.9 |
40.89 | 40.9 |
4 软件框图
图2 程序框图
5 结论
由NE555和单片机16C54构成测温电路,成本极低,精度又高,且能消除其它元器件参数变化引起测温误差,可广泛应用于家用电器、锅炉控制。