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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3571|回復: 26
打印 上一主題 下一主題
收起左側

求問PT100如何用32單片機內部ADC直接讀取溫度的公式

  [復制鏈接]
跳轉到指定樓層
樓主
求問PT100如何用32單片機內部ADC直接讀取溫度的公式,我們老大畫的電路圖,我黔驢技窮了,求問各位大佬!

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

電路圖是這樣設計的

電路圖是這樣設計的
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:883242 發表于 2022-12-8 18:25 | 只看該作者
PT100溫度與電阻的關系公式:
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時)。
回復

使用道具 舉報

板凳
ID:190832 發表于 2022-12-8 20:46 | 只看該作者
畫了個腿啊,找個專業點的老大吧
回復

使用道具 舉報

地板
ID:756400 發表于 2022-12-8 21:51 | 只看該作者
hange_v 發表于 2022-12-8 20:46
畫了個腿啊,找個專業點的老大吧

PT100當NTC電阻用了
回復

使用道具 舉報

5#
ID:1008030 發表于 2022-12-9 08:09 | 只看該作者
hange_v 發表于 2022-12-8 20:46
畫了個腿啊,找個專業點的老大吧

我也看不懂,但是,哎
回復

使用道具 舉報

6#
ID:1008030 發表于 2022-12-9 08:10 | 只看該作者
Hephaestus 發表于 2022-12-8 18:25
PT100溫度與電阻的關系公式:
RT = R0(1 + AT + BT2 + C(T-100)T3)   
其中:

但是他得讓我用采集到的電壓算
回復

使用道具 舉報

7#
ID:123289 發表于 2022-12-9 09:01 | 只看該作者
先弄清楚測溫原理,問題就解決了。與用什么單片機,一點關系也沒有!
提示:溫度-->電阻-->電壓-->AD-->數字。其中的關系。
回復

使用道具 舉報

8#
ID:1008030 發表于 2022-12-9 10:56 | 只看該作者
yzwzfyz 發表于 2022-12-9 09:01
先弄清楚測溫原理,問題就解決了。與用什么單片機,一點關系也沒有!
提示:溫度-->電阻-->電壓-->AD-->數 ...

我,,明白,我就是縷不順這個關系
回復

使用道具 舉報

9#
ID:883242 發表于 2022-12-9 11:32 | 只看該作者
宇智波油頭 發表于 2022-12-9 08:10
但是他得讓我用采集到的電壓算

Pt100的阻值都告訴你了,你不會用采集到的電壓推算出溫度?這里面涉及到的物理數學知識都是初中的。
回復

使用道具 舉報

10#
ID:236035 發表于 2022-12-9 12:14 | 只看該作者
溫度到電阻,查PT100的對照表。電阻到電壓到AD,不會就看模電書。AD到數字,不會看單片機教材。都不會,那就真沒法子。
回復

使用道具 舉報

11#
ID:1008030 發表于 2022-12-9 13:12 | 只看該作者
Hephaestus 發表于 2022-12-9 11:32
Pt100的阻值都告訴你了,你不會用采集到的電壓推算出溫度?這里面涉及到的物理數學知識都是初中的。

emmm,我真的,不是很順,自己寫了一個,感覺沒辦法直接用采集的電壓值出溫度
回復

使用道具 舉報

12#
ID:401564 發表于 2022-12-9 14:10 | 只看該作者
論壇里有程序呀,自己下載來看一下,應該是可以的
回復

使用道具 舉報

13#
ID:883242 發表于 2022-12-9 14:41 | 只看該作者
宇智波油頭 發表于 2022-12-9 13:12
emmm,我真的,不是很順,自己寫了一個,感覺沒辦法直接用采集的電壓值出溫度

我想了下,用初中知識確實無法用公式算出來,要用到牛頓迭代法。
回復

使用道具 舉報

14#
ID:883242 發表于 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. }
復制代碼


我給你寫了個牛頓迭代代碼,不要害怕這么長的代碼,主要目的還是展示牛頓迭代的原理和所需要的參數,核心代碼就這么幾行,其他的都可以在移植到單片機的時候刪掉。
  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.             }
復制代碼


至于如何從AD讀數來推導出電阻值,我算了下,確實是初中數學問題,就不貼了。
回復

使用道具 舉報

15#
ID:195496 發表于 2022-12-9 18:21 | 只看該作者
這個要深入查資料研究一下,體會嘛,肯定是很深刻的
回復

使用道具 舉報

16#
ID:1008030 發表于 2022-12-10 08:16 | 只看該作者
Hephaestus 發表于 2022-12-9 15:05
我給你寫了個牛頓迭代代碼,不要害怕這么長的代碼,主要目的還是展示牛頓迭代的原理和所需要的參數,核 ...

好的,謝謝您
回復

使用道具 舉報

17#
ID:1008030 發表于 2022-12-10 08:20 | 只看該作者
Hephaestus 發表于 2022-12-9 15:05
我給你寫了個牛頓迭代代碼,不要害怕這么長的代碼,主要目的還是展示牛頓迭代的原理和所需要的參數,核 ...

