找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 8479|回复: 32
打印 上一主题 下一主题
收起左侧

NTC热敏电阻查表程序如何转换成温度显示?

  [复制链接]
跳转到指定楼层
楼主
大家好,本人第一次做温度显示,有关于这方面的资料在网上搜索过,但不齐全很难理解,故在这请各位大佬指点下.现在的问题是温度显示乱码,不知以下对应数值表是否正确?
单片机源程序如下:
  1. #include <STC15.H>
  2. #include<math.h>
  3. #include"intrins.h"
  4. #define uchar unsigned char
  5. #define uint  unsigned int
  6. #define ulong unsigned long

  7. #define ADC_POWER   0x80   
  8. #define ADC_FLAG    0x10   
  9. #define ADC_START   0x08  
  10. #define ADC_SPEEDLL 0x00  
  11. #define ADC_SPEEDL  0x20  
  12. #define ADC_SPEEDH  0x40
  13. #define ADC_SPEEDHH 0x60

  14. void display(uint but);

  15. void Time_Init(void);

  16. void IO_Init(void);

  17. void ADC_Init(void);

  18. sbit b_wei=P1^0;          //百位
  19. sbit s_wei=P1^1;         //十位
  20. sbit g_wei=P1^2;        //个位

  21. uchar code LED_tk[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x40,0x46,0x79,0xff};

  22. uint volatge=0,Tep=0,measure=38,Temperature=0,tempvalue=0;

  23. volatile uint LS_20ms=0,Bg=0;
  24. volatile uint Num=0,time=0,pmt=3000,temp=0,Pnet=0,Bzeep_ms=200, I_samp=0;
  25. volatile uchar u8Temp_1=0,u8Temp_2=0,u8Temp_3=0,NK=888,ADCcount;
  26. volatile uchar sum=0,SP_10ms=0,Su8Temp_3=0,Su8Temp_2=0,Su8Temp_1=0,Hee_1=0,Hee_2=0,Hee_3=0;
  27. bit Vauel_play_flag=1,shan_flag=0,fan_on_flag=0,Dig_flag=0,Beesp_on_flag=0,Dai_He_flag=0,Beez_u8ge=0,Tne_Bee_flag=0;
  28. bit Temp_flag=0,volue_flag=0;

  29. /**************êy¾Y±í(NTC--10k--B3950)ADÖμ****************/  
  30. ulong code  NTCcode[121]={
  31.                            934,930,925,921,916,911,905,900,894,889,  //-10-0
  32.                            883,876,870,864,857,850,843,835,828,820,     //0-10
  33.                            812,804,796,788,779,770,762,753,743,734,     //10-20
  34.                            725,715,706,696,686,676,666,656,646,635,     //20-30
  35.                                                                                  625,615,604,594,584,573,563,552,542,532,     //30-40
  36.                            522,511,501,491,481,471,461,451,442,432,     //40-50
  37.                            423,413,404,395,386,377,368,360,351,343,     //50-60
  38.                            335,327,319,311,304,296,289,282,275,268,     //60-70
  39.                            261,255,248,242,236,230,224,218,213,207,     //70-80
  40.                            202,197,192,187,182,178,173,169,164,160,     //80-90
  41.                            156,152,148,144,140,137,133,130,127,123,     //90-100
  42.                            120,117,114,111,109,106,103,101,98,96,93};  //100-110


  43.   void ADC_Init()
  44.   {
  45.    
  46.    P1ASF=0x30;           //éèÖÃP1.4oíP1.5ÎaÄ£Äaêäèë
  47.    
  48.    ADC_RES=0;               
  49.    ADC_RESL=0;
  50.    CLK_DIV=0x20;
  51.         ADC_CONTR&=~ADC_FLAG;
  52.    ADC_CONTR=ADC_POWER|ADC_SPEEDHH|ADC_START;
  53.    Delay(5);      
  54. }

  55.   uint Get_ADC(uchar channel)
  56.   {

  57.      uint b=0,c=0;
  58.           ADC_RES=0;
  59.           ADC_RESL=0;

  60.            
  61.      ADC_CONTR=ADC_POWER|ADC_SPEEDHH|ADC_START|channel;
  62.          _nop_();
  63.          _nop_();
  64.          _nop_();
  65.          _nop_();
  66.            
  67.     while(!(ADC_CONTR&ADC_FLAG));
  68.      ADC_CONTR&=~ADC_FLAG;
  69.           b=ADC_RES*256;
  70.           c=ADC_RESL;
  71.           b=b|c;
  72.          
  73.      return   b;
  74.   }

  75. /************温度处理*************/

  76. void fighting_0(void)
  77. {
  78.         uchar N;
  79.         Tep=Get_ADC(4);
  80.         tempvalue=Get_Temperature(Tep);
  81.         for(N=0;N<8;N++)
  82.         {
  83.         Temperature+=tempvalue;
  84.                   _nop_();
  85.                         _nop_();
  86.                         _nop_();
  87.         }
  88.          
  89.   Temperature/=8;
  90. }

  91. uint Get_Temperature(uint Adc)  //查表温度计算
  92. {
  93.         
  94.          uint  i,tmpL,tmpH;
  95.          uint t,ftmp;
  96.          if(Adc<676)//如果小于25度向前查
  97. for(i=25;i>0;i-)//25表示温度
  98.   {
  99.   if(Adc>NTCcode[i])
  100.   {
  101.   tmpL=NTCcode[i];//实测阻值前后温度
  102.   tmpH=NTCcode[i+1];//用于计算小数点位
  103.   t=i; //得到对应温度
  104.   i=0;
  105.   }
  106. }
  107. else //向后查
  108.         if(Adc>676)
  109. for(i=25;i<121;i++)
  110. {
  111. if( Adc<NTCcode[i])
  112. {
  113. tmpH=NTCcode[i];
  114. tmpL=NTCcode[i-1];
  115. t=i;
  116. i=121;
  117. }
  118. }
  119. //计算小数*10整数
  120. ftmp=(Adc-tmpL)*10/(tmpH-tmpL);
  121. t=t*10+ftmp;
  122. return t;
  123. }

  124. /*************数码管显示*************/
  125. void display(uint but)
  126. {
  127.     uchar i;
  128.          for(i=20;i>0;i--)
  129.          {
  130.    P3=LED_tk[but/100];
  131.    b_wei=1;
  132.    Delay(5);
  133.    b_wei=0;

  134.   
  135.    P3=LED_NK[but%100/10];
  136.    s_wei=1;
  137.    Delay(5);
  138.    s_wei=0;

  139.    P3=LED_tk[but%10];
  140.    g_wei=1;
  141.    Delay(5);
  142.    g_wei=0;
  143.          }
  144.   }
  145. void main()
  146. {        IO_Init();
  147.         ADC_Init();
  148.    Time_Init();
  149. while(1)
  150.         {

  151.          fighting_0();
  152. display(Temperature);
  153. }
  154. }   
