在写温度传感器驱动之前:热敏电阻的温度、电阻、电压的映射关系

简介: 本文介绍了温度传感器中NTC热敏电阻的温度、电阻、电压之间的映射关系,通过理论计算和实际测量验证了在特定温度下电阻值和电压值的对应关系,为编写温度传感器驱动提供了必要的理解和方法。

一、前言

  • 在日常的Soc驱动开发中,对于芯片的实际使用者,大多数时间所调试的是外围设备的驱动,或者说是自己新增设备的驱动。
  • 本文即介绍其中常用的一个小模组:温度传感器(NTC热敏电阻)的使用方法,关键是搞懂其中的映射关系是否正确:温度值、电阻值、ADC读取的电压值。当映射正确后,我们就可以很快的将它们组织成需要的温度曲线,或者填写各个温控阈值(在什么温度,干什么事情)。
  • 中学生略过、在读大学生略过……

二、准备工作

  • 温度传感器,常使用的核心器件就是NTC热敏电阻,其特性就是热敏电阻的阻值(欧姆)会随着温度的变化而变化,并且十分灵敏。而对于温度数据的采集,如本文所采用的全志H713 Soc芯片,实际上获得的一般是热敏电阻两端的实时电压(毫伏)。
  • 所以,对于软件开发人员来了说,首先要搞懂的就是几个变量之间的映射关系:温度–>电阻值–>电压值。

2.1 NTC规格书

  • 拿到设备后,首先需要阅读NTC热敏电阻的规格书,其中最重要的就是其温度-阻值的映射表
  • 最要注意的是,注意观察其阻值是不是一个相对线性的,或者说使用过程中给对温度的精度要求不是那么高,那么只要不是个别部分非线性差异过大,就可以接受,或者分段成若干线性的部分。
  • 本文针对的设备,是投影仪,对于这类设备,比较关注的是高温,不要因为高温而烧毁了LED灯珠或者LCD\DMD等关键显示器件,所以日常选择的温度区间,基本上,只要涵盖30°~90°即可
  • 从本文的NTC规格书中,可以得知30°~90°这个区间基本上是线性的,对于使用方法的讲解,以60°做个例子。

在这里插入图片描述

2.2 原理图

  • 获得了NTC的规格书之后,下一步要准备的就是温度传感器模块的原理图,下面黑线框部分,是对于软件人员更容易理解的一个电路简化,相关信息也可以咨询下硬件工程师。
  • 从这个电路图中,容易干扰的部分,就是R2电阻,它因为连接的是GPADC0(Soc的ADC引脚),这一路向硬件咨询,其实是一个高阻的线路,所以可以将其忽略,因此,继续简化后,就剩下一个R1和Rx(热敏电阻,相当于一个可变电阻器)的串联分压电路。
  • Rx两端的电压值Vx,就是ADC读取后反馈的数据,也可以通过实际测量获得(使用万用表的直流电压档位,红黑表笔连接热敏电阻的两端)。

在这里插入图片描述

2.3 新手的疑问

Soc的ADC引脚读取的是电压值,而规格书里面列出来的却是温度和电阻值的对应关系,电压值怎么和这个电阻值对应上呢?如何验证算法是否正确呢?这是软件人员经常困惑的地方,虽然物理学了那么多年了,但终归用得少,但通过楼上的简化电路,用初中的电路知识,就可以得出答案。

三、问题求解

此处有两个问题(双向验证,double check):

(1)一个是根据电阻值,算出理论上的Vx应该等于多少?

(2)另一个是,根据实际测量获得的Vx,倒推出理论的Rx热敏电阻的阻值是多少?

最终获得的数值,(1)和 (2)的阻值和电压参数应该基本一致

3.1 知道Rx, 求Vx的理论值

  • 在不测量具体Vx的情况下,通过公式计算出Vx的理论值

  • 查规格书,以60°为例,Rx = 2.4734 KΩ

  • 串联电路的电流相等

  • Vx/Rx = 1.8/(Rx+R1) ,其中单位:电阻为欧姆,电压为伏特,R1=3000欧姆

  • 即:Vx = 1.8Rx /(Rx+R1)

