0°

(二十二)msp430进阶:热敏电阻与MSP-EXP430G2 TI Launchpad连接

介绍

 热敏电阻是一种可变电阻元件,其电阻随温度的变化而变化。电阻值的变化是温度的量度。

热敏电阻分为PTC(正温度系数)或NTC(负温度系数)。

它们可用作限流器,温度传感器,过流保护器等。

 

连接图

(二十二)msp430进阶:热敏电阻与MSP-EXP430G2 TI Launchpad连接

连接热敏电阻与MSP-EXP430G2 TI Launchpad

 

使用热敏电阻测量温度。

这里,使用10kΩ的NTC型热敏电阻。NTC为10kΩ意味着该热敏电阻在25°C时的电阻为10kΩ。

10kΩ电阻两端的电压提供给MSP-EXP430G2 TI Launchpad板的ADC。

使用简单的分压器网络公式可以发现热敏电阻的电阻。

(二十二)msp430进阶:热敏电阻与MSP-EXP430G2 TI Launchpad连接

Rth是热敏电阻的电阻

(二十二)msp430进阶:热敏电阻与MSP-EXP430G2 TI Launchpad连接

Vout是ADC测量的电压

(二十二)msp430进阶:热敏电阻与MSP-EXP430G2 TI Launchpad连接

使用Steinhart-Hart方程可以从热敏电阻电阻中找出温度。

以开尔文为单位的温度= 1 / (A + B[ln(R)] + C[ln(R)]^3)  

其中A = 0.001129148, B = 0.000234125 and C = 8.76741*10^-8

R是热敏电阻。

 

注意: MSP-EXP430G2 TI Launchpad主板具有512字节的RAM,可轻松上传,尤其是在使用不同库时。有时您需要串行缓冲区足够大以包含所需的数据,并且您必须修改串行库的缓冲区大小。在做这些事情时,我们必须确保代码不会使用超过70%的RAM。这可能导致代码以不稳定的方式工作,有时运行良好并且在其他方​​面失败。 

有些时候RAM使用率可能会超过70%并且代码将完全正常工作,并且即使RAM使用率为65%,代码也无法工作。 

在这种情况下,可能需要对缓冲区大小和/或变量进行一些试验和错误。

使用热敏电阻测量温度的程序

#include 
const int thermistor_output = A3;

void setup() {
  Serial.begin(9600);	/* Define baud rate for serial communication */
}

void loop() {
  int thermistor_adc_val;
  double output_voltage, thermistor_resistance, therm_res_ln, temperature; 
  thermistor_adc_val = analogRead(thermistor_output);
  output_voltage = ( (thermistor_adc_val * 3.3) / 1023.0 );
  thermistor_resistance = ( ( 3.3 * ( 10.0 / output_voltage ) ) - 10 ); /* Resistance in kilo ohms */
  thermistor_resistance = thermistor_resistance * 1000 ; /* Resistance in ohms   */
  therm_res_ln = logf(thermistor_resistance);/*  Steinhart-Hart Thermistor Equation: *//*  Temperature in Kelvin = 1 / (A + B[ln(R)] + C[ln(R)]^3)   *//*  where A = 0.001129148, B = 0.000234125 and C = 8.76741*10^-8  */
  temperature = ( 1 / ( 0.001129148 + ( 0.000234125 * therm_res_ln ) + ( 0.0000000876741 * therm_res_ln * therm_res_ln * therm_res_ln ) ) ); /* Temperature in Kelvin */
  temperature = temperature - 273.15; /* Temperature in degree Celsius */
  Serial.print("Temperature in degree Celsius = ");
  Serial.print(temperature);
  Serial.print("\t\t");
  Serial.print("Resistance in ohms = ");
  Serial.print(thermistor_resistance);
  Serial.print("\n\n");
  delay(1000);
}

完整程序下载

限制以下用户组阅读此隐藏内容

请先登录

您的用户组:

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论