复制代码
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏5 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:348282 发表于 2020-12-15 09:09 | 只看该作者
为什么AD读出来的值比原来的大很多??
回复

使用道具 举报

板凳
ID:739545 发表于 2020-12-15 09:10 | 只看该作者
查表的含义就是和表值进行对比,然后修正成实际数值。显示乱码的原因更多可能是你调用的温度值本身就不对。P3=LED_NK是什么,都没看到定义,是否编译过都是问题,所以怀疑你压根就没有试验,copy代码就问问题

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

地板
ID:348282 发表于 2020-12-15 09:13 | 只看该作者
就好像要再另外计算才能对得上数值表,但具体是要怎样计算呢?
回复

使用道具 举报

5#
ID:420836 发表于 2020-12-15 09:38 | 只看该作者
为了准确地使用NTC热敏电阻测量温度,您需要连接一个稳定的DC电压作为参考电压,例如5VDC,然后添加一个上拉电阻,例如10k ohm。 在已知参考电压和上拉电阻的情况下,您可以根据模数转换器测量的电压来计算数字计数,假设它是10位ADC,则全5V对应于1024。获得计数后,您可以 可以使用插值法找到NTC热敏电阻的电阻,然后确定温度。

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

6#
ID:348282 发表于 2020-12-15 10:31 | 只看该作者
lovezjf234 发表于 2020-12-15 09:10
查表的含义就是和表值进行对比,然后修正成实际数值。显示乱码的原因更多可能是你调用的温度值本身就不对。 ...

P3=LED_NK[]这是小数点编码来的,LED_tk是没有小数点,这个不重要,主要是温度转换那里,谢谢。
回复

使用道具 举报

