我想从热敏电阻获取温度,所以我制作了一个分压器(3.3V 到 10k 电阻器和接地之间的 10k 热敏电阻器)我读取了 10k 电阻器和热敏电阻之间的 ADC。BCOEFFICIENT 是 3977,标称温度是 25C,我使用简单的 B 参数方程。我不确定我在哪里做错了,我将室温读取为 10.5C,这应该是 24C 左右。以下是我用于温度传感器的程序部分(在AVR工作室开发),
#define TEMPERATURENOMINAL 25
#define TERMISTORNOMINAL 10000
#define BCOEFFICIENT 3977
#define SERIESRESISTOR 10000
{
float ke1,tempa,xin
ke1 = adc_get_value(peak_adc2,peak2);
xin=(1023/ke1)-1;
xin=SERIESRESISTOR/xin;
tempa=xin/TERMISTORNOMINAL;
tempa=log(tempa);
tempa/= BCOEFFICIENT;
tempa+=1.0/(TEMPERATURENOMINAL + 273.15);
tempa=1.0/tempa;
tempa-=273.15;
dip204_set_cursor_position(1,3);
//sprintf(ui, "Temp is %.2f deg", Ref);
sprintf(ui, "Temp is %.2f deg", tempa);
dip204_write_string(ui);
}
我使用万用表检查了电压,例如在热敏电阻和 10k 电阻之间以及在 EVK 1100 中使用以下行
ke1 = adc_get_value(peak_adc2,peak2)*3.3/1024;
我在两者中得到相同的电压。不知道我在哪里做错了,希望有人指导我正确的方向