永发信息网

求助:AVR单片机ADC热敏电阻查测温度。要疯了

答案:2  悬赏:20  手机版
解决时间 2021-03-24 01:47
10K热敏电阻测温。接法vcc-(10K电阻)-(热敏电阻)-GND。电阻分压法接AVR PA脚
我不知道程序出错在那里,调节温度(由高变低或者由低变低)测出来的温度变化变态的,由大变小再变大变小,有几段变的。要疯了
测温函数如下
#include<。。。。>
const unsigned long NTC_Tem_Table[90] PROGMEM= //热敏电阻 电阻电压 转换表
{
838,830,822,815,807,798,790,782,773,764, //-10~-1
755,746,737,728,719,709,700,690,680,670, //0~9
661,651,641,631,621,611,601,591,581,571, //10~19
561,551,541,531,521,512,502,492,483,473, //20~29
464,455,445,436,427,418,410,401,393,384, //30~39
376,368,360,352,344,337,329,322,315,307, //40~49
301,294,287,281,274,268,262,256,250,244, //50~59
238,233,228,222,217,212,207,202,198,193, //60~69
189,184,180,176,172,168,164,160,157,153 //70~79
};

uint16 ADC_Convert(uint8 ch) //ADC通道选择
{
uint8 i;
uint8 g_advalue[8]; //A/D转换缓冲区
uint16 ret=0;
uint8 max_id=1,min_id=1,max_val=0,min_val=0;
ADMUX=((1< //ADCSRA=_BV(ADEN); //使能ADC,单次转换模式

for(i=0;i<8;i++) //连续转换8次
{
ADCSRA|=_BV(ADSC);
loop_until_bit_is_set(ADCSRA,ADIF); // 等待AD转换结束
ADCSRA|=(1< g_advalue[i]=ADC;
}
ret=0;
for(i=1;i<8;i++)
{
ret+=g_advalue[i];
}
//找出最大值和最小值索引
ret/=7;
for(i=1;i<8;i++)
{
if(g_advalue[i]>ret)
{
if(g_advalue[i]-ret>max_val)
{
max_val=g_advalue[i]-ret;
max_id=i;
}
}
else
{
if(ret-g_advalue[i]>min_val)
{
min_val=ret-g_advalue[i];
min_id=i;
}
}
}
//去掉第一个、最大值和最小值后的平均值
ret=0;
for(i=1;i<8;i++)
{
if((i!=min_id)&&(i!=max_id))
ret+=g_advalue[i];
}
if(min_id!=max_id)
ret/=5;
else
ret/=6;
ADCSRA&=~(1< return ret;
}

//查表读取温度
char CH_Temp(uint8 c)
{
uint8 i;
uint8 temp;
uint16 v;
v=ADC_Convert(c);
for(i=0;i<91;i++)
{
if(v>=pgm_read_word(NTC_Tem_Table+i))
{
temp=i-10;
return temp;
}
}
temp=255;
return temp;
}
int main()
{
PORTA=0x00;
ADCSRA|=(1< ...
while(1)
{
//获取温度并显示
}
}

真的要找人帮帮忙了,自己一个人怎样看都不知道那里错。
先 谢谢了!
最佳答案
呵呵,不知道有电子噪声吗,在热敏电阻上并个电容,不过你的程序我没看,应该是没错,建议用单次转换,转换几次后取平均值波动就小点了! 后来我看了下你转换8次再平均有点多了! 还有你串的电阻是否太大了点!
全部回答
你好! 我现在也用的avr单片机进行电压数据采样,不过我处理方式是用中断方式,我是把采样过来的数据每个通道连续比较250次再取他的最大值,这样得到的值才能接近真实值,你不妨试试我这种方法,你用查询方式的话等待时间太多,可能会影响运行速度的。 如有疑问,请追问。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
守护别人霸气的句子,形容守护的句子
注塑工艺射出时间长短的优点缺点
送女朋友礼物不知道刻什么字好 能不能给点提
清苑县张登镇北和庄村村民委员会在什么地方啊
有源rfid电子标签返回数据时需要读写器发送载
苟开头的名句苏轼,苏轼:苟非吾之所有,虽一
提倡 是什么意思
有没有胜芳到天津的客车时刻表?
北辛文化的文物陶器
3.14的pai字怎么打???
描述智慧的诗歌,形容智慧的古诗词
瓜山立交桥地址在什么地方,想过去办事
我是在中航特玻深加工公司上班,是个玻璃厂,我
已故父亲借了信用社的钱,我必须要还吗?
春日的古诗其中的光景指什么
推荐资讯
考研感觉效率低咋办?一天感觉学不了多少东西
求各种古风音效,挥袖子下跪神马的!!急!!
将点燃的蜡烛置于自制的小孔成像仪(如图3所
太平庄村我想知道这个在什么地方
大金卡式3p空调铜管最长延长几米
ctp胶原蛋白肽营养粉对面瘫有用吗
有一首英文歌的歌词是 i will be your hope i
今天修了一台长虹电视开机电源指示灯亮B+有14
单选题下列说法中正确的是A.静止的物体一定没
吸音板可不可以贴在窗户上来隔音的
平板电脑屏没有了什么也看不见,怎么修?
下列图形中,有对顶角的图形是A.B.C.D.
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?