7#
ID:348282 发表于 2020-12-15 10:32 | 只看该作者
TTQ001 发表于 2020-12-15 09:38
为了准确地使用NTC热敏电阻测量温度,您需要连接一个稳定的DC电压作为参考电压,例如5VDC,然后添加一个上 ...

NTC那里我串联一个5.1K电阻,然后分压给ADC输入
回复

使用道具 举报

8#
ID:852300 发表于 2020-12-15 10:34 | 只看该作者
是不是用了12位AD的芯片?
回复

使用道具 举报

9#
ID:348282 发表于 2020-12-15 10:37 | 只看该作者
TTQ001 发表于 2020-12-15 09:38
为了准确地使用NTC热敏电阻测量温度,您需要连接一个稳定的DC电压作为参考电压,例如5VDC,然后添加一个上 ...

有的说不用转电压,就直接AD值查找,有的要转成电压,各有各的说,如果表格是温度的AD数值则不用转成电压,如表格是温度的电压值或电阻值,则要转成电压值,或计算成电阻值。
回复

使用道具 举报

10#
ID:348282 发表于 2020-12-15 10:38 | 只看该作者
6620680 发表于 2020-12-15 10:34
是不是用了12位AD的芯片?

使用的是STC15W408AS芯片,10位AD
回复

使用道具 举报

11#
ID:348282 发表于 2020-12-15 10:42 | 只看该作者
现在我的数表中是用温度测量过的AD值,那么在AD读取NTC电压时不用转成电压,现在查表会显示乱码就是AD数值与数表不对,AD值明显大于数表上的值,所以是不是有一些计算公式来转换的?
回复

使用道具 举报

12#
ID:348282 发表于 2020-12-15 10:46 | 只看该作者
网上关于NTC温度查表转换的搜一大片,说一半留一半。
回复

使用道具 举报

13#
ID:213173 发表于 2020-12-15 13:59 | 只看该作者
law110 发表于 2020-12-15 10:37
有的说不用转电压,就直接AD值查找,有的要转成电压,各有各的说,如果表格是温度的AD数值则不用转成电压 ...

各种说法都没有说错,要看你怎么去理解。AD值就是NTC随温度变化而变化的电压数据,由于热敏电阻温阻曲线的非线性,AD转换得到的电压变化曲线也呈非线性,很难用简单公式计算出来。所以就通过数据表进行比对(查表法),可以很方便的获得温度值。假设NTC与分压电阻都是10K,VCC=5V,环境温度25度,那么10位ADC结果就=512,通过查表得到温度值=25度。但实际应用中由于外界干扰因素需要平滑滤波,误差补偿等等。

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

14#
ID:213173 发表于 2020-12-15 14:06 | 只看该作者
law110 发表于 2020-12-15 10:37
有的说不用转电压,就直接AD值查找,有的要转成电压,各有各的说,如果表格是温度的AD数值则不用转成电压 ...

给你一个制表方法和应用示例参考。 10K B3950 NTC温阻电压编码表 上偏电阻2.4K.zip (33.74 KB, 下载次数: 71)

-30~150度数码管温度计(对分查表).zip (31.06 KB, 下载次数: 52)

回复

使用道具 举报

15#
ID:348282 发表于 2020-12-15 14:30 | 只看该作者
现在的程序中,显示的乱码是因为现时读到的值与数据表对不上,如果减去读到的值去比较,就显示正常,但高温的时候上不去,这明显是要补偿计算。
回复

使用道具 举报

16#
ID:401564 发表于 2020-12-15 15:07 | 只看该作者
如果你是有了别人现成的电路和程序,那就直接复制来直接用
如果不是,那就得自己设计,而这NTC温度查表应用本身并不是什么高深技术,自己基础好点的就可以自己写代码和画电路了
不要怪人家说一半留一半,很少是有像小学生99乘法那样的完整给你的,你自己肯定要知道原理,如果你连原理都不知道,那还是先看一下ADC和NTC的相关原理吧1:你要有这个NTC对应的电阻温度表
2:选定电路中另一个分压电阻的阻值
3:选定参考电压和ADC电源
4:根据不同温度下的NTC阻值和分压电阻串联电阻来计算ADC的值
4:温度表格最好是某段ADC值,比如是:100-800的ADC值对应-10到60摄氏度,这其中,你就要有701个地址的表格,用来保证这一段温度范围内所有ADC的值都能在表格内找到
而你的表并不是这样的,比如开始的:934,930....那如果ADC的结果是932呢?
如果你完全看不明白我说的,那就再看一下ADC和NTC相关的资料就可以了
完全现成的东西可能没有,运气好的话能找到,但最好的结果是你自己会做

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

