如何使用带有热敏电阻的Arduino来读取温度并在LCD上显示

描述

使用热敏电阻是一种简单而廉价的感测温度的方法。为了用热敏电阻测量精确的温度,需要一个微控制器。因此,在这里我们使用带有热敏电阻的Arduino来读取温度,并使用LCD来显示温度。它可用于各种项目,例如远程气象站,家庭自动化以及工业和电子设备的保护和控制。

在本教程中,我们将把热敏电阻与Arduino接口,并在LCD上显示温度。

所需组件:

NTC热敏电阻 10k

Arduino (任何版本)

10k 欧姆电阻器

连接线

电路图

热敏电阻

热敏电阻根据其中电阻的变化提供温度值。在该电路中,Arduino中的模拟引脚与热敏电阻连接,只能提供ADC值,因此不直接计算热敏电阻的电阻。因此,通过将已知的10k欧姆电阻与NTC串联,使电路类似于上图所示的分压器电路。使用此分压器,我们可以获得热敏电阻两端的电压,使用该电压我们可以得出热敏电阻在该时刻的电阻。最后,我们可以通过将热敏电阻的电阻放入斯坦-哈特方程中获得温度值,如下一节所述。

热敏电阻

该电路中的关键元件是热敏电阻,它已被用于检测温度升高。热敏电阻是温度敏感电阻,其电阻随温度变化。有两种类型的热敏电阻NTC(负温度系数)和PTC(正温度系数),我们使用NTC型热敏电阻。NTC热敏电阻是一种电阻器,其电阻随着温度的升高而减小,而在PTC中,电阻会随着温度的升高而增加。

热敏电阻

热敏电阻

使用热敏电阻计算温度:

我们从分压器电路中得知:

热敏电阻

Vout= (Vin * Rt) / (R + Rt)

因此,Rt 的值将是:

Rt = R (Vin/Vout) – 1

这里,Rt将是热敏电阻的电阻,R将是10k欧姆电阻。

该公式用于根据输出电压Vo的测量值计算热敏电阻电阻。我们可以从 Arduino 引脚 A0 处的 ADC 值中获取电压输出的值,如下所示的 Arduino 代码。

根据热敏电阻电阻计算温度:

在数学上,热敏电阻电阻只能借助斯坦-哈特方程计算。

T = 1 / (A + Bln(Rt) + Cln (Rt)3 )

其中,A、B 和 C 是常数,Rt 是热敏电阻电阻,ln 表示对数。

项目中使用的热敏电阻的常量值为A = 1.009249522×10−3, B = 2.378405444×10−4, C = 2.019202697×10−7.这些常数值可以通过输入热敏电阻在三种不同温度下的三个电阻值从计算器中获得。您可以直接从热敏电阻的数据表中获取这些常数值,也可以获得不同温度下的三个电阻值,并使用给定的计算器获取常数值。

热敏电阻

因此,为了计算温度,我们只需要热敏电阻电阻的值。从上面给出的计算中获得 Rt 的值后,将值放入斯坦-哈特方程中,我们将得到单位开尔文的温度值。由于输出电压的微小变化会导致温度变化。

阿杜伊诺热敏电阻代码
本文末尾给出了用于将热敏电阻与Arduino接口的完整Arduino代码。在这里,我们已经解释了其中的几个部分。

为了执行数学运算,我们使用头文件“#include ”,LCD头文件是“#include ”。我们必须使用代码分配LCD的引脚

LiquidCrystal lcd(44,46,40,52,50,48);
为了在启动时设置LCD,我们必须在void设置部分编写代码

Void setup(){
lcd.begin(16,2);
lcd.clear();
}
为了使用热敏电阻的电阻通过斯坦-哈特方程计算温度,我们在代码中执行一些简单的数学方程,如上面的计算中所述:

float a = 1.009249522e-03, b = 2.378405444e-04, c = 2.019202697e-07;
float T,logRt,Tf,Tc;
float Thermistor(int Vo) {
logRt = log(10000.0*((1024.0/Vo-1))); 
T = (1.0 / (A + B*logRt + C*logRt*logRt*logRt));// We get the temperature value in Kelvin from this Stein-Hart equation
Tc = T - 273.15; // Convert Kelvin to Celsius
Tf = (Tc * 1.8) + 32.0; // Convert Kelvin to Fahrenheit
return T;
}
在下面的代码中,功能热敏电阻从Arduino的模拟引脚读取值,

lcd.print((Thermistor(analogRead(0))));
并在下面的代码中获取该值,然后开始打印计算

float Thermistor(int Vo)

使用热敏电阻和Arduino测量温度:

热敏电阻

要为 Arduino 供电,您可以通过 USB 将其供电到笔记本电脑或连接 12v 适配器。LCD与Arduino接口以显示温度值,热敏电阻根据电路图连接。模拟引脚(A0)用于每时每刻检查热敏电阻引脚的电压,在通过Arduino代码使用Stein-Hart方程进行计算后,我们能够获得温度并将其以摄氏度和华氏度显示在LCD上。

#include

#include "LiquidCrystal.h"

LiquidCrystal lcd(44,46,40,52,50,48);

float A = 1.009249522e-03, B = 2.378405444e-04, C = 2.019202697e-07;

float T,logRt,Tf,Tc;

float Thermistor(int Vo) {

logRt = log(10000.0*((1024.0/Vo-1))); 

T = (1.0 / (A + B*logRt + C*logRt*logRt*logRt)); // We get the temperature value in Kelvin from this Stein-Hart equation

Tc = T - 273.15; // Convert Kelvin to Celcius

Tf = (Tc * 1.8) + 32.0; // Convert Kelvin to Fahrenheit

return T;

}


void setup(){

lcd.begin(16,2);

lcd.clear();

}


void loop() 

{

lcd.setCursor(0,0);

lcd.print("Temp:");

lcd.print((Thermistor(analogRead(0))));

lcd.print("k ");



lcd.setCursor(0,1);

lcd.print((Tc));

lcd.print(" C ;");


lcd.setCursor(9,1);

lcd.print((Tf));

lcd.print(" F");

delay(800);

}

 


 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分