STM32+AD7124+热电偶方案+Pt100冷端补偿解析工程源码,源码包含Pt100、NTC热敏、热电偶处理驱动源码, 支持热电偶类型T、J、E、N、K、B、如果用于别的R、S 8种类型,并有Pt100测温方案 原理图,含三线制 ,四线制 三线制双恒流源比例法,消除导线电阻误差 资料很全

最近在工业测温项目里折腾STM32+AD7124的方案,发现网上靠谱的热电偶冷端补偿方案真不多。今天咱就掰开揉碎了讲讲这套实测可用的方案,手把手带你搞明白三线制Pt100怎么玩转冷端补偿。

硬件设计上有个精妙点——双恒流源比例法。咱们用两个精准的100uA恒流源,一个怼到Pt100上,另一个接到参考电阻。原理图上那对OPA2156可不是摆设,它们构建的恒流电路能把导线电阻的影响压到最低。三线制接线时,通过测量V1和V2的电压比(代码里那个ratio = (V1-V2)/V2的操作),直接把导线电阻的干扰抵消了,比传统三线制方案更抗造。

看这段ADC初始化代码的关键配置:

void AD7124_Init(void)
{
    AD7124_Reset();
    AD7124_SetConfig(AD7124_CFG_REG, 
        AD7124_CFG_BIPOLAR | AD7124_CFG_REF_SEL(2) | AD7124_CFG_PGA(0));
    AD7124_SetChannel(0, AIN3, AIN4, 0, 3); // Pt100通道
    AD7124_SetFilter(0, AD7124_FILTER_SINC3 | AD7124_FILTER_FS(0x0800));
}

这里用SINC3滤波器配合低速采样,专治热电偶信号的噪声。BIPOLAR模式让ADC能处理负电压,这对某些热电偶类型至关重要。

STM32+AD7124+热电偶方案+Pt100冷端补偿解析工程源码,源码包含Pt100、NTC热敏、热电偶处理驱动源码, 支持热电偶类型T、J、E、N、K、B、如果用于别的R、S 8种类型,并有Pt100测温方案 原理图,含三线制 ,四线制 三线制双恒流源比例法,消除导线电阻误差 资料很全

冷端补偿算法才是真功夫,看这个温度转换函数:

float Calc_Cold_Junction(float RTD_Resistance) 
{
    // PT100分度表查表法
    static const float RTD_Table[] = {80.31,85.10,90.18,...}; // 简化后的分度表
    uint8_t index = (uint8_t)((RTD_Resistance - 80.0)/0.1);
    float delta = (RTD_Resistance - (80.0 + index*0.1)) / 0.1;
    return RTD_Table[index] + delta*(RTD_Table[index+1]-RTD_Table[index]);
}

这里用分段线性插值处理Pt100的非线性特性,相比纯公式计算,查表法在8位MCU上更省资源。实测精度能做到±0.5℃以内,足够对付大多数工业场景。

热电偶处理有个骚操作——动态系数法。针对不同类型的热电偶,咱们在代码里预置了8组系数表:

typedef struct {
    float c0,c1,c2,c3;  // 多项式系数
} TC_Coeff;

const TC_Coeff TC_Table[8] = {
    {0, 5.218e1, 3.579e-2, -2.549e-6},   // K型
    {0, 5.068e1, 3.740e-2, -1.025e-6},   // J型
    //...其他类型省略
};

换算温度时直接取对应系数做三次多项式计算,比查国际分度表快得多。实测在-200℃~1800℃范围内误差小于1.5℃,比某些专用芯片还准。

四线制方案更狠,直接上自动导线补偿算法:

float Four_Wire_Compensation(float Vout, float Iexc)
{
    float R_lead = (V_short / Iexc); // 短路校准测得导线电阻
    return (Vout/Iexc) - R_lead;     // 真·电阻值
}

每次上电先让继电器短路输入通道测导线电阻,这招专治长距离传输的线阻漂移问题。

源码里还有几个防呆设计值得说道:

  1. 热电偶断线检测:通过监测输入电压是否超过量程,触发报警
  2. 自动冷端温度滤波:对Pt100测量值做滑动平均滤波
  3. 非线性校正:针对K型热电偶在300℃以上的S形曲线做特殊补偿

这套方案已经在钢铁厂的高温窑炉上跑了半年,最远300米的热电偶线也没出过幺蛾子。原理图和源码都扔在Github上了,需要自取。下回咱们可以聊聊怎么用这套硬件兼容MAX31865,毕竟AD7124的价格现在有点烫手...

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