1.流程图
2.PT100
1)信号采集的基本原理
① PT100的阻值会随温度的变化而成正比变化(温度越高阻值越大),但阻值变化很小,约等于0.385 Ω / 度;
② PT100的测温范围是﹣ 200 ℃ ﹣200℃,且在0℃时,阻值刚好等于100 Ω ;
③ PT100的工作电流要小于5 m A ;
④ PT100的阻值虽然随温度的变化而成正比变化,但在不同温度区间内其变化的速率(也就是K 值 K值K值)不一样。
2)PT100温度阻止变化表
3.PT100驱动电路
1)通过分压法,AD采集PT100电压从而得到阻值求出温度
常温(25 ℃ 25℃25℃)水中的PT100的阻值大概在109.89 Ω左右。
单片机输出3.3v电压,PT100分掉电压约为:
109.89 ∗ 0.005 = 0.54945 V
将其根据AD转换的换算公式换算成AD值大概为:
0.54945 / 3.3 ∗ 4096 = 681.98 ≈ 682
当温度上升一度,假设PT100的阻值刚好上升了0.385 Ω,那么其分掉的电压的变动值约等于:
0.385 ∗ 0.005 = 0.001925 V
将其根据AD转换的换算公式换算成AD值大概为:
0.001925 / 3.3 ∗ 4096 = 2.39 ≈ 2
实验中发现,由于stm32供电3.3v电压不稳定,ADC采集PT100电压波动较大,分压误差较大,优化方案成设计一款恒流源电路,通过采集PT100的电压以及恒流源的电流可以得出PT100的阻值,从而得出温度值。
2)基于LDO稳压器(MD5333)的恒流源电路
网上有很多测试PT100的驱动电路,如直流电桥电路,基于运算放大器的恒流源电路等等,笔者在选择驱动电路时也花费了许多时间,综合考虑打板的难度元器件数量等因素,最后选择了基于LDO稳压器(MD5333)的恒流源电路,其电路图如下所示:
至此硬件部分基本选择完毕,开发板方面用的是正点原子F10ZET6精英板
4.DS18B20模块
为了测试实时温度与PT100温度对比,加入了DS18B20模块进行校准对比测试
1)DS18B20简介
DS18B20是一款单总线的温度传感器,测试温度范围为-55~+125℃,精度为±0.5℃。现场温度直
接以单总线的数字方式传输,大大提高了系统的抗干扰性。它能直接读出被测温度,并且可根
据实际要求通过简单的编程实现 9~12 位的数字值读数方式。它的工作电压范围为 3~5.5V,采
用多种封装形式,从而使系统设置灵活、方便,设定分辨率以及用户设定的报警温度存储在
EEPROM 中,掉电后依然保存。
2)DS18B20工作时序简介
所有单总线器件要求采用严格的信号时序,以保证数据的完整性。DS18B20 共有 6 种信号 类型:复位脉冲、应答脉冲、写 0、写 1、读 0 和读 1。所有这些信号,除了应答脉冲以外,都 是由主机发出同步信号。并且发送所有的命令和数据都是字节的低位在前。
① 复位脉冲和应答脉冲
单总线上的所有通信都是以初始化序列开始。主机输出低电平,保持低电平时间至少要在 480us,以产生复位脉冲。接着主机释放总线,4.7K 的上拉电阻将单总线拉高,延时时间要在 15~60us,并进入接收模式(Rx)。接着 DS18B20 拉低总线 60~240us,以产生低电平应答脉冲。
② 写时序
写时序包括写 0 时序和写 1 时序。所有写时序至少需要 60us,且在两次独立的写时序之间
至少需要 1us 的恢复时间,两种写时序均起始于主机拉低总线。写 1 时序:主机输出低电平,
延时 2us,然后释放总线,延时 60us。写 0 时序:主机输出低电平,延时 60us,然后释放总线
延时 2us。
③ 读时序
单总线器件仅在主机发出读时序时,才向主机传输数据,所以,在主机发出读数据命令后,
必须马上产生读时序,以便从机能够传输数据。所有读时序至少需要 60us,且在 2 次独立的读
时序之间至少需要 1us 的恢复时间。每