久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: 求問PT100如何用32單片機內(nèi)部ADC直接讀取溫度的公式 [打印本頁]

作者: 宇智波油頭    時間: 2022-12-8 16:51
標題: 求問PT100如何用32單片機內(nèi)部ADC直接讀取溫度的公式
求問PT100如何用32單片機內(nèi)部ADC直接讀取溫度的公式,我們老大畫的電路圖,我黔驢技窮了,求問各位大佬!

1.png (7.42 KB, 下載次數(shù): 62)

電路圖是這樣設(shè)計的

電路圖是這樣設(shè)計的

作者: Hephaestus    時間: 2022-12-8 18:25
PT100溫度與電阻的關(guān)系公式:
RT = R0(1 + AT + BT2 + C(T-100)T3)   
其中:
A = 3.9083 E-3
B = -5.775 E-7
C = -4.183 E-12 (低于0°C時)或0 (高于0°C時)。

作者: hange_v    時間: 2022-12-8 20:46
畫了個腿啊,找個專業(yè)點的老大吧
作者: zhaxiaobian_er    時間: 2022-12-8 21:51
hange_v 發(fā)表于 2022-12-8 20:46
畫了個腿啊,找個專業(yè)點的老大吧

PT100當NTC電阻用了
作者: 宇智波油頭    時間: 2022-12-9 08:09
hange_v 發(fā)表于 2022-12-8 20:46
畫了個腿啊,找個專業(yè)點的老大吧

我也看不懂,但是,哎
作者: 宇智波油頭    時間: 2022-12-9 08:10
Hephaestus 發(fā)表于 2022-12-8 18:25
PT100溫度與電阻的關(guān)系公式:
RT = R0(1 + AT + BT2 + C(T-100)T3)   
其中:

但是他得讓我用采集到的電壓算
作者: yzwzfyz    時間: 2022-12-9 09:01
先弄清楚測溫原理,問題就解決了。與用什么單片機,一點關(guān)系也沒有!
提示:溫度-->電阻-->電壓-->AD-->數(shù)字。其中的關(guān)系。
作者: 宇智波油頭    時間: 2022-12-9 10:56
yzwzfyz 發(fā)表于 2022-12-9 09:01
先弄清楚測溫原理,問題就解決了。與用什么單片機,一點關(guān)系也沒有!
提示:溫度-->電阻-->電壓-->AD-->數(shù) ...

我,,明白,我就是縷不順這個關(guān)系
作者: Hephaestus    時間: 2022-12-9 11:32
宇智波油頭 發(fā)表于 2022-12-9 08:10
但是他得讓我用采集到的電壓算

Pt100的阻值都告訴你了,你不會用采集到的電壓推算出溫度?這里面涉及到的物理數(shù)學(xué)知識都是初中的。
作者: ly1972001    時間: 2022-12-9 12:14
溫度到電阻,查PT100的對照表。電阻到電壓到AD,不會就看模電書。AD到數(shù)字,不會看單片機教材。都不會,那就真沒法子。
作者: 宇智波油頭    時間: 2022-12-9 13:12
Hephaestus 發(fā)表于 2022-12-9 11:32
Pt100的阻值都告訴你了,你不會用采集到的電壓推算出溫度?這里面涉及到的物理數(shù)學(xué)知識都是初中的。

emmm,我真的,不是很順,自己寫了一個,感覺沒辦法直接用采集的電壓值出溫度
作者: Y_G_G    時間: 2022-12-9 14:10
論壇里有程序呀,自己下載來看一下,應(yīng)該是可以的
作者: Hephaestus    時間: 2022-12-9 14:41
宇智波油頭 發(fā)表于 2022-12-9 13:12
emmm,我真的,不是很順,自己寫了一個,感覺沒辦法直接用采集的電壓值出溫度

