聯系我們 - 廣告服務 - 聯系電話:
您的當前位置: > 關注 > > 正文

每日看點!NTC熱敏電阻的采集方法有哪些?NTC熱敏電阻溫度采集方法介紹

來源:CSDN 時間:2023-03-07 11:45:41

前言:


【資料圖】

最近在調試STM32ADC采集NTC熱敏電阻的溫度值,總結下NTC熱敏電阻溫度值的采集方法。 硬件平臺:STM32F205 軟件平臺:keil V5 函數庫:標準庫

NTC熱敏電阻溫度采集方法

熱敏電阻的相關知識點見百度文庫的介紹:傳送門。

本例中使用的熱敏電阻型號為mfh103-3950。其電阻與溫度對應表如下:

附表1 NTC熱敏電阻R/T對照表    T(℃)    R(KΩ)        T(℃)   R(KΩ)       T(℃)    R(KΩ)    -20.0   95.3370        20.5   12.2138        61.0    2.3820       -19.5   92.6559        21.0   11.9425        61.5    2.3394       -19.0   90.0580        21.5   11.6778        62.0    2.2977       -18.5   87.5406        22.0   11.4198        62.5    2.2568       -18.0   85.1009        22.5   11.1681        63.0    2.2167       -17.5   82.7364        23.0   10.9227        63.5    2.1775       -17.0   80.4445        23.5   10.6834        64.0    2.1390       -16.5   78.2227        24.0   10.4499        64.5    2.1013       -16.0   76.0689        24.5   10.2222        65.0    2.0644       -15.5   73.9806        25.0   10.0000        65.5    2.0282       -15.0   71.9558        25.5    9.7833        66.0    1.9928       -14.5   69.9923        26.0    9.5718        66.5    1.9580       -14.0   68.0881        26.5    9.3655        67.0    1.9240       -13.5   66.2412        27.0    9.1642        67.5    1.8906       -13.0   64.4499        27.5    8.9677        68.0    1.8579       -12.5   62.7122        28.0    8.7760        68.5    1.8258       -12.0   61.0264        28.5    8.5889        69.0    1.7944       -11.5   59.3908        29.0    8.4063        69.5    1.7636       -11.0   57.8038        29.5    8.2281        70.0    1.7334       -10.5   56.2639        30.0    8.0541        70.5    1.7037       -10.0   54.7694        30.5    7.8842        71.0    1.6747        -9.5   53.3189        31.0    7.7184        71.5    1.6462        -9.0   51.9111        31.5    7.5565        72.0    1.6183        -8.5   50.5445        32.0    7.3985        72.5    1.5910        -8.0   49.2178        32.5    7.2442        73.0    1.5641        -7.5   47.9298        33.0    7.0935        73.5    1.5378        -7.0   46.6792        33.5    6.9463        74.0    1.5120        -6.5   45.4649        34.0    6.8026        74.5    1.4867        -6.0   44.2856        34.5    6.6622        75.0    1.4619        -5.5   43.1403        35.0    6.5251        75.5    1.4375        -5.0   42.0279        35.5    6.3912        76.0    1.4136        -4.5   40.9474        36.0    6.2604        76.5    1.3902        -4.0   39.8978        36.5    6.1326        77.0    1.3672        -3.5   38.8780        37.0    6.0077        77.5    1.3447        -3.0   37.8873        37.5    5.8858        78.0    1.3225        -2.5   36.9246        38.0    5.7666        78.5    1.3008        -2.0   35.9892        38.5    5.6501        79.0    1.2795        -1.5   35.0801        39.0    5.5363        79.5    1.2586        -1.0   34.1965        39.5    5.4251        80.0    1.2381        -0.5   33.3378        40.0    5.3164        80.5    1.2180         0.0   32.5030        40.5    5.2102        81.0    1.1983         0.5   31.6915        41.0    5.1064        81.5    1.1789         1.0   30.9026        41.5    5.0049        82.0    1.1599         1.5   30.1355        42.0    4.9057        82.5    1.1412         2.0   29.3896        42.5    4.8088        83.0    1.1229         2.5   28.6644        43.0    4.7140        83.5    1.1050         3.0   27.9590        43.5    4.6213        84.0    1.0873         3.5   27.2730        44.0    4.5307        84.5    1.0700         4.0   26.6058        44.5    4.4421        85.0    1.0530         4.5   25.9567        45.0    4.3554        85.5    1.0363         5.0   25.3254        45.5    4.2707        86.0    1.0199         5.5   24.7111        46.0    4.1878        86.5    1.0038         6.0   24.1135        46.5    4.1068        87.0    0.9880         6.5   23.5320        47.0    4.0275        87.5    0.9725         7.0   22.9661        47.5    3.9500        88.0    0.9573         7.5   22.4154        48.0    3.8742        88.5    0.9424         8.0   21.8795        48.5    3.8000        89.0    0.9277         8.5   21.3579        49.0    3.7275        89.5    0.9133         9.0   20.8502        49.5    3.6565        90.0    0.8991         9.5   20.3559        50.0    3.5870        90.5    0.8852        10.0   19.8747        50.5    3.5190        91.0    0.8715        10.5   19.4063        51.0    3.4525        91.5    0.8581        11.0   18.9502        51.5    3.3875        92.0    0.8450        11.5   18.5060        52.0    3.3238        92.5    0.8320        12.0   18.0735        52.5    3.2615        93.0    0.8193        12.5   17.6523        53.0    3.2005        93.5    0.8068        13.0   17.2421        53.5    3.1408        94.0    0.7945        13.5   16.8426        54.0    3.0824        94.5    0.7825        14.0   16.4534        54.5    3.0252        95.0    0.7707        14.5   16.0743        55.0    2.9692        95.5    0.7590        15.0   15.7049        55.5    2.9144        96.0    0.7476        15.5   15.3450        56.0    2.8608        96.5    0.7364        16.0   14.9944        56.5    2.8082        97.0    0.7253        16.5   14.6528        57.0    2.7568        97.5    0.7145        17.0   14.3198        57.5    2.7065        98.0    0.7038        17.5   13.9954        58.0    2.6572        98.5    0.6933        18.0   13.6792        58.5    2.6089        99.0    0.6831        18.5   13.3710        59.0    2.5616        99.5    0.6729        19.0   13.0705        59.5    2.5153       100.0    0.6630        19.5   12.7777        60.0    2.4700           20.0   12.4922        60.5    2.4255

