当前时间:
2014年2月7星期五下午9:10:34
当前位置:首页  »  新闻中心
NTC热敏电阻(温度传感器)电路基础知识发布
来源:本站  更新时间:2018-12-26 09:43:05  查看次数:

     

 
 åˆ¶ä½œArduino温度传感器(热敏电阻教程)

  NTC热敏电阻电路相对简单,价格低廉,组件精确,可以轻松获取项目的温度数据。远程气象站,新能源电池温度保护,家用电器,工业自动化系统以及设备控制和保护电路是热敏电阻理想的一些应用。它们是模拟传感器,因此与需要特殊库和大量代码的数字温度传感器相比,代码相对简单。

  在本文中,热敏电阻生产厂家富温传感工程师将解释热敏电阻的工作原理,然后将向您展示如何设置一个带有Arduino的基本NTC热敏电阻电路,该电路将温度读数输出到串行监视器。

  

NTC热敏电阻的工作原理

热敏电阻是可变电阻,可随温度改变其电阻F发生变化。它们按其电阻对温度变化的响应方式进行分类。负温度系数(NTC)热敏电阻中,电阻随温度的升高而降低。正温度系数(PTC)热敏电阻中,电阻随温度的升高而增加。

NTC热敏电阻是最常见的,这是我们将在本教程中使用的类型。NTC热敏电阻由半导体材料(例如金属氧化物或陶瓷)制成,其被加热和压缩以形成温度敏感的导电材料

导电材料包含允许电流流过它的电荷载流子高温导致半导体材料释放更多电荷载流子。在由氧化铁制成的NTC热敏电阻中,电子是电荷载体。在氧化镍NTC热敏电阻中,电荷载流子是电子空穴

Arduino热敏电阻温度传感器分压电路

 

热敏电阻基本电路

让我们构建一个基本的热敏电阻电路,看看它是如何工作的,这样你就可以在以后将它应用到其他项目中。

 

由于热敏电阻是可变电阻,我们需要在计算温度之前测量电阻。但是,Arduino不能直接测量电阻,它只能测量电压。
 

Arduino将测量热敏电阻和已知电阻之间的电压。这被称为分压器。分压器的等式是:
V_ {out} = V_ {in} \ times(\ frac {R2} {R1 + R2})

就热敏电阻电路中的分压器而言,上述等式中的变量为:
V_ {out}:\ Voltage \介于\ thermistor \和\ known \ resistor \\ V_ {in}:\ V_ {cc},\ ie \ 5V \\ R1:\ Known \ resistor \ value \\ R2:\ Resistance \热敏电阻

这个等式可以重新排列和简化,以解决R2,即热敏电阻的电阻:
R2 = R1 \次(\ frac {V_ {in}} {V_ {out}}  -  1)

最后,Steinhart-Hart方程  用于将热敏电阻的电阻转换为温度读数。

 

连接电路

将热敏电阻和电阻连接到Arduino,如下所示:
Arduino热敏电阻基本设置图

 

电阻值应大致等于热敏电阻的电阻值。在这种情况下,我的热敏电阻的电阻是100K欧姆3950,所以我的电阻也是100K欧姆。

热敏电阻的制造商富温传感会提供NTC热敏电阻的R/T特性表给到您,可以按照的  Arduino Ohm Meter教程,使用Arduino制作欧姆表您只需知道热敏电阻的大小。例如,如果您的热敏电阻电阻为34,000欧姆,则它是一个10K3435热敏电阻。如果它是340,000欧姆,它是一个100K的温控器。

串行监视器温度读数输出代码

连接上面的电路后,将此代码上传到Arduino,将温度读数输出到华氏温度的串行监视器:

int ThermistorPin = 0;
int Vo;
float R1 = 10000;
float logR2, R2, T;
float c1 = 1.009249522e-03, c2 = 2.378405444e-04, c3 = 2.019202697e-07;
 
void setup() {
Serial.begin(9600);
}
 
void loop() {
 
  Vo = analogRead(ThermistorPin);
  R2 = R1 * (1023.0 / (float)Vo - 1.0);
  logR2 = log(R2);
  T = (1.0 / (c1 + c2*logR2 + c3*logR2*logR2*logR2));
  T = T - 273.15;
  T = (T * 9.0)/ 5.0 + 32.0; 
 
  Serial.print("Temperature: "); 
  Serial.print(T);
  Serial.println(" F"); 
 
  delay(500);
}

要以摄氏度显示温度,只需在行的开头插入两条正斜杠(“//”)即可注释掉第18行。

该程序将同时显示摄氏度和华氏度:

int ThermistorPin = 0;
int Vo;
float R1 = 10000;
float logR2, R2, T, Tc, Tf;
float c1 = 1.009249522e-03, c2 = 2.378405444e-04, c3 = 2.019202697e-07;
 
void setup() {
Serial.begin(9600);
}
 
void loop() {
 
  Vo = analogRead(ThermistorPin);
  R2 = R1 * (1023.0 / (float)Vo - 1.0);
  logR2 = log(R2);
  T = (1.0 / (c1 + c2*logR2 + c3*logR2*logR2*logR2));
  Tc = T - 273.15;
  Tf = (Tc * 9.0)/ 5.0 + 32.0; 
 
  Serial.print("Temperature: "); 
  Serial.print(Tf);
  Serial.print(" F; ");
  Serial.print(Tc);
  Serial.println(" C");   
 
  delay(500);
}

 

温度读数的LCD输出代码

要将温度读数输出到  16X2 LCD,请按照我们NTC热敏电阻(温度传感器)电路基础知识的教程,如何在Arduino上设置LCD显示器然后将此代码上传到电路板:

#include <LiquidCrystal.h>
 
int ThermistorPin = 0;
int Vo;
float R1 = 10000;
float logR2, R2, T;
float c1 = 1.009249522e-03, c2 = 2.378405444e-04, c3 = 2.019202697e-07;
 
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
 
void setup() {
Serial.begin(9600);
}
 
void loop() {
 
  Vo = analogRead(ThermistorPin);
  R2 = R1 * (1023.0 / (float)Vo - 1.0);
  logR2 = log(R2);
  T = (1.0 / (c1 + c2*logR2 + c3*logR2*logR2*logR2));
  T = T - 273.15;
  T = (T * 9.0)/ 5.0 + 32.0; 
 
  lcd.print("Temp = ");
  lcd.print(T);   
  lcd.print(" F");
  
  delay(500);            
  lcd.clear();
}

 

NTC热敏电阻典型应用参考电路:




 

  


 

Copyright©版权所有:深圳市富温传感技术有限公司 电话:0755-29402582  
全国免费电话:4009605108 邮箱:sales@fuwenntc.com 地址:深圳市宝安区福海街道塘尾社区福洪工业区4栋4楼 粤ICP备:13020894号
  • 富温传感在线咨询

    富温传感在线咨询