我想了下,用初中知識確實無法用公式算出來,要用到牛頓迭代法。
作者: Hephaestus    時間: 2022-12-9 15:05
  1.         #include<stdio.h>
  2.         #include<math.h>
  3.         double resistance;
  4.         double func(double x) //original function
  5.         {
  6.             return -5.775e-7*x*x+3.9083e-3*x+1-resistance/100.0;
  7.         }
  8.         double func1(double x) //derivative function
  9.         {
  10.             return -5.775e-7*2.0*x+3.9083e-3;
  11.         }
  12.         int Newton(double *x,double precision,int maxcyc)
  13.         {
  14.             double x1,x0;
  15.             int k;
  16.             x0=*x;
  17.             for(k=0;k<maxcyc;k++)
  18.             {
  19.                 if(func1(x0)==0.0)
  20.                 {
  21.                     printf("derivative =0! on iterative process.\n");
  22.                     return 0;
  23.                 }
  24.                 x1=x0-func(x0)/func1(x0);
  25.                 if(fabs(x1-x0)<precision || fabs(func(x1))<precision)
  26.                 {
  27.                     *x=x1;
  28.                                 printf("root near the value.%lf\n",*x);
  29.          
  30.                     return 1;
  31.                 }
  32.                 else
  33.                 {
  34.                     x0=x1;
  35.                 }
  36.             }
  37.             printf("iterative repetition overflow.\n");
  38.             return 0;
  39.         }
  40.          
  41.         int main(int argc, char** argv)
  42.         {
  43.             double x,precision;
  44.             int maxcyc;
  45.             printf("resistance of Pt100(85~200):");
  46.             scanf("%lf",&resistance);
  47.             printf("initial iterative value x0:");
  48.             scanf("%lf",&x);
  49.             printf("max iterative repetition:");
  50.             scanf("%d",&maxcyc);
  51.             printf("iterative precision:");
  52.             scanf("%lf",&precision);
  53.             if(Newton(&x,precision,maxcyc)==1)
  54.             {
  55.             }
  56.             else
  57.             {
  58.                 printf("iteration failed!\n");
  59.             }
  60.             return 0;
  61. }
復(fù)制代碼


我給你寫了個牛頓迭代代碼,不要害怕這么長的代碼,主要目的還是展示牛頓迭代的原理和所需要的參數(shù),核心代碼就這么幾行,其他的都可以在移植到單片機的時候刪掉。
  1.             for(k=0;k<maxcyc;k++)
  2.             {
  3.                 x1=x0-func(x0)/func1(x0);
  4.                 if(fabs(x1-x0)<precision || fabs(func(x1))<precision)
  5.                 {
  6.                     *x=x1;
  7.                     return 1;
  8.                 }
  9.                 else x0=x1;
  10.             }
復(fù)制代碼


至于如何從AD讀數(shù)來推導(dǎo)出電阻值,我算了下,確實是初中數(shù)學(xué)問題,就不貼了。
作者: 大漠落日    時間: 2022-12-9 18:21
這個要深入查資料研究一下,體會嘛,肯定是很深刻的
作者: 宇智波油頭    時間: 2022-12-10 08:16
Hephaestus 發(fā)表于 2022-12-9 15:05
我給你寫了個牛頓迭代代碼,不要害怕這么長的代碼,主要目的還是展示牛頓迭代的原理和所需要的參數(shù),核 ...

好的,謝謝您
作者: 宇智波油頭    時間: 2022-12-10 08:20
Hephaestus 發(fā)表于 2022-12-9 15:05
我給你寫了個牛頓迭代代碼,不要害怕這么長的代碼,主要目的還是展示牛頓迭代的原理和所需要的參數(shù),核 ...

Current_Temperature = ((V25-ADC_ConvertedValue[4])/AVG_SLOPE)-179;
我寫的是這種
作者: Hephaestus    時間: 2022-12-10 12:25
宇智波油頭 發(fā)表于 2022-12-10 08:20
Current_Temperature = ((V25-ADC_ConvertedValue[4])/AVG_SLOPE)-179;
我寫的是這種

牛頓迭代比查表法占用flash空間小得多,而且精度高得多,唯一缺點是運行時間比查表法長,為什么不試試?
作者: yzwzfyz    時間: 2022-12-12 08:18
認真研讀“PT100”手冊,記住永遠的法則:要控制什么,就必須先了解什么!!!
你用10K與之分壓,能得到多少的變化分量呢?
作者: hi等你    時間: 2022-12-12 09:11
雖然我沒自己做過溫度計,但腦袋還是能想的出來的,這是模電干的事,pt100是鉑電阻,變化量比較小,這事得交給運放來干,運放放大后的溫度上下電壓值,然后再由ad單片機處理讀取顯示,在這里單片機屬于配角,單片機再怎么神通廣大是無法替代高精度運放的,除非它能集成運放
作者: hi等你    時間: 2022-12-12 09:15
另外補充一句,不要看老大畫的圖了,是個笑話,別當真
作者: yangkang0712    時間: 2022-12-12 11:50
加運放比較妥當,有做過類似項目
作者: coody_sz    時間: 2022-12-12 11:55
PT100我都是直接進入ADC,參考AD7705里的電路。
作者: Hephaestus    時間: 2022-12-12 12:41
coody_sz 發(fā)表于 2022-12-12 11:55
PT100我都是直接進入ADC,參考AD7705里的電路。

