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

简介: 本文介绍了温度传感器中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°时候的电压、电阻的映射关系是正确的。后续通过进一步的对其他值抽样,可以做再次的确认。

四、篇尾

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

相关文章
|
4月前
|
存储 Kubernetes 安全
云计算分类与主流产品
云计算已广泛应用于政府、企业和个人生活,主要分为私有云、公有云、混合云和多云。服务模式以IaaS、PaaS、SaaS为主,未来将向S2S模式发展。公有云具备规模大、价格低、灵活性强等特点,而私有云则更注重数据安全和资源控制。混合云结合多种云的优势,提供更灵活的架构。此外,云存储、虚拟桌面、开发测试、电子政务等场景广泛应用,OpenStack、Kubernetes等开源产品也推动了云计算的发展。
651 0
|
10月前
|
安全 搜索推荐 SEO
个人网站制作的步骤及流程
本文为个人网站制作流程指南,分为六步:明确需求、选择域名托管、搭建建站工具、完善素材内容、测试优化及发布维护。推荐使用PageAdmin CMS,拥有丰富的模板和编辑器,易上手且功能强大。
1335 1
|
前端开发
Flutter快速实现自定义折线图,支持数据改变过渡动画
Flutter快速实现自定义折线图,支持数据改变过渡动画
361 4
Flutter快速实现自定义折线图,支持数据改变过渡动画
|
传感器 安全 Java
了解SENT协议及其应用
了解SENT协议及其应用
516 15
|
编译器 C++
VS Code设置C++编译器路径
VS Code设置C++编译器路径
701 0
|
物联网 C# 智能硬件
智能家居新篇章:WPF与物联网的智慧碰撞——通过MQTT协议连接与控制智能设备,打造现代科技生活的完美体验
【8月更文挑战第31天】物联网(IoT)技术的发展使智能家居设备成为现代家庭的一部分。通过物联网,家用电器和传感器可以互联互通,实现远程控制和状态监测等功能。本文将探讨如何在Windows Presentation Foundation(WPF)应用中集成物联网技术,通过具体示例代码展示其实现过程。文章首先介绍了MQTT协议及其在智能家居中的应用,并详细描述了使用Wi-Fi连接方式的原因。随后,通过安装Paho MQTT客户端库并创建MQTT客户端实例,演示了如何编写一个简单的WPF应用程序来控制智能灯泡。
668 0
|
数据采集 安全 测试技术
LabVIEW调用DLL时需注意的问题
LabVIEW调用DLL时需注意的问题
695 0
|
人工智能
人类偏好就是尺!SPPO对齐技术让大语言模型左右互搏、自我博弈
【5月更文挑战第23天】SPPO技术针对大语言模型的对齐问题提出新的解决方案,通过两个LLM自我博弈来学习和满足人类偏好。该方法能更准确地捕捉偏好复杂性,优于传统奖励模型。实验显示SPPO提升了LLM性能,但依赖外部偏好模型和高计算需求限制了其扩展性。[链接](https://arxiv.org/pdf/2405.00675.pdf)
665 1
|
人工智能 移动开发 算法
中国象棋AI在线对弈游戏源码
这是一款html5小游戏,主要功能在于js,带一套皮肤、内置ai算法,有能力的可以自行修改。
894 0
中国象棋AI在线对弈游戏源码

热门文章

最新文章