17#
ID:226055 发表于 2020-12-15 16:09 | 只看该作者
    1、待采集的模拟信进单片机的ADC引脚,理论上都是要求具有尽可能大的输出阻抗。因为如果输入的待采集信号输出阻抗和单片机ADC引脚的对地等效电阻(芯片内部)在一个数量级上,那么很容易影响采集效果。
    2、所以,很多情况下会采用在待采集信号后加电压跟随器的办法解决这个问题。下面截图下艾克姆的NTC热敏电阻模块(带电压跟随器)的原理图帮助大家直观理解下。




    3、STC15W408芯片没有用过,下面附件是STC15W4K56S4关联这个NTC热敏电阻传感器模块的例程。需要注意NTC热敏电阻模块的供电VCC和单片机的VCC电平一致。这样10位的ADC采集NTC才是准的,另外说下NTC热敏电阻型号是10K  3950。(本人已测试,测温效果很好)

全部资料51hei下载地址:
实验3-11-4:热敏传感器实验 - 模拟量.rar (49.12 KB, 下载次数: 50)

评分

参与人数 1黑币 +40 收起 理由
admin + 40 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

18#
ID:348282 发表于 2020-12-16 08:02 | 只看该作者
多谢各位了,我先尝试下。
回复

使用道具 举报

19#
ID:348282 发表于 2020-12-17 08:59 | 只看该作者
昨天弄一整天,把数据表更新下,测试发现在用烙铁靠近NTC时,温度最高只有70多度就上不去了,测了NTC输入电压是有变化的,但显示基本没什么变化,将上偏电阻原5.1K改为2.4K后,还是这样子。不知是那里的问题?
uint code  NTCcode[]={
                                                  839,838,837,836,835,834,833,832,831,830,
                                                   829,828,827,826,825,824,823,822,821,820,
                                                   819,818,817,816,815,814,813,812,811,810,
                                                   809,808,807,806,805,804,803,802,801,800,
                                                  799,798,797,796,795,794,793,792,791,790,
                                                  789,788,787,786,785,784,783,782,781,780,
                                                  779,778,777,776,775,774,773,772,771,770,
                                                  769,768,767,766,765,764,763,762,761,760,
                                                 759,758,757,756,755,754,753,752,751,750,
                                                 749,748,747,746,745,744,743,742,741,740,
                                                 739,738,737,736,735,734,733,732,731,730,       
                                                   729,728,727,726,725,724,723,722,721,720,                                                
                                                   719,718,717,716,715,714,713,712,711,710,
                                                   709,708,707,706,705,704,703,702,701,700,
                                                   699,698,697,696,695,694,693,692,691,690,
                                                   689,688,687,686,685,684,683,682,681,680,
                                                   679,678,677,676,675,674,673,672,671,670,
                                                   669,668,667,666,665,664,663,662,661,660,
                                                  659,658,657,656,655,654,653,652,651,650,
                                                  649,648,647,646,645,644,643,642,641,640,
                                                 639,638,637,636,635,634,633,632,631,630,
                                                 629,628,627,626,625,624,623,622,621,620,
                                                 619,618,617,616,615,614,613,612,611,610,
                                                609,608,607,606,605,604,603,602,601,600,
                                               599,598,597,596,595,594,593,592,591,590,
                                               589,588,587,586,585,584,583,582,581,580,
                                               579,578,577,576,575,574,573,572,571,570,
                                               569,568,567,566,565,564,563,562,561,560,
                                               559,558,557,556,555,554,553,552,551,550,
                                               549,548,547,546,545,544,543,542,541,540,
                                               539,538,837,536,535,534,533,532,531,530,
                                                529,528,527,526,525,524,523,522,521,520,
                                                519,518,517,516,515,514,513,512,511,510,
                                                509,508,507,506,505,504,503,502,501,500,
                                                499,498,487,496,495,494,493,492,491,490,
                                                489,488,487,486,485,484,483,482,481,480,
                                                479,478,477,476,475,474,473,472,471,470,
                                                469,468,467,466,465,464,463,462,461,460,
                                                459,458,457,456,455,454,453,452,451,450,
                                                449,448,447,446,445,444,443,442,441,440,
                                                439,438,437,436,435,434,433,432,431,430,
                                                429,428,427,426,425,424,423,422,421,420,
                                                419,418,417,416,415,414,413,412,411,410,
                                                409,408,407,406,405,404,403,402,401,400,
                                                399,398,397,396,395,394,393,392,391,390,
                                                389,388,387,386,385,384,383,382,381,380,
                                                379,378,377,376,375,374,373,372,371,370,
                                                369,368,367,366,365,364,363,362,361,360,
                                                359,358,357,356,355,354,353,352,351,350,
                                                349,348,347,346,345,344,343,432,341,340,
                                                339,338,337,336,335,334,333,332,331,330,
                                                329,328,327,326,325,324,323,322,321,320,
                                                319,318,317,316,315,314,313,312,311,310,
                                                309,308,307,306,305,304,303,302,301,300,
                                                299,298,297,296,295,294,293,292,291,290,
                                                289,288,287,286,285,284,283,282,281,280,
                                                279,278,277,276,275,274,273,272,271,270,
                                                269,268,267,266,265,264,263,262,261,260,
                                                259,258,257,256,255,254,253,252,251,250,
                                                249,248,247,246,245,244,243,242,241,240,
                                                239,238,237,236,235,234,233,232,231,230,
                                                229,228,227,226,225,224,223,222,221,220,
                                                219,218,217,216,215,214,213,212,211,210,
                                                209,208,207,206,205,204,203,202,201,200,
                                                199,198,197,196,195,194,193,192,191,190,
                                                189,188,187,186,185,184,183,182,181,180,
                                                179,178,177,176,175,174,173,172,171,170,
                                                169,168,167,166,165,164,163,162,161,160,
                                                159,158,157,156,155,154,153,152,151,150,
                                                149,148,147,146,145,144,143,142,141,140,
                                                139,138,137,136,135,134,133,132,131,130,
                                                129,128,127,126,125,124,123,122,121,120,
                                                119,118,117,116,115,114,113,112,111,110};//-10---+110



