站内搜索
发作品签到
三线制铂电阻测温电路项目
专业版

三线制铂电阻测温电路项目

简介

三线制铂电阻测温项目板,作为西门子杯项目的参考

简介:三线制铂电阻测温项目板,作为西门子杯项目的参考

开源协议

GPL 3.0

创建时间:2026-06-29 20:12:55更新时间:2026-06-30 11:17:43

描述

项目说明

功能说明

  1. 支持三线制铂电阻接入;
  2. 板载精密电阻校准;
  3. 支持2.0寸天空星屏幕拓展板;
  4. 支持串口打印数据;

实物图

445eada3d8d38632f1644283f1271b34_compress.jpg

64ab151c99c7bb21d488d1e73307c12b_compress.jpg

电路说明

这里重点介绍铂电阻测温电路;测温电路可以拆分为3部分,分别为输入切换、恒流、差分测量

输入切换电路

image.png
外部铂电阻的输入,接入8路双通道模拟开关中,其余7路用于切换内部的精密电阻作为输入;
这里需要注意,三线制铂电阻的测量电路是有讲究的,B2引脚必须要连接到后续的100R电阻上去,Y2引脚由于已经经过了铂电阻自身,所以不用100R电阻;这里是给后续差分减法电路做准备的,一定不能接错了;

恒流源电路

image.png
使用一个基准电压+两个运放组成恒流源电路,此时恒流电流由负载电阻与基准电压决定;目前设置的恒流值为1.25V/1.35K=0.9259mA;
铂电阻的恒流电流不能过大,通常需要小于1mA,否则自身会有功耗,然后会发热导致测量不准;

差分减法电路

image.png
这里使用一个仪表放大器来作为输入,仪表放大器的选择一定要注意它的共模输入电压,有些高压仪表放大器你使用低压供电时,共模输入电压会变得非常小;

我最开始使用INA828运放,然后±3V供电,但是这个运放得共模输入输入电压需要比供电电压小2V,基本就没办法正常工作了;后面才选择这个INA333,是一个低压仪表运放;
仪表放大器的增益为:G=1+(100k/Rg);此处我配置的增益为28.027倍;

总的配置图

image.png
这里串联起来给大家分析,暂时不考虑模拟开关,假设B2直连I1、Y7直连I2;

此时I1电压路径为:3.3V - I总 * 1000R - I1 * Rw - I1 * 100R;
此时I2电压路径为:3.3V - I总 * 1000R - I2 * PT100 - I2 * Rw;

I总=I1+I2;
I1=I2=恒流源电流=0.9259mA;
Rw=线内阻+模拟开关内阻;
最后进入到仪表放大器中;此时为I1电压-I2电压;只要Rw相等;
就会得到I2PT100-I1100R;
PT100=100R+0.3851RT;
此时就会得到I2 * 100R+I2 * 0.3851
T-I1 * 100R;
最终就只会剩下I2 * 0.3851 * T;然后再 × 放大倍数G;
输出的电压就会与温度呈一定的倍数关系;
按照目前的恒流值以及增益,输出电压会等于10mV * T;也就是说温度每变化一摄氏度,电压变化10mV;
需要注意,如果有负温度,此时输出电压可能会变成负数,所以我在仪表放大器中加入1.25V电压基准抬升,此时即可测量到-125摄氏度---+205摄氏度;基本够用了;

一个大坑

上面的计算都是建立在Rw相等的前提下,这里为适配西门子杯的阻值,我使用了模拟开关作切换,看起来是加入了精密电阻做校准,但实际是模拟开关的通道内阻是不一致的,甚至会有1R左右的误差,此时带来的影响是。如果直接拿上述公式去还原温度变化,会有2摄氏度左右的误差;

这一点困扰了我好久,我一直以为像这种双通道的模拟开关,至少两个通道间的阻值基本是不会有误差的;

所以最终的代码会变成,我必须使用内部的精密电阻做校准,通过多点拟合的方式来消除线阻不匹配的误差;

下面附上测量的结果图;校准拟合后误差基本在1摄氏度以内;

f11b110fbb19f29effb3d4177a8cadcd_compress.jpg

同时我也尝试了不接入模拟开关的效果,发现铂电阻本身的精度配合这个电路就可以达到1摄氏度以内,所以说大家不要轻易在精密电阻测量中使用模拟开关;

e515e7dd24ce5fd9578541526befd998_compress.jpg

8cb32bbc41d1058928dacb0834a9cba8_compress.jpg
这里我使用串口打印出相关的电压,大家可以换算一下,此时我使用的配置电阻为2.49K恒流+4.02K增益电阻,大概是5mV每摄氏度;

换算后会得到23.16摄氏度,与购买的数字温湿度计一致,这个数字温湿度计使用SHT40;可信度还是可以的。

其余外设

其余外设对于这个下面来说并是重点,这里我考虑到adc精度,使用ADS1115作为ADC输入,如果你的接受误差大一点,其实用单片机ADC加一个外部基准源也是可以的;

Flash我本来是想用来做lvgl进行显示字库的,大家可以删除掉,以节省成本,这个本身也只是测温,可以不用做UI;

关于代码

代码我全程使用AI辅助完成,开发环境为STM32CubeMx+STM32 for Vscode;代码我会放在附件中;大家有需要可以自行下载,关于软件的使用,大家可以在blbl上找STM32官方的教程,很简单。

相关hex文件在build/Debug文件夹中,可以直接使用;

stlink+stm32cubeprogrammer软件进行下载;

写在最后

该项目可以作为西门子杯赛题的训练参考,基本还是符合赛题要求的;但是我也简化了很多;此外如果仅是铂电阻测温的话,不要加这个模拟开关了,可以尝试换更好的模拟开关,或使用外部校准板进行校准,一定注意线电阻的一致,否则电压减不掉;

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

3D模型

序号文件名称下载次数
暂无数据

附件

序号文件名称下载次数
1
platinum_res_temp.7z
14
克隆工程
添加到专辑
0
0
分享
侵权投诉
知识产权声明&复刻说明

本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。

请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。

底部导航