计算: Vx = 1.8 * 2473 / (2473 + 3000) = 0.813 v

3.2 实测得知Vx,求Rx的理论值

  • Vx可以通过测量直接获得,而NTC的规格书上只有温度和电阻的MAP,所以如何确定电压和当前温度的对应关系呢?
  • 串联电路的电流相等
  • Vx/Rx = 1.8/(Rx+R1) ,其中单位:电阻为欧姆,电压为伏特,R1=3000欧姆
  • 即: Rx = Vx*R1/(1.8 - Vx)
  • 实际抓打印:zs, gadc_thermal_adc_to_temp temp=60000, val=813
  • 实际测量Vx = 0.813v 和=打印的ADC读数一致

计算:Rx = 0.813*3000 / (1.8-0.813) = 2,471.12 Ω

3.3 综上

从3.1和3.2的计算结果可知,60°时候的电压、电阻的映射关系是正确的。后续通过进一步的对其他值抽样,可以做再次的确认。

四、篇尾

每当搞起热敏电阻类似的简单电路器件,写它们的控制驱动时,总会痛心疾首,当年大学为啥不好好学物理,不好好学习模电和数电,……,总算知道啥都有用了吧!书到用时方恨少!

相关文章
|
存储 前端开发 rax
|
6月前
|
存储 Kubernetes 安全
云计算分类与主流产品
云计算已广泛应用于政府、企业和个人生活,主要分为私有云、公有云、混合云和多云。服务模式以IaaS、PaaS、SaaS为主,未来将向S2S模式发展。公有云具备规模大、价格低、灵活性强等特点,而私有云则更注重数据安全和资源控制。混合云结合多种云的优势,提供更灵活的架构。此外,云存储、虚拟桌面、开发测试、电子政务等场景广泛应用,OpenStack、Kubernetes等开源产品也推动了云计算的发展。
915 0
|
12月前
|
人工智能 Java 程序员
一文彻底搞明白电路图和原理图
本文介绍电路图的基本构成、作用及类型,帮助理解电路原理和实际应用。元件符号、连线、节点和注释说明是电路图的核心要素,通过原理图、方框图、装配图和印板图,可以清晰展示电路结构和工作原理。君志所向,一往无前!
7305 0
|
前端开发
Flutter快速实现自定义折线图,支持数据改变过渡动画
Flutter快速实现自定义折线图,支持数据改变过渡动画
422 4
Flutter快速实现自定义折线图,支持数据改变过渡动画
|
安全 编译器 C语言
深入分析宏定义的优势、局限性及最佳实践。
深入分析宏定义的优势、局限性及最佳实践。
|
传感器 安全 Java
了解SENT协议及其应用
了解SENT协议及其应用
606 15
|
传感器
基于矢量控制的交流电机驱动simulink建模与仿真
**基于MATLAB2022a的交流电机矢量控制Simulink模型研究,展示了电机的转速、扭矩、电压和电流仿真。矢量控制利用坐标变换独立控制电机的转矩和磁通,提升动态性能和效率。通过电流采样、坐标变换、控制器设计和PWM调制实现,适用于电动汽车等领域的高效驱动。**
|
数据采集 安全 测试技术
LabVIEW调用DLL时需注意的问题
LabVIEW调用DLL时需注意的问题
824 0
|
域名解析 缓存 网络协议
计算机网络——ping命令过程的详解、原理
计算机网络——ping命令过程的详解、原理
|
人工智能 移动开发 算法
中国象棋AI在线对弈游戏源码
这是一款html5小游戏,主要功能在于js,带一套皮肤、内置ai算法,有能力的可以自行修改。
1122 0
中国象棋AI在线对弈游戏源码

热门文章

最新文章