Current_Temperature = ((V25-ADC_ConvertedValue[4])/AVG_SLOPE)-179;
我寫的是這種
回復

使用道具 舉報

18#
ID:883242 發表于 2022-12-10 12:25 | 只看該作者
宇智波油頭 發表于 2022-12-10 08:20
Current_Temperature = ((V25-ADC_ConvertedValue[4])/AVG_SLOPE)-179;
我寫的是這種

牛頓迭代比查表法占用flash空間小得多,而且精度高得多,唯一缺點是運行時間比查表法長,為什么不試試?
回復

使用道具 舉報

19#
ID:123289 發表于 2022-12-12 08:18 | 只看該作者
認真研讀“PT100”手冊,記住永遠的法則:要控制什么,就必須先了解什么!!!
你用10K與之分壓,能得到多少的變化分量呢?
回復

使用道具 舉報

20#
ID:996773 發表于 2022-12-12 09:11 | 只看該作者
雖然我沒自己做過溫度計,但腦袋還是能想的出來的,這是模電干的事,pt100是鉑電阻,變化量比較小,這事得交給運放來干,運放放大后的溫度上下電壓值,然后再由ad單片機處理讀取顯示,在這里單片機屬于配角,單片機再怎么神通廣大是無法替代高精度運放的,除非它能集成運放
回復

使用道具 舉報

21#
ID:996773 發表于 2022-12-12 09:15 | 只看該作者
另外補充一句,不要看老大畫的圖了,是個笑話,別當真
回復

使用道具 舉報

22#
ID:388550 發表于 2022-12-12 11:50 | 只看該作者
加運放比較妥當,有做過類似項目
回復

使用道具 舉報

23#
ID:1034262 發表于 2022-12-12 11:55 | 只看該作者
PT100我都是直接進入ADC,參考AD7705里的電路。
回復

使用道具 舉報

24#
ID:883242 發表于 2022-12-12 12:41 | 只看該作者
coody_sz 發表于 2022-12-12 11:55
PT100我都是直接進入ADC,參考AD7705里的電路。

只有你說的是靠譜的,說加什么運放的都是不懂裝懂的貨。性能靠譜的運放不貴,但是配套的電阻貴上天了,1ppm的電阻要幾百塊,用普通電阻加運放,電路不知道飄到哪里去了,根本沒法用。
回復

使用道具 舉報

25#
ID:1008030 發表于 2022-12-12 13:20 | 只看該作者
Hephaestus 發表于 2022-12-10 12:25
牛頓迭代比查表法占用flash空間小得多,而且精度高得多,唯一缺點是運行時間比查表法長,為什么不試試?

可以了可以了!!太感謝了!
回復

使用道具 舉報

26#
ID:1034262 發表于 2022-12-12 21:34 | 只看該作者
Hephaestus 發表于 2022-12-12 12:41
只有你說的是靠譜的,說加什么運放的都是不懂裝懂的貨。性能靠譜的運放不貴,但是配套的電阻貴上天了,1p ...

以前(90年代以前)沒有好的ADC可以用,所以就使用精密運放來做電阻-電壓轉換,消除引線影響,還要有高精度的恒流源,調整困難,成本非常高。運放精度、溫漂(因為要直流放大),電阻精度、溫漂,都影響長期精度。
后來,ADC差分輸入、參考電壓差分輸入的芯片,比如AD7705,國產的TM7705,都可以直接連接測量,我連恒流源都不用,只需要一個高精度的標準電阻(0.01%~0.1%)。
回復

使用道具 舉報

27#
ID:883242 發表于 2022-12-12 21:52 | 只看該作者
coody_sz 發表于 2022-12-12 21:34
以前(90年代以前)沒有好的ADC可以用,所以就使用精密運放來做電阻-電壓轉換,消除引線影響,還要有高精 ...

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

舉例來說:


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

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

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产欧美在线观看 | 国产在线97 | 亚洲国产一区二区三区在线观看 | 国产精品久久久久久亚洲调教 | 亚洲国产成人精品久久久国产成人一区 | 毛片免费观看 | 成人h视频在线观看 | 亚洲精品一区二区冲田杏梨 | 毛片免费观看视频 | 中文字幕视频在线看5 | 天天爽夜夜骑 | 国产男女猛烈无遮掩视频免费网站 | 久草热8精品视频在线观看 午夜伦4480yy私人影院 | 日韩在线观看网站 | 青青久久av北条麻妃海外网 | 国产精品视频一二三 | 国产精品一区在线观看 | 牛牛热在线视频 | 黑人精品 | 日韩亚洲欧美一区 | 日韩亚洲一区二区 | 色www精品视频在线观看 | 91视频网址 | 伊人成人免费视频 | av免费在线播放 | 亚洲交性 | 日韩1区 | 日韩在线一区二区 | 国产三级精品视频 | 亚洲国产成人精品女人久久久 | 久草在线在线精品观看 | 国产三级一区二区三区 | 91精品久久久久久久99 | 国产精品精品久久久 | 丝袜久久| 久久精品性视频 | 国产精品久久亚洲7777 | 欧美日韩大陆 | 亚洲视频在线一区 | 成人一区二区视频 | 日本福利片 |