/************温度检测处理*************/

void fighting_0(void)
{
   uint measure=38;

        Tep=Get_ADC(4);
Temperature=NTCcode[Tep-measure];
}
void main()
{
  IO_init();
  ......
  ......
        while(1)
        {
    fighting_0();
  display(Temperature);
}
}
回复

使用道具 举报

20#
ID:348282 发表于 2020-12-17 09:04 | 只看该作者
这数据表的分辨率是0.1度测量出来,还有当NTC受外部高温影响时,正常是以1度或10度的瞬间上升变化的,但显示以0.1度的变化上升,不知问题出在那里?
回复

使用道具 举报

21#
ID:348282 发表于 2020-12-17 09:13 | 只看该作者
这数据表发出来有延时。
回复

使用道具 举报

22#
ID:401564 发表于 2020-12-17 11:09 | 只看该作者
NTC的温度表怎么可能是像这样这么有规律的呢?
如果你上偏电阻是5.1K,接上10KNTC
那么在10摄氏度的时候ADC的值是:813
11摄氏度ADC的值是:805
这中间只有8个数字量,如果你要表示0.1摄氏度的精度,那肯定是要有误差的了,比如:813是显示10.0摄氏度,814也是10.0摄氏度,不然怎么够分呢?
回复

使用道具 举报

23#
ID:348282 发表于 2020-12-17 11:34 | 只看该作者
Y_G_G 发表于 2020-12-17 11:09
NTC的温度表怎么可能是像这样这么有规律的呢?
如果你上偏电阻是5.1K,接上10KNTC
那么在10摄氏度的时候A ...

现在不是精度问题,而是在测高温显示上不去。
回复

使用道具 举报

24#
ID:401564 发表于 2020-12-17 13:58 | 只看该作者
law110 发表于 2020-12-17 11:34
现在不是精度问题,而是在测高温显示上不去。

