NTC测温,热力学公式,非查表法。三行代码搞定

--- 模块功能:NTC功能
-- ADC测量精度(10bit,电压测量范围为0到1.85V,分辨率为1850/1024,测量精度误差为20MV)
-- @author DZQ
-- @module ntc
-- @license MIT
-- @copyright openLuat
-- @release 2018.03.14

module(...,package.seeall)

--[[NTC:负温度系数热敏电阻,在温度越高时电阻值越低,应用电路NTC电阻与GND相连,标准25°下的阻值与VCC相连分压
NTC电阻温度计算公式:Rt = Rp*EXP(Bx*(1/T1-1/T2))
T1,T2 :单位都是开尔文温度
Rt :是热敏电阻在T1温度下的阻值
Rp : 是热敏电阻在T2常温下的标准阻值
EXP:e的n次方
Bx :热敏电阻的重要参数
T2是已知的即:标准温度下的标准阻值(Rp)的开尔文温度值(273.15+25.0)
T1就是欲求的温度(开尔文标):T1 = 1/(ln(Rt/R)/B+1/T2)
]]
--[[
功能:获得温度
参数:Vadc:获取的ADC值,Rp:NTC自身的阻值(25°C),Bx:热敏电阻的重要参数
返回值:温度值
例子(10KΩ B:3380):getTemp(522,10000,3380)]]
function getTemp(Vadc,Rp,Bx)
local Rt = (Vadc*Rp)/(1024-Vadc)--计算电阻值
local temp=(1/(math.log(Rt/Rp)/Bx+(1/298.15)))-273.15
return temp - temp %0.01--精确到小数点后2位
end


上次更新 2021-01-28