常用温度传感器的采集和换算方法
1、前言
我觉得温度传感器应该是用量最大的传感器了,我也接触了好几种温度传感器,电阻型(50Ω,100Ω)、电流型(4~20mA)、RS485总线型、单总线型,各有各的特点。因为温度传感器使用很频繁,有必要总结一下几种最常用的温度传感器的采集方式和数据换算方法。
2、DS18B20
学习单片机的时候就很早就学过DS18B20温度传感器,测量范围为 -55 ℃ ~+ 125 ℃ ; 在 -10~+ 85°C范围内,精度为 ± 0.5°C 。DS18B20的的特点是使用单总线通信,单片机只需要使用一根IO口与其通信就能获取温度数据,而且单总线上可以并入多个传感器。但是单总线也是DS18B20的缺点之一,单总线的长度不能太长,否则容易导致信号不稳定,易受干扰,所以适合测量电路板的温度、机箱内温度等,如果测量点在2米以外这通信就不稳定了。另外主机端读取温度的时候时序要求比较严格,通信一次需要消耗ms级的运算时间(其实大部分是在循环等待),通信过程中不宜被打断,如果关闭全局中断,会影响其他重要事件的响应。
DS18B20的通讯时序就不介绍了,网上实在是太多资料了。
3、PT100/PT1000
PT100和PT1000传感器是一样的,都是电阻型的传感器,使用的材质为铂电阻(很贵的样子),温度的采集范围可以在-200℃~+850℃,比DS18B20温度传感器的测量范围宽很多。PT100传感器在0℃的时候为100欧姆,PT1000传感器在0℃的时候为1000欧姆,使用的比较多的是PT100,这里就介绍PT100传感器。
PT100的温度分度表百度上满满的。表面看来PT100的测量温度T和电阻R呈现线性关系,但是实际上不完全是线性的,偏差大的地方会有好几摄氏度的误差,如果想要得到比较高精度的温度测量结果就不能按照线性关系来计算。使用查表法可以计算比较精确的温度值,PT100的分度表是每5℃记录一次阻值,我们如果测量测到电阻为Ra,这时候从电阻分度表中使用二分法进行查找找到电阻Ra处于哪两个阻值Rb、Rc之间(假如没有正好落在阻值上面),然后在Rb和Rc之间近似按照线性计算Ra对应的温度值。实际使用的精度非常高,主要误差还是在测量传感器电阻上。
4、CU50/CU100
CU50和CU100的关系跟PT100和PT1000的关系是一样的,只介绍CU50传感器。CU50的CU表示的是铜(PT表示的是铂),也就是说CU50使用的是铜材质(很便宜的样子),但是CU50得温度测量范围为-50°C-150°C,在测量温度在-50°C-150°C范围之内的时候,传感器电阻和温度处于一定的函数关系,当低于-50℃或者高于150℃的时候就不符合那个函数式了,可能是由于铜的材质问题,所以CU50一般只能测量-50°C-150°C温度范围。
CU50热电阻分度表参考文章:https://wenku.baidu.com/view/9c5ee92e14791711cc791781.html
当测量温度在-50℃<t<150℃时,,其中A=4.280×10-3;B=-9.31×10-8;C=1.23×10-9,R(0℃)=50。 这是传感器电阻关于温度的函数式,但是我们真正使用的时候能测量出来传感器的电阻,需要求出来对应的温度,所以这个式子需要把X轴和Y轴掉个。但是发现这个式子是一个一元三次函数,我试着解了一次想得到温度T关于电阻r的函数式T=f(r),着实解不出来,那就耍点技巧--将次。
假设测量的温度t为150℃,这时候电阻R差不多为82欧姆,这时候:
1+At+Bt(t-100℃)+Ct2(t-100℃)
= 1 + A*150 + B*150*(150-100)+C*150^2*(150-100)
= 1 + 0.642 - 0.00069825 + 0.00138375。
可以看到上面的几项中后两项小到几乎可以忽略掉,其实不管t为多少,后面两项的值都远小于前两项的,也就是说可以去掉Bt(t-100℃)和Ct2(t-100℃)即可。这时候式子:
就可以转成:
R = R(0℃)[1+At]
R = 50 * [1+At]
这下式子被“降次打击”了,既可以求出t关于R的关系式了:
t = (R/50 - 1) / A
假如测量到的电阻为82.134Ω(150℃),代入上式计算得到 t = 150.159℃,假如测量到的电阻为39.242Ω(-50℃),计算得到的 t = -50.28,误差并不大,属于可以接受大范围之内。降次打击成功。
如果对上面计算的精度还是满意的话,需要解一元三次方程:
R = R(0℃)[1+At+Bt(t-100℃)+Ct^2(t-100℃)] ..........................................①
R由采集系统测量测到,则有:
Y = R(0℃)[1+At+Bt(t-100℃)+Ct^2(t-100℃)] - R ..........................................②
求解②式与X轴的交点即可,艺高人可以自行求解。
如果解不出来还有一个常规办法就是查表法,和PT100温度传感器一样。
常用温度传感器的采集和换算方法相关推荐
- 陀螺仪和加速度计MPU6050的单位换算方法
对于四轴的初学者,可能无法理解四轴源代码里面陀螺仪和加速度数据的那些数学转换方法.下面我们来具体描述下这些转换方法. 我们首先来看陀螺仪数据.在MPU6050的手册里面,提供了一个陀螺仪数据表如下: ...
- 常用电子元器件应用要点及识别方法
常用电子元器件应用要点及识别方法2005-9-10硬道理电子技术工作室 <script language="JavaScript" src="http://ln.h ...
- php采集程序的方法
php采集程序的方法在我们程序开发的过程中是经常要遇到的,那我们常用的采集方法有哪些呢,下面我们一起来看具体的方法,还附带有具体实例,让大家一看就明白,会用. 方法一:file_get_content ...
- 几种常用编程语言的编程思想和方法 转
搞软件的人,编程语言的掌握是基本功,如果单单是学习语法,最慢的一周之内也应该可以搞定(个人认为 语法层面c++是最复杂的).不幸的是,软件的本质是逻辑,解决方案的设计是要借助某种解决问题或编程的思想的 ...
- ASP.NET中常用的文件上传下载方法
ASP.NET中常用的文件上传下载方法 文件的上传下载是我们在实际项目开发过程中经常需要用到的技术,这里给出几种常见的方法,本文主要内容包括: 1.如何解决文件上传大小的限制 2.以文件形式保存到服务 ...
- 项目开发中常用JS表单取值方法
项目开发中常用JS表单取值方法 一.常用表单基本取值方法(form1为表单名称,TextBox1为控件ID,以文本框为例,html控件与web服务器控件是一样的) 1.form1.Te ...
- 数据归一化处理方法_科研常用的实验数据分析与处理方法
科研常用的实验数据分析与处理方法 对于每个科研工作者而言,对实验数据进行处理是在开始论文写作之前十分常见的工作之一.但是,常见的数据分析方法有哪些呢?常用的数据分析方法有:聚类分析.因子分析.相关分析 ...
- 计算机公式与函数乘法,excel常用函数乘法公式的使用方法
Excel中经常需要使用到乘法公式进行计算求积,乘法公式具体该如何进行使用呢?下面是学习啦小编带来的关于excel常用函数乘法公式的使用方法,希望阅读过后对你有所启发! excel常用函数乘法公式使用 ...
- php 模拟ip访问网页,curl模拟浏览器,ip,来源,进行网站采集的实现方法
curl模拟浏览器,ip,来源,进行网站采集的实现方法 function doCurl($url, $data=array(), $header=array(), $referer='', $time ...
最新文章
- 详解C#的数学类,Math,浮点数(上)
- AI大牛压箱底的14本2018年进阶书(附PDF链接)
- java set类_java中set类型集合解析(一)
- Codeforces problem 67E(多边形求内核的应用)
- 7纳米!华为鲲鹏920芯片问世,最强性能面向智能计算
- Navicat Premium试用期破解方法(转)
- 【Java从0到架构师】RocketMQ 使用 - 发送消息、接收消息、特殊消息
- android按钮_Android按钮
- taro 微信公众号_Taro 如何开始微信小程序的开发
- 衡量GDP,哪种夜间灯光数据更靠谱?
- ASUS主板ALC887声卡,RTL81XX网卡,黑苹果驱动安装
- JVM 内存分配策略
- Server2008如何卸载MySQL_「完美卸载」完美卸载SQL Server 2008 R2 的方法,适合所有问题 - seo实验室...
- 企鹅java游戏下载安装_飞翔企鹅游戏下载
- python把文件转化为二进制流-python:将一个文件转换为二进制文件(binary)
- C#在VS2019中各种字体颜色的意思
- Java基础关于接口的案例及多态的引用类型转换练习题
- JavaWeb——动态页面技术(JSP/EL/JSTL)
- H264——H264码流分析实例(SPS、PPS)
- mysql 启停脚本_mysql自己编写启停脚本