只有你說的是靠譜的,說加什么運放的都是不懂裝懂的貨。性能靠譜的運放不貴,但是配套的電阻貴上天了,1ppm的電阻要幾百塊,用普通電阻加運放,電路不知道飄到哪里去了,根本沒法用。
作者: 宇智波油頭    時間: 2022-12-12 13:20
Hephaestus 發(fā)表于 2022-12-10 12:25
牛頓迭代比查表法占用flash空間小得多,而且精度高得多,唯一缺點是運行時間比查表法長,為什么不試試?

可以了可以了!!太感謝了!
作者: coody_sz    時間: 2022-12-12 21:34
Hephaestus 發(fā)表于 2022-12-12 12:41
只有你說的是靠譜的,說加什么運放的都是不懂裝懂的貨。性能靠譜的運放不貴,但是配套的電阻貴上天了,1p ...

以前(90年代以前)沒有好的ADC可以用,所以就使用精密運放來做電阻-電壓轉(zhuǎn)換,消除引線影響,還要有高精度的恒流源,調(diào)整困難,成本非常高。運放精度、溫漂(因為要直流放大),電阻精度、溫漂,都影響長期精度。
后來,ADC差分輸入、參考電壓差分輸入的芯片,比如AD7705,國產(chǎn)的TM7705,都可以直接連接測量,我連恒流源都不用,只需要一個高精度的標準電阻(0.01%~0.1%)。
作者: Hephaestus    時間: 2022-12-12 21:52
coody_sz 發(fā)表于 2022-12-12 21:34
以前(90年代以前)沒有好的ADC可以用,所以就使用精密運放來做電阻-電壓轉(zhuǎn)換,消除引線影響,還要有高精 ...

現(xiàn)代單片機這么便宜,電阻的初始精度并不重要,誤差再大用軟件標定可以輕松消除。這樣溫漂才是影響精度的至關(guān)重要的因素。

舉例來說:


國家級電壓基準是兩個約瑟夫森結(jié),量子電壓標準。省一級的電壓基準是靠基于LTZ1000的萬用表來傳遞的。

LTZ1000的電壓是7.0~7.5V,初始誤差高達±3.6%!但是LTZ1000非常穩(wěn)定啊!初始精度用標定就可以輕松消除,但是不穩(wěn)定就毫無辦法了。





歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 午夜影视免费片在线观看 | 欧美九九九| 成人1区| 国产精品久久久久一区二区三区 | 欧美一区二区三区视频 | 久久久xx| 亚洲欧洲成人 | 久久亚洲综合 | 国产一区二区三区免费视频 | 亚洲一区二区三区在线 | 欧美精品一区二区三区在线播放 | 午夜影院在线观看免费 | 国外成人在线视频 | 国产亚洲精品久久久久动 | 国产yw851.c免费观看网站 | 91av在线影院| 一级午夜aaa免费看三区 | 高清18麻豆 | 精品日韩一区二区 | 亚洲一区中文 | 成人av观看 | 一区二区三区中文字幕 | 国产成人在线一区二区 | 欧美日韩亚洲一区二区 | 男人的天堂在线视频 | 日韩欧美中文字幕在线观看 | 欧美精品一二三 | 中文字幕日本一区二区 | 欧美一级电影免费 | 在线国产一区 | 久青草影院 | 国产日韩一区二区三区 | 成人伊人网 | 中文字幕在线看第二 | 美女视频. | 99爱免费| 成人欧美日韩一区二区三区 | 久久aⅴ乱码一区二区三区 亚洲国产成人精品久久久国产成人一区 | 国产区在线免费观看 | 喷水毛片 | v亚洲 |