1,你这个表本身就有问题
2,NTC两头的电压有变化,但显示就是上不去,那无非就两个原因:一个是ADC数据处理出问题,一个查表显示出问题,从这找,很快就能找到原因了
一个完整的实用程序并不是那么容易就搞出来的,网上复制来的东西,很多是不行的
你要一步一步来,这NTC显示温度并不是什么高深的程序的,慢慢来,几天就能搞定的
一,你要先写好显示部分的代码,并烧录运行,比如,你要显示12345,就能显示12345,保证显示绝对正常之后再进行下一步
二,写好ADC和处理的代码,这ADC肯定是要滤波的,至少是要进行8次或者更多次的ADC,然后取平均值,你可以是显示ADC的值,或者是显示电压,用万用表和显示进行对比,显示的数据和实际数据相差不大,或者是在误差范围之内的,才能证明你的ADC和显示部分是OK的
三,用EXCEL或者自己手工写也行,写好温度表格,温度表格绝对不会是像你这个表格这样有规律的,不管是温度ADC结果的值还是温度,都不是规律的

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

25#
ID:213173 发表于 2020-12-17 14:32 | 只看该作者
law110 发表于 2020-12-17 11:34
现在不是精度问题,而是在测高温显示上不去。

给你的资料你也不看,实测20~100度范围误差不超过0.5度。你那个程序本来就有不少问题。
回复

使用道具 举报

26#
ID:348282 发表于 2020-12-17 16:02 | 只看该作者
wulin 发表于 2020-12-17 14:32
给你的资料你也不看,实测20~100度范围误差不超过0.5度。你那个程序本来就有不少问题。

多谢了,看是看了,但要结合自己的实际情况,可能一时消化不了。
回复

使用道具 举报

27#
ID:213173 发表于 2020-12-17 16:26 | 只看该作者
law110 发表于 2020-12-17 16:02
多谢了,看是看了,但要结合自己的实际情况,可能一时消化不了。

数据表根本不需要做这么大,每度一个数据即可,小数用插补的方法获取。何况厂家一般也不会提供这么精细的数据。
回复

使用道具 举报

28#
ID:748788 发表于 2020-12-17 16:27 | 只看该作者
//温度与NTC电阻阻值对应关系表
//MF52 10K3435 温度特性表
uint16 code ntc10k_tab[] = {

// 阻值(Ω),温度
// 190556, /* -40 */
// 183413, /* -39 */
// 175674, /* -38 */
// 167647, /* -37 */
// 159565, /* -36 */
// 151598, /* -35 */
// 143862, /* -34 */
// 136436, /* -33 */
// 129364, /* -32 */
// 122668, /* -31 */
// 116352, /* -30 */
// 110410, /* -29 */
// 104827, /* -28 */
// 99585, /* -27 */
// 94661, /* -26 */
// 90033, /* -25 */
// 85678, /* -24 */
// 81575, /* -23 */
// 77703, /* -22 */
// 74044, /* -21 */
// 70581, /* -20 */
// 67299, /* -19 */
// 64183, /* -18 */
// 61223, /* -17 */
// 58408, /* -16 */
// 55728, /* -15 */
// 53177, /* -14 */
// 50746, /* -13 */
// 48429, /* -12 */
// 46222, /* -11 */
//44120, /* -10 */
42118, /* -9 */
40212, /* -8 */
38399, /* -7 */
36675, /* -6 */
35036, /* -5 */
33480, /* -4 */
32004, /* -3 */
30603, /* -2 */
29275, /* -1 */
28017, /* 0 */
26826, /* 1 */
25697, /* 2 */
24629, /* 3 */
23618, /* 4 */
22660, /* 5 */
21752, /* 6 */
20892, /* 7 */
20075, /* 8 */
19299, /* 9 */
18560, /* 10 */
18482, /* 11 */
18149, /* 12 */
17632, /* 13 */
16992, /* 14 */
16280, /* 15 */
15535, /* 16 */
14787, /* 17 */
14055, /* 18 */
13354, /* 19 */
12690, /* 20 */
12068, /* 21 */
11490, /* 22 */
10954, /* 23 */
10458, /* 24 */
10000, /* 25 */
9576, /* 26 */
9184, /* 27 */
8819, /* 28 */
8478, /* 29 */
8160, /* 30 */
7861, /* 31 */
7579, /* 32 */
7311, /* 33 */
7056, /* 34 */
6813, /* 35 */
6581, /* 36 */
6357, /* 37 */
6142, /* 38 */
5934, /* 39 */
5734, /* 40 */
5541, /* 41 */
5353, /* 42 */
5173, /* 43 */
4998, /* 44 */
4829, /* 45 */
4665, /* 46 */
4507, /* 47 */
4355, /* 48 */
4208, /* 49 */
4065, /* 50 */
3927, /* 51 */
3794, /* 52 */
3664, /* 53 */
3538, /* 54 */
3415, /* 55 */
3294, /* 56 */
3175, /* 57 */
3058, /* 58 */
2941, /* 59 */
2825, /* 60 */
2776, /* 61 */
2718, /* 62 */
2652, /* 63 */
2582, /* 64 */
2508, /* 65 */
2432, /* 66 */
2356, /* 67 */
2280, /* 68 */
2207, /* 69 */
2135, /* 70 */
2066, /* 71 */
2000, /* 72 */
1938, /* 73 */
1879, /* 74 */
1823, /* 75 */
1770, /* 76 */
1720, /* 77 */
1673, /* 78 */
1628, /* 79 */
1586, /* 80 */
1546, /* 81 */
1508, /* 82 */
1471, /* 83 */
1435, /* 84 */
1401, /* 85 */
1367, /* 86 */
1334, /* 87 */
1301, /* 88 */
1268, /* 89 */
1236, /* 90 */
1204, /* 91 */
1171, /* 92 */
1139, /* 93 */
1107, /* 94 */
1074, /* 95 */
1042, /* 96 */
1010, /* 97 */
979, /* 98 */
948, /* 99 */
// 918, /* 100 */
// 889, /* 101 */
// 861, /* 102 */
// 835, /* 103 */
// 810, /* 104 */
// 787, /* 105 */
// 767, /* 106 */
// 749, /* 107 */
// 733, /* 108 */
// 721, /* 109 */
// 713, /* 110 */
};
详见:
http://www.51hei.com/bbs/dpj-197657-1.html

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

