找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1365|回復(fù): 6
收起左側(cè)

ADC采集NTC溫度

[復(fù)制鏈接]
ID:1041297 發(fā)表于 2024-8-28 16:06 | 顯示全部樓層 |閱讀模式
我看到很多什么查表法,不太理解,就是我現(xiàn)在下面這個(gè)程序,里面算出了NTC電阻值和溫度,那比如我有個(gè)模式只要加熱到150°就算完成,那是不是我只要算出溫度和這個(gè)150°去比較就可以得出是否加熱完成了,而查表法是不是也只是為了方便不用總是去查看手冊而做到程序里面呢?
#include <math.h>
float T_c=0.0;   //溫度值
// 定義常量
#define R_FIXED 10000.0 // 固定電阻值10kΩ
#define B_CONST 3950.0 // NTC的B常數(shù)
#define T0 298.15 // 25℃轉(zhuǎn)換為開爾文
#define R0 10000.0 // NTC在25℃時(shí)的電阻值10kΩ

float calculate_temperature(float voltage) {
    float R_ntc, T;
    float V_supply = 3.3; // 電源電壓3.3V

    // 計(jì)算NTC電阻值
    R_ntc = R_FIXED * (V_supply / voltage - 1);

    // 計(jì)算溫度(開爾文)
    T = 1 / (1 / T0 + log(R_ntc / R0) / B_CONST);

    // 轉(zhuǎn)換為攝氏度
    T = T - 273.15;

    return T;
}

回復(fù)

使用道具 舉報(bào)

ID:1034262 發(fā)表于 2024-8-30 09:59 | 顯示全部樓層
NTC測溫一般兩種方法計(jì)算溫度:查表法和公式計(jì)算法,都可以。
你只要一個(gè)點(diǎn)的溫度,就不用計(jì)算了,查出這個(gè)點(diǎn)的ADC值直接判斷即可。上述方式是能計(jì)算出所有溫度的。
回復(fù)

使用道具 舉報(bào)

ID:1131074 發(fā)表于 2024-8-30 10:24 | 顯示全部樓層
查表法就是先把結(jié)果算出來,芯片不參與計(jì)算結(jié)果;最終就是只要知道阻值(ADC分壓算出來),就可以通過查表對應(yīng)查到溫度。

很多高性價(jià)比8位MCU運(yùn)算速度不快且沒有乘法器,要運(yùn)算"浮點(diǎn)型數(shù)據(jù)+乘除法+對數(shù)",這樣算都要算老半天了,用查表很快就可以知道結(jié)果。
回復(fù)

使用道具 舉報(bào)

ID:1109793 發(fā)表于 2024-8-30 12:48 | 顯示全部樓層
感覺查表比較快吧
回復(fù)

使用道具 舉報(bào)

ID:469589 發(fā)表于 2024-9-6 12:07 | 顯示全部樓層
當(dāng)然查表快。
但表的點(diǎn)數(shù)影響將來的精度。要求不高或CPU資源有限的情況下,查表是優(yōu)選!
回復(fù)

使用道具 舉報(bào)

ID:1052053 發(fā)表于 2024-9-6 20:08 | 顯示全部樓層
若是溫度不需要顯示,那就不用去計(jì)算了,ADC讀出數(shù)據(jù)之后直接做判斷豈不是更好
回復(fù)

使用道具 舉報(bào)

ID:647145 發(fā)表于 2024-9-10 19:28 | 顯示全部樓層
其實(shí)你還可以進(jìn)行曲線擬合,采用多項(xiàng)式或者線性進(jìn)行計(jì)算,這種方式會有誤差,如果對溫度精度沒有太高要求可以采用這種方式
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表