37种传感器(五)之热敏电阻传感器模块+Stduino Nano&UNO
本文转载自:http://www.stduino.com/forum.php?mod=viewthread&tid=27&extra=page%3D1=
关键词:
51、stm32、arduino、stduino、单片机、stduino UNO&Nano、热敏电阻模块
说明:
热敏电阻按照温度系数不同,可以分为正温度热敏电阻器(PTC)和负温度热敏电阻器(NTC)。
热敏电阻典型特点是对温度敏感,不同的温度下表现出不同的电阻值,因此其两端电压随温度变化。正温度系数热敏电阻器(PTC)在温度越高时电阻值越大,负温度系数热敏电阻器(NTC)在温度越高时电阻值越低。
NTC的电阻随温度的变化,可以利用Steinhart-Hart方程来表示:
1/T = A + B•ln® + C•[ln®]
注意:T 为热力学温度,单位为开尔文(k);R 为电阻,单位是欧姆(Ω)。
热力学温度与摄氏温度(t,单位为摄氏度,℃)存在这样的关系:
t=T +273.15
则可知,当前温度(Tsteinhart)的计算公式在C语言中的表达为:
Tsteinhart = 1/(A+Blog(Rth)+Cpow(log(Rth),3))-273.15
这里: T 为绝对温度K(开尔文温度),R 单位是欧姆。
其中系数A\\B\\C由热敏电阻本身性质决定,本模块采用103电阻(10KΩ),其A\\B\\C分别为:0.001129148;0.000234125;0.00000008760741。
至于热敏电阻的当前阻值,需要利用欧姆定律来计算。A0测得的是其分压,则有
A0的范围为0~4095,而V总为5V,定值电阻R0为10KΩ,若A0测得数值为RawADC,则可得:
实验目的:
利用热敏电阻器,监测环境温度变化。
实验器材:
Stduino Uno/Nano;热敏电阻模块。
电路连接:
代码展示:
#include <math.h>double Thermister(int RawADC){double Temp;Temp = log((40960000/RawADC)-10000);Temp = 1 / (0.001129148 + (0.000234125 + (0.0000000876741 * Temp * Temp))* Temp);Temp = Temp - 273.15;return Temp;}void setup(){pinMode(A0,INPUT_ANALOG);Serial.begin(9600);}void loop(){Serial.print(\"当前温度:\");Serial.print(Thermister(analogRead(A0)));Serial.println(\"c\");delay(500);}
实验效果:
打开串口监视器,可以看到现在的温度是23.7℃。此时室外温度是27℃。
这是整个IDE布局:
附:你也可以采取自己搭件电路的方式。