首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用EVK1100读取热敏电阻不正确的温度值

用EVK1100读取热敏电阻不正确的温度值
EN

Stack Overflow用户
提问于 2015-12-21 08:50:59
回答 1查看 338关注 0票数 1

我想从热敏电阻中得到温度,所以我做了一个分压器(3.3V到10k电阻和接地之间10k热敏电阻),我读取了10k电阻和热敏电阻之间的ADC。BCOEFFICIENT为3977,标称温度为25℃,采用简单的B参数方程。我不知道我在哪里做错了,我把室温理解为10.5摄氏度,这个温度应该在24摄氏度左右。以下是我在AVR工作室开发的温度传感器程序的一部分,

代码语言:javascript
复制
 #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中使用下面的线路。

代码语言:javascript
复制
ke1 = adc_get_value(peak_adc2,peak2)*3.3/1024;

我两个人的电压都一样。不知道我在哪里做错了,希望有人能指引我走向正确的方向

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-23 06:08:59

在我看来,您的代码是正确的,我怀疑硬件问题可能是罪魁祸首。

你似乎无意中在模数转换器输入和+3.3V基准之间连接了两个10K-欧姆的拉出电阻:也许其中一个已经在EVK1100板上填充,而你又增加了一个外部连接到热敏电阻上的电阻。这相当于将两个10K欧姆电阻并联,这将相当于一个5K欧姆电阻与热敏电阻串联。在25°C时,热敏电阻Rt为10K欧姆,产生的电压为:

代码语言:javascript
复制
+3.3V * (Rt / (Rt + 5K))

= 2.20V

而不是正确的+1.65V。这个数字非常接近你所看到的结果(+2.17V @ 24°C)。

您可以通过查看EVK1100的原理图和/或PCB来验证这一假设,以确定从ADC输入到+3.3V是否连接了10K-欧姆拉出电阻。如果这是问题所在,移除两个电阻中的一个,您应该看到正确的行为。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34391845

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档