找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 8494|回复: 2
打印 上一主题 下一主题
收起左侧

[原创]细说 RC 式测温电路

[复制链接]
跳转到指定楼层
楼主
ID:27770 发表于 2011-1-20 00:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

细说 RC 式测温电路

网络上经常遇见使用单片机普通 I/O 口测量温度的文章,有些还有附件给出源程序.------应该感谢原作者的无私与劳动!
美中不足的是,这种应用,实际有很多细节需要考虑的.如果随随便便就去模仿,可能不会得到很好的结果.
这种测量方式,最早见于 PIC 的示例程序,也只有例如 PIC 一样特性的端口,进行这种测量才会比较好.如果使用 51 单片机,则由于 51 的端口特殊性,反而不好用.
常见的 EM78P,HT,SN 等芯片,端口特性基本与 PIC 的吻合,因此,更加廉价的项目就变得更加多机会!
电路通常如下:


实际上,也可以这样做的:


电路的工作原理很简单,第一个电路,是对完全放电后的电容器进行充电,第二个电路,也是对完全放电后的电容器充电!
电路中的三个端口,最好都是双向端口,可以分别工作在输入,输出H,输出L.而作为输入状态使用时,千万不能使用内部上拉!
端口 P2 最好具有施密特触发特性,它往往比普通端口的动作更加可靠!而且动作阀值会更大,这就会有利于增加测量读数和提高分辨力.
P2 是检测电容器上电压是否越过翻转阀值的端口,如果需要使用外部中断功能,那么,选择端口时就要更加注意考虑.----例如:SN2501B 的 FP00.
同时,P2 又是电容器放电的只要通道,通常中间要串联一只 100 欧姆左右的保护电阻.(图上省略了).保护端口不会损坏!
测量电容器放电可以使用的方法有: 程序指令累加计数,只要端口没有越过翻转阀值,就不停地+1,直到端口翻转为止.它占用主程序的运行时间,甚至可能影响显示!因此,需要尽量提高系统的晶体频率!
也可以利用外部中断配合定时器来进行,这样,主要工作就交给系统自动去运行了,主程序的运行不会受到过大影响!推荐使用.而且它可以让定时器的计数频率高于指令速率,可以获得更短测量时间或更大测量读数!
相比之下,利用外部中断和定时器的方式时,程序编写需要更多精力!更有挑战性!
电路里的电容器推荐使用 CBB 的电容器,使用瓷片或者其它电容器都没有那么稳定!
图上的 RT 就是热敏电阻,千万不能按照一般的图纸去干!这个热敏电阻,按照使用的标称值不同而有区别,通常在 0℃ 时,具有上 MΩ 甚至几个 MΩ 的电阻值,单片机端口会对这个值产生极大影响!----具体需要很好观看使用的热敏电阻的分度表(温度/阻值表,也叫 RT 表),-------从这点说,网络上的这种资源只有参考意义,不能照搬!
对热敏电阻,通常要进行线性化处理,如图:

这里,给热敏电阻并联一个 RA,它与热敏电阻并联后,就大大减少了上 MΩ 的数值,要让它们维持在一个远远偏离端口电流影响的范围,例如:并联后=100KΩ~200KΩ.
随后,又给热敏电阻//RA后,串联一只 RB ,它增大了热敏电阻在温度高端的最小值,有时候,热敏电阻到 200℃ 时,本身电阻就是几十 Ω 了!这对电路与端口是不利的!增加这个电阻,可以保证电路的安全工作!一般取几百Ω到几KΩ.
所有测量网络的电阻,最好使用金属膜低温漂电阻,精度选择优于等于 1% (再精就很贵了!主要追求稳定性就可以!)
电路里的参考电阻,通常选择全部量程范围从下而上的 1/3~1/2 处,取出一个点作为参考电阻的取值!不要过高或过低!(是热敏电阻整个并联/串联的等效值,不单单是热敏电阻本身的数值!)
通常做法是:接到项目,又决定使用这种 RC 测量方式后,选择合适的热敏电阻,获得实物与分度表,根据项目要求的精度,把分度表进行压缩,例如:每 2 ℃ 一个表格数字,或每 5℃ 一个表格数字.间隔越大越省事,精度越低!理论上,与表格吻合的值测量误差=0!
测量处理通常是:
1.电容器充分放电!----这个问题很难得到什么参数来保证!可以通过一小段测试程序,选择不同的放电时间,放电后,每次测量同一个阻值是否读数相同来判断!只要放电完全,再长的时间也不会增加读数了,这就可以找到至少多长时间可以完全放电.
2.让 P0,P1,P2 全部设置为输入无上拉模式,然后,参考电阻输出高电平(图1)或低电平(图2),同时开始电容器充电计数.直到端口P2翻转!得到读数 RM0.
3.电容器充分放电!----要求同上.
4.让 P0,P1,P2 全部设置为输入无上拉模式,然后,等效热敏电阻端口输出高电平(图1)或低电平(图2),同时开始电容器充电计数.直到端口P2翻转!得到读数 RM1.
5.使用 RM1*系数/RM2=对应温度下的一个表格值.(系数是为了计算小数位而增加的.)
6.做好全部表格后,看看相邻 2 个表格的差,是否≥要求的分辨力.例如:要求小数点有一位数,那么,表格之间必须有 10 个字的间隔.否则达不到要求!相邻表格数值太小怎么办? 提高计数器速率,增大 CBB 电容器数值,修改热敏电阻等效电路参数.还有就是重新选择另外一种热敏电阻!
7.有了表格值,就可以把测量的当前值与表格值对比,对上哪一级就得到温度的整数位了!没有小数点!如果是>上面一格又<下面一格,那就有小数点了!把把测量值-整数表格值的余数/这2 格相邻差值=小数点的数值.
8.经过良好调试的程序,脱机运行时,供电在 5V ±0.5V 变化时,正确读数基本不会变化!-----如果读数也大幅度变化就不行啦!太不能自动跟踪自动稳定啦!
本文力图非常仔细的对低成本的 RC 方式的模拟到数字转换模式进行说明,以便补充许多有关此方法的网络文章的说明不足!
同时,也发布过一些实际项目资料的一些帖子,非常希望爱好者可以正确合理使用这种方法.提供一点点经验之谈!如有不对,欢迎指正!
谢谢您的浏览!

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶2 踩
回复

使用道具 举报

沙发
ID:892475 发表于 2021-6-24 16:29 | 只看该作者
想知道这个PT1000 b级的传感器能测多少精度
回复

使用道具 举报

板凳
ID:917199 发表于 2021-6-25 19:11 | 只看该作者
看得出楼主写得非常用心,这么好的帖居然没多少回复?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表