29#
ID:852300 发表于 2020-12-17 18:22 | 只看该作者
law110 发表于 2020-12-17 08:59
昨天弄一整天,把数据表更新下,测试发现在用烙铁靠近NTC时,温度最高只有70多度就上不去了,测了NTC输入电 ...

上拉电阻一般是1%的10K
回复

使用道具 举报

30#
ID:852300 发表于 2020-12-17 18:24 | 只看该作者
wulin 发表于 2020-12-17 16:26
数据表根本不需要做这么大,每度一个数据即可,小数用插补的方法获取。何况厂家一般也不会提供这么精细的 ...

估计是上拉电阻用小了,上拉小了,取样点电压下不来,显示值自然上不去!

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

31#
ID:348282 发表于 2020-12-17 20:57 | 只看该作者
6620680 发表于 2020-12-17 18:24
估计是上拉电阻用小了,上拉小了,取样点电压下不来,显示值自然上不去!

我之前是用了10k上拉电阻,也是这种问题.
回复

使用道具 举报

32#
ID:213173 发表于 2020-12-18 08:33 | 只看该作者
law110 发表于 2020-12-17 20:57
我之前是用了10k上拉电阻,也是这种问题.

NTC配套分压电阻是可以在很大范围内取值的。要依据设备的测温跨度范围选取,通常作低温检测取值较大,作高温检测取值较小,目的是使测温范围的中点电压大致落在1/2参考电压附近。所以用于常温范围检测的NTC配套分压电阻往往取值与NTC标称值相同。楼主“用烙铁靠近NTC时,温度最高只有70多度就上不去了”一般是算法错误所致。建议楼主用一个阻值不小于500Ω的电位器代替NTC和分压电阻的输入电路,把ADC转换值直接显示在数码管或LCD上,调整电位器使读数在0~1023范围变化,证明ADC转换没有问题后再着手解决后期数据处理问题。否则出现异常胡乱猜测,越理越乱。再次提醒:数据表是根据NTC温阻表(厂商提供)和所选分压电阻阻值计算得到的,其变化曲线呈非线性!绝不是等阶递增递减。详见上帖附件《10K B3950 NTC温阻电压编码表 上偏电阻2.4K.zip》
回复

使用道具 举报

33#
ID:348282 发表于 2020-12-18 14:48 | 只看该作者
wulin 发表于 2020-12-18 08:33
NTC配套分压电阻是可以在很大范围内取值的。要依据设备的测温跨度范围选取,通常作低温检测取值较大,作 ...

多谢。我再检查下。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表