[温湿度传感器] NTC测温度有1到2度的跳动,大神们帮看看这样取均值有没有问题?

unmwq   2014-9-17 23:35 楼主
采用的是STC12C5A60S2单片机,用的是进中断采集AD,在串口上的温度总是不稳定,然后采用多取几个温度求均值,但是还是有1到2度的跳动,大神们看看这样取均值有没有什么错误。
  1. void main()
  2. {
  3.         unsigned char i,j,Te;
  4.         int T[30],sum=0;
  5.         InitUart();
  6.         InitADC();
  7.         IE=0xa0;
  8.         while(1)
  9.         {
  10.                 Delay(10);
  11.                 Rt=2*ADC_RES/(256-ADC_RES);
  12. //                SendData(ch);
  13.                 for(i=0;i<131;i++)
  14.                 {
  15.                         if(Rt<RtData[i]&&Rt>RtData[i+1])
  16.                         {
  17.                                 T[j]=temp[i];
  18.                                 j++;
  19.                         }       
  20.                 }
  21. //                        SendData(j);
  22.                 //        SendData(T[j-1]);
  23.                 sum=sum+T[j-1];
  24.         //        SendData(sum);
  25.                 if(j==30)
  26.                 {
  27.                         SendData(sum);
  28.                         j=0;
  29.                         Te=sum/30;
  30.                         sum=0;
  31.                         Msb= Te/10;
  32.                         Lsb= Te%10;
  33.                         Msb<<=4;
  34.                         Msb|=Lsb;
  35.                         SendData(Te);
  36.                         SendData(Msb);        //bin_bcd
  37.                         SendData(Rt);
  38.                         SendData(ADC_RES);
  39.         }  
  40. void adc_isr() interrupt 5 using 1
  41. {
  42.         ADC_CONTR&=!ADC_FLAG;         //clear ADC interrupt flag
  43.         ADC_CONTR=ADC_POWER|ADC_SPEEDLL|ADC_START|ch;
  44. }

回复评论 (7)

2推荐 dcexpert 

NTC虽然精度不是很高,但它的稳定性还是非常好的。可能需要在电源、基准等上多看看。
点赞  2014-9-18 09:43
看看是硬件采样是否有大波动,
作为一个水军,就是尽量的多回帖,因为懂的技术少,所以回帖水分大,见谅! EEWORLD开发板置换群:309018200,——电工们免费装β的天堂,商家勿入!加群暗号:喵
点赞  2014-9-18 00:28
引用: elvike 发表于 2014-9-18 00:28
看看是硬件采样是否有大波动,

采集到的ad值是有波动的!并联了电容了颗104电容也是!我的那个求均值那段代码逻辑上有没有问题?
点赞  2014-9-18 00:39
NTC的精度本来就不好,不过数值挑动就是它的不对了
点赞  2014-9-18 08:54
每个人有自己的编写方式,好歹加一下注释嘛  这样让人看了很累,没信心看下去。。
1.建议你检测下电源电压波动范围,基准电压波动范围,如果太大要加滤波,这是硬伤
2.两次AD过程需要一定的延时。
3.你应该是采样30次温度求平均值得,这样还不够的话可以去掉1-2个最大值和最小值再求平均
点赞  2014-9-18 09:06
滞后滤波
建议找一下硬件问题
点赞  2014-9-18 10:18
引用: dcexpert 发表于 2014-9-18 09:43
NTC虽然精度不是很高,但它的稳定性还是非常好的。可能需要在电源、基准等上多看看。

谢谢了,硬件上没有什么问题。我求的均值是查询得到的温度,因为精度本来就不高,所以得到的温度再求均值得到的值误差就更大,所以先求采集到的AD值的均值,之后再查表,这样得出的温度还是很稳定的!
点赞  2014-9-20 11:12
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复