熱敏電阻的采樣電路圖如下圖:

從上圖電路原理可知,溫度上升,NTC阻值下降,對應的ADC采樣電壓下降,j進而AD采樣值下降。即每對應一個溫度值,就對應一個ad采樣值,這樣便可得到一個溫度與ad值的對應表。

那么NTC采集溫度的原理就是利用采樣的ad值與對應表進行比較,得到溫度值。溫度與ad值的對應表可利用已經做好的表格來自動轉化(輸入參數,即可得到對應的ad值),NTC計算表下載地址見:傳送門。

本例中VCC是3.3V,電路中ADC參考電壓是3V,所以轉換表格中乘以1.1進行換算,若輸入電壓和ADC采樣的參考電壓都是3.3V,刪去1.1即可。

利用上面的NTC計算表,可得到如下對應表。

//NTC的ad值對應表static u16 NTCTAB[241]= {    0xFED   ,0xFE2  ,0xFD6  ,0xFCB  ,0xFBF  ,0xFB3  ,0xFA6  ,0xF9A  ,0xF8D  ,0xF80,     0xF73   ,0xF65  ,0xF58  ,0xF4A  ,0xF3B  ,0xF2D  ,0xF1E  ,0xF0F  ,0xF00  ,0xEF1,     0xEE1   ,0xED1  ,0xEC1  ,0xEB1  ,0xEA0  ,0xE8F  ,0xE7E  ,0xE6C  ,0xE5B  ,0xE49,    0xE37   ,0xE24  ,0xE12  ,0xDFF  ,0xDEC  ,0xDD9  ,0xDC5  ,0xDB1  ,0xD9D  ,0xD89,     0xD75   ,0xD60  ,0xD4B  ,0xD36  ,0xD21  ,0xD0B  ,0xCF6  ,0xCE0  ,0xCCA  ,0xCB4,    0xC9D   ,0xC87  ,0xC70  ,0xC59  ,0xC42  ,0xC2B  ,0xC14  ,0xBFC  ,0xBE4  ,0xBCD,     0xBB5   ,0xB9D  ,0xB85  ,0xB6C  ,0xB54  ,0xB3C  ,0xB23  ,0xB0A  ,0xAF2  ,0xAD9,     0xAC0   ,0xAA7  ,0xA8E  ,0xA75  ,0xA5C  ,0xA43  ,0xA2A  ,0xA11  ,0x9F8  ,0x9DF,     0x9C6   ,0x9AD  ,0x994  ,0x97B  ,0x962  ,0x949  ,0x930  ,0x917  ,0x8FE  ,0x8E5,     0x8CC   ,0x8B4  ,0x89B  ,0x882  ,0x86A  ,0x852  ,0x839  ,0x821  ,0x809  ,0x7F1,     0x7D9   ,0x7C2  ,0x7AA  ,0x793  ,0x77B  ,0x764  ,0x74D  ,0x736  ,0x720  ,0x709,    0x6F3   ,0x6DC  ,0x6C6  ,0x6B0  ,0x69B  ,0x685  ,0x670  ,0x65A  ,0x645  ,0x630,     0x61C   ,0x607  ,0x5F3  ,0x5DE  ,0x5CB  ,0x5B7  ,0x5A3  ,0x590  ,0x57D  ,0x569,    0x557   ,0x544  ,0x532  ,0x51F  ,0x50D  ,0x4FB  ,0x4EA  ,0x4D8  ,0x4C7  ,0x4B6,    0x4A5   ,0x495  ,0x484  ,0x474  ,0x464  ,0x454  ,0x444  ,0x435  ,0x425  ,0x416,     0x407   ,0x3F9  ,0x3EA  ,0x3DC  ,0x3CD  ,0x3BF  ,0x3B2  ,0x3A4  ,0x397  ,0x389,     0x37C   ,0x36F  ,0x363  ,0x356  ,0x34A  ,0x33D  ,0x331  ,0x325  ,0x31A  ,0x30E,     0x303   ,0x2F8  ,0x2EC  ,0x2E2  ,0x2D7  ,0x2CC  ,0x2C2  ,0x2B7  ,0x2AD  ,0x2A3,    0x299   ,0x290  ,0x286  ,0x27D  ,0x273  ,0x26A  ,0x261  ,0x258  ,0x250  ,0x247,    0x23F   ,0x236  ,0x22E  ,0x226  ,0x21E  ,0x216  ,0x20E  ,0x206  ,0x1FF  ,0x1F8,    0x1F0   ,0x1E9  ,0x1E2  ,0x1DB  ,0x1D4  ,0x1CD  ,0x1C7  ,0x1C0  ,0x1BA  ,0x1B3,     0x1AD   ,0x1A7  ,0x1A1  ,0x19B  ,0x195  ,0x18F  ,0x18A  ,0x184  ,0x17E  ,0x179,     0x174   ,0x16E  ,0x169  ,0x164  ,0x15F  ,0x15A  ,0x155  ,0x150  ,0x14C  ,0x147,    0x142   ,0x13E  ,0x139  ,0x135  ,0x131  ,0x12C  ,0x128  ,0x124  ,0x120  ,0x11C,     0x118};

