目录
介绍
热敏电阻是一种可变电阻元件,其电阻随温度的变化而变化。电阻值的变化是温度的量度。
热敏电阻分为PTC(正温度系数)或NTC(负温度系数)。
它们可用作限流器,温度传感器,过流保护器等。
连接图
连接热敏电阻与MSP-EXP430G2 TI Launchpad
例
使用热敏电阻测量温度。
这里,使用10kΩ的NTC型热敏电阻。NTC为10kΩ意味着该热敏电阻在25°C时的电阻为10kΩ。
10kΩ电阻两端的电压提供给MSP-EXP430G2 TI Launchpad板的ADC。
使用简单的分压器网络公式可以发现热敏电阻的电阻。
Rth是热敏电阻的电阻
Vout是ADC测量的电压
使用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);
}