NTC(Negative Temperature Coefficient)是一种随温度上升时,电阻值呈指数关系减小的热敏电阻。应用广泛,最近我们就采用了NTC来控制加热并测温,并达到了预期的效果。

1、硬件设计

我们使用三极管作为加热元件,通过NTC来控制通过三极管的电流,以起到控制温度的作用,至于温度控制到多少,可以通过调节电位器来控制。同时使用另一个NTC来测量当前的温度。电路图如下:

上图中我们通过一个电桥来采集NTC电阻的变化,因为电阻的变化会引起C17两端电压的变化。温度越高NTC电阻越小,C17两端电压差就越大,反之越小。我们采用了25摄氏度时,阻值为10K的NTC。不难推断出输出电压与NTC电阻值得关系。当输出电压为0V时,电阻约25K,查表可知唯独为5摄氏度左右。当输出电压为5V时,电阻值接近0,查表可知在100摄氏度以上。职业便是这个电路的理论测量范围。

2、软件设计

前面我们设计了测量电路,也分析了检测电压与NTC电阻制的关系。接下来我们主要讨论一下软件设计。软件的设计我们采用了公式法和查表法两种方式来获取温度值。

1)公式法

我们前面已经提到过,NTC是一种随温度上升时,电阻值呈指数关系减小的热敏电阻。而这种指数关系具体如下:

其中,B是NTC的常数,每种为固定值。Rt是NTC的电阻,R为标称25摄氏度时的电阻。T1是Rt对应的开氏温度,T2是标称的开氏温度。于是我们就可以推导出有电阻计算温度的公式:

根据以上公式我们可以实现:

 /*公式法计算NTC温度值*/
static float FormulaNTCTemperature(float resistance)
{
float temp;
float result=0.0; result=resistance/NTC_NOMINAL_RESISTANCE;
result=(log(result)/NTC_NOMINAL_CONSTANT)+(/(NTC_NOMINAL_TEMPERATURE+KELVIN_CONSTANT));
temp=/result-KELVIN_CONSTANT; return temp;
}

2)查表法

查表法顾名思义就是通过电阻分度表来获取温度区间,再做拟合。首先我们需要建立相应的表我们定义为数组。有了分度表实现也就简单了,但需要注意两端极限位置的处理。具体实现如下:

 /*查表法计算NTC温度值*/
static float LookupNTCTemperature(float resistance)
{
float temp;
uint16_t index=NTC_TABLE_LENGTH+; index=FindTargetLocation(resistance); if(index<=)
{
temp=ntcValueTable[][];
}
else if(index>=NTC_TABLE_LENGTH)
{
temp=ntcValueTable[][NTC_TABLE_LENGTH-];
}
else
{
float lowT=ntcValueTable[][index-];
float lowR=ntcValueTable[][index-];
float highR=ntcValueTable[][index]; temp=((resistance-lowR)*0.5)/(highR-lowR)+lowT;
} return temp;
} /*查找目标位置*/
static uint16_t FindTargetLocation(float resistance)
{
uint16_t position=;
while(ntcValueTable[][position]>resistance)
{
if(position<NTC_TABLE_LENGTH-)
{
position++;
}
else
{
position++;
break;
}
} return position;
}

欢迎关注:

一种基于NTC的控温电路及软件实现的更多相关文章

  1. 高精度NTC测温的硬件电路以及软件设计

    什么是NTC NTC是热敏电阻,其电阻值对温度变化敏感,在不同的温度下,可以呈现不同的电阻值. 热敏电阻有两类,一类是负温度系数电阻(NTC),温度增加时,电阻值降低,另一类是正温度系数电阻(PTC) ...

  2. [信安Presentation]一种基于GPU并行计算的MD5密码解密方法

    -------------------paper--------------------- 一种基于GPU并行计算的MD5密码解密方法 0.abstract1.md5算法概述2.md5安全性分析3.基 ...

  3. <<一种基于δ函数的图象边缘检测算法>>一文算法的实现。

    原始论文下载: 一种基于δ函数的图象边缘检测算法. 这篇论文读起来感觉不像现在的很多论文,废话一大堆,而是直入主题,反倒使人觉得文章的前后跳跃有点大,不过算法的原理已经讲的清晰了.     一.原理 ...

  4. 16种基于 CSS3 & SVG 的创意的弹窗效果

    在去年,我给大家分享了<基于 CSS3 的精美模态窗口效果>,而今天我要与大家分享一些新鲜的想法.风格和趋势变化,要求更加适合现代UI的不同的效果.这组新模态窗口效果包含了一些微妙的动画, ...

  5. tmpfs:一种基于内存的文件系统

    tmpfs是一种基于内存的文件系统, tmpfs有时候使用rm(物理内存),有时候使用swap(磁盘一块区域).根据实际情况进行分配. rm:物理内存.real memery的简称? 真实内存就是电脑 ...

  6. 一种基于重载的高效c#上图片添加文字图形图片的方法

    在做图片监控显示的时候,需要在图片上添加文字,如果用graphics类绘制图片上的字体,实现图像上添加自定义标记,这种方法经验证是可行的,并且在visual c#2005 编程技巧大全上有提到,但是, ...

  7. 一种基于Qt的可伸缩的全异步C/S架构服务器实现(流浪小狗,六篇,附下载地址)

    本文向大家介绍一种基于Qt的伸缩TCP服务实现.该实现针对C/S客户端-服务集群应用需求而搭建.连接监听.数据传输.数据处理均在独立的线程池中进行,根据特定任务不同,可安排负责监听.传输.处理的线程数 ...

  8. 一种基于Qt的可伸缩的全异步C/S架构server实现(一) 综述

    本文向大家介绍一种基于Qt的伸缩TCP服务实现.该实现针对C/Sclient-服务集群应用需求而搭建. 连接监听.传输数据.数据处理均在独立的线程池中进行,依据特定任务不同,可安排负责监听.传输.处理 ...

  9. 一种基于自定义代码的asp.net网站首页根据IP自动跳转指定页面的方法!

    一种基于自定义代码的asp.net网站首页根据IP自动跳转指定页面的方法! 对于大中型网站,为了增强用户体验,往往需要根据不同城市站点的用户推送或展现相应个性化的内容,如对于一些大型门户网站的新闻会有 ...

随机推荐

  1. 二十八、Linux 进程与信号---前台进程组

    28.1 介绍 28.1.1 概念 自动接受终端信号的组称为前台进程组 在终端通过 ctrl + c 等动作产生的信号首先被前台进程组接受 在 shell 启动的若干个进程组默认是父进程所在的组为前台 ...

  2. [译]使用mediatR的notification来扩展的的应用

    原文 你不希望在controller里面出现任何领域知识 开发者经常有这样的疑问"这个代码应该放在哪呢?"应该使用仓储还是query类?.... 怎么去实现职责分离和单一职责呢? ...

  3. luogu 4377 Talent show 01分数规划+背包dp

    01分数规划+背包dp 将分式下面的部分向右边挪过去,通过二分答案验证, 注意二分答案中如果验证的mid是int那么l=mid+1,r=mid-1,double类型中r=mid,l=mid; 背包dp ...

  4. Coursera, Deep Learning 5, Sequence Models, week1 Recurrent Neural Networks

    有哪些sequence model Notation: RNN - Recurrent Neural Network 传统NN 在解决sequence input 时有什么问题? RNN就没有上面的问 ...

  5. P1903 [国家集训队]数颜色 / 维护队列(莫队区间询问+单点修改)

    题目链接:https://www.luogu.org/problemnew/show/P1903 题目大意:中文题目 具体思路:莫队单点修改+区间询问模板题,在原来的区间询问的基础上,我们要记录当前这 ...

  6. #6279. 数列分块入门 3(询问区间内小于某个值 xx 的前驱(比其小的最大元素))

    题目链接:https://loj.ac/problem/6279 题目大意:中文题目 具体思路:按照上一个题的模板改就行了,但是注意在整块查找的时候的下标问题. AC代码: #include<b ...

  7. nginx 端口映射多个应用

    nginx端口映射多个应用,应用中的静态资源路径尽量是写相对路径 server { listen 8000; location / { proxy_pass http://10.1.166.216:9 ...

  8. linux 制作U盘启动,和定制系统

    找到u盘的路径 fdisk -l 将镜像写入u盘 dd if=/root/Downloads/kali-linux-2017.1-amd64.iso of=/dev/sdc 定制U盘启动系统: 安装完 ...

  9. [Kubernetes]CentOS7部署Kubernetes集群

    环境介绍及安装前准备 三台机器,用于部署k8s的运行环境: 节点 ip Master 192.168.243.138 Node1 192.168.243.139 Node2 192.168.243.1 ...

  10. RabbitMQ四种交换机类型介绍

    RabbitMQ  原文地址: https://baijiahao.baidu.com/s?id=1577456875919174629&wfr=spider&for=pc 最新版本的 ...