温度传感器(DS18B20和PT100)

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 的恢复时间。每

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值