接下來,編寫查表函數,當采集到ad值后,從這個表中查到最接近的ad值。

//查表函數u8 look_up_table(u16 *a,u8 ArrayLong,u16 data){        u16 begin,end,middle ;      u8 i ;      begin = 0 ;      end = ArrayLong-1 ;      i = 0  ;      if(data >= a[begin]) return begin ;      else if(data <= a[end]) return end ;      while(begin < end)      {              middle = (begin+end)/2 ;              if(data == a[middle] ) break ;              if(data < a[middle] && data > a[middle+1]) break ;               if(data > a[middle])  end = middle ;                                  else begin = middle ;                  if(i++ > ArrayLong) break ;      }      if(begin > end ) return 0 ;       return middle ;  }

上述函數中參數u16 *a是表頭,即表的首地址,u8 ArrayLong是表的元素的個數,u16 data是要查的ad值,函數返回值是查到的ad值在表中的序號值。得到對應的序號值,就可得到對應的溫度值。

//輸入表的序號值,得到溫度值float num_to_temperature(u8 num){    float  data;    data = 0.5*num-20;    return data;}

上述是查到與采樣AD最近的ad值,求出溫度值。這個溫度值精度不高,可作為初略計算的溫度。 下面也可利用得到的這個粗略的溫度值t1,結合表中的下一個節點t2,進行線性計算,求的更精確的溫度值tx。 簡單的計算公式如下:

if( (data<=ntctab[0]) data="">NTCTAB[240]) )    {        num=look_up_table(NTCTAB,241,data);        t1=num_to_temperature(num);        tx=0.5*(data-NTCTAB[num])/(NTCTAB[num+1]-NTCTAB[num])+t1;        printf("temp_ntc:%4.2f\r\n",tx);        }

ADC的配置采集部分見另外兩篇文章:傳送門1和傳送門2。根據獲得的ad采樣值和上述查表計算方法,便可得到NTC的溫度值。

責任編輯:

標簽: 熱敏電阻

相關推薦:

精彩放送:

新聞聚焦
Top 岛国精品在线