NTC热敏电阻测温C程序设计

2024-02-21 22:50

本文主要是介绍NTC热敏电阻测温C程序设计,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1 、NTC热敏电阻简介

       此次测温使用的NTC热敏电阻随着温度的升高而降低阻值(即负温度系数)。阻值即为NTC的标称阻值,大多数情况下即华氏25℃时的阻值,例如10K的NTC热敏电阻,即它在25℃时阻值为10KΩ,当然也有些特殊的阻值是以其它温度为标称的;B值是材料常数,其由制成它的陶瓷材料确定,并描述在两个温度点之间的特定温度范围内的电阻(R/T)曲线的梯度。每种热敏电阻材料将具有不同的材料常数,因此具有不同的阻值与温度曲线、温度与阻值表。

      NTC热敏电阻的电气参数主要关注:封装、B值、温度、NTC阻值、阻值公差(例如:0805 3950K 25℃ 10KΩ ±1% );根据使用用途不同选用不同封装、B值、NTC阻值、阻值公差的NTC热敏电阻。

属性参数值
商品目录NTC热敏电阻
阻值(25℃)10kΩ
电阻精度±1%
B值(25℃/50℃)3950K
B值(25℃/75℃)-
B值(25℃/85℃)-
B值(25℃/100℃)-
功率200mW
B值精度±1%
最大稳态电流(25℃)440uA
工作温度-55℃~+125℃

 截图来自深圳市敏创电子有限公司 (thermistors.cn) 

       通过上图曲线可以看出NTC阻值与温度相关但不是呈线性关系,与Rt=R*EXP(B*(1/T1-1/T2))相关,处理器取得的ADC数据想要转换成对应实际温度,就必须对数据进行处理。

方法1:可以将对应温度的NTC阻值,通过计算ADC值写到数组中去,然后通过查表方式得到温度值;

方法2:可以通过热敏电阻Rt=R*EXP(B*(1/T1-1/T2))计算方式得到。

2、电路应用原理图 

       若ADC端口处电流过小,单片机或者FPGA等处理器无法有效采集,建议加电压跟随器电路 ;预防ESD,建议ADC的处理器IO口增加ESD管。NTC热敏电阻可上拉或者下拉,即NTC与RES位置互换(计算分压或者ADC数据时需要根据实际电路)。

 3、温度与阻值表

100K MF58系列 热敏电阻 在0°C至200°C范围内±1°C 100KOhm@25°C| @ 25°C时100000欧姆| 基于FENWALL CURVE 16 | B值曲线为3950K

温度与阻值表

温度(℃)阻值(Ω)温度(℃)阻值(Ω)温度(℃)阻值(Ω)温度(℃)阻值(Ω)
-403273083.321119189.18211914.21432143.5
-393062660.622114027.78311537.81442091.6
-382867207.82310911884111751452041.1
-37268556124104446.48510825.31461992
-3625166572510000086104881471944.3
-352359518.62695766.98710162.81481897.9
-342213250.52791735.8889849.11491852.8
-332077032.22887895.9899546.51501808.9
-321950107.92984237.3909254.61511766.3
-311831784.73080750.4918972.91521724.8
-301721425.53177426.49287011531684.5
-291618444.23274256.8938438.51541645.2
-281522300.93371233.6948185.11551607
-271432499.13468349.4957940.41561569.9
-261348580.93565597.1967704.21571533.8
-251270124.336629709774761581498.6
-241196740.13760461.8987255.51591464.3
-231128069.13858066.4997042.51601431
-221063779.73955778.41006836.71611398.6
-211003565.74053592.31016637.81621367
-20947143.94151503.11026445.51631336.3
-19894252.442495061036259.71641306.3
-18844649.24347596.610460801651277.2
-17798109.94445770.51055906.21661248.8
-16754426.94544023.81065738.11671221.2
-157134084642352.51075575.61681194.2
-14674874.94740753.11085418.31691168
-136386624839222.21095266.11701142.4
-12604616.34937756.41105118.91711117.5
-11572594.95036352.71114976.41721093.2
-105424665135008.21124838.41731069.6
-9514106.55233720.11134704.91741046.5
-8487402.35332485.81144575.61751024
-7462247.15431302.71154450.41761002.1
-6438542.35530168.61164329.2177980.8
-5416195.75629081.11174211.7178960
-4395121.95728038.11184098179939.6
-3375241.15827037.61193987.8180919.8
-23564795926077.61203881181900.5
-1338766.36025156.41213777.5182881.7
0322038.46124272.21223677.2183863.3
13062356223423.31233579.9184845.4
2291299.96322608.21243485.7185827.9
3277180.46421825.41253394.3186810.9
4263827.66521073.41263305.7187794.2
5251195.56620350.91273219.7188778
6239241.36719656.51283136.3189762.1
7227924.96818989.21293055.5190746.7
8217208.76918347.71302977191731.6
9207057.67017730.81312900.9192716.8
10197438.97117137.61322827193702.4
11188321.67216567.11332755.3194688.4
12179676.97316018.11342685.7195674.7
13171477.97415489.91352618.2196661.3
141636997514981.61362552.6197648.2
15156316.67614492.31372488.9198635.4
16149308.37714021.31382427.1199622.9
17142653.37813567.71392367.1200610.8
18136331.77913130.91402308.7
19130325.28012710.21412252.1
20124616.58112304.81422197

 4、热敏电阻测温C程序设计

#include <stdio.h>
#include <math.h>typedef struct
{double          sys_vol;     /* System Voltage */double          pudo_res;    /* Pull-down resistor */unsigned int    ntc_res;     /* Thermistor nominal resistance value */unsigned int    hex_x;       /* The ADC resolution -12Bit_4096 10Bit_1025 8Bit_256 */unsigned int    b_x;         /* B value of thermistor */
}ntc_val_t;void ntc_init(ntc_val_t *val,double sys_vol,double pudo_res,unsigned int ntc_res,unsigned int hex_x,unsigned int b_x)
{val->sys_vol=sys_vol;val->pudo_res=pudo_res;val->ntc_res=ntc_res;val->hex_x=hex_x;val->b_x=b_x;
}/*** This function converts the ADC value to a temperature value.* Rt=R*EXP(B*(1/T1-1/T2))** @param NTC initializes the structure.* @param ADC values** @return NTC temperature*/
double algorithm_ntc(ntc_val_t *val,unsigned int adc_val)
{double v_x;    /* Measured voltage value */double rt_x;   /* Measure the resistance */double temp_x; /* Measure the temperature */v_x = val->sys_vol - ((double)adc_val / val->hex_x * val->sys_vol);rt_x = (val->pudo_res * v_x) / (val->sys_vol - v_x);printf("NTC阻值:%.2fKΩ\n",rt_x);temp_x = ( 1 / (log(rt_x / val->ntc_res) / val->b_x + (1 / 298.15) ) ) - 273.15;return temp_x;
}int main(void) {ntc_val_t val;double temp_adc;unsigned int adc_value=494;ntc_init(&val,3.3,15,100,4096,3950);temp_adc=algorithm_ntc(&val,adc_value);printf("温度:%.2f℃\n",temp_adc);return 0;
}

开始运行...

NTC阻值:109.34KΩ
温度:23.00℃

运行结束。

这篇关于NTC热敏电阻测温C程序设计的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/733320

相关文章

C语言程序设计(数据类型、运算符与表达式)

一、C的数据类型 C语言提供的数据类型: 二、常量和变量 2.1常量和符号常量 在程序运行过程中,其值不能被改变的量称为常量。 常量区分为不同的类型: 程序中用#define(预处理器指令)命令行定义变量将代表常量,用一个标识符代表一个常量,称为符合常量。 2.2变量 变量代表内存中具有特定属性的一个存储单元,用来存放数据,在程序运行期间,这些值是可以 改变的。 变

C语言程序设计(选择结构程序设计)

一、关系运算符和关系表达式 1.1关系运算符及其优先次序 ①<(小于) ②<=(小于或等于) ③>(大于) ④>=(大于或等于 ) ⑤==(等于) ⑥!=(不等于) 说明: 前4个优先级相同,后2个优先级相同,关系运算符的优先级低于算术运算符,关系运算符的优先级高于赋值运算符 1.2关系表达式 用关系运算符将两个表达式(可以是算术表达式或关系表达式,逻辑表达式,赋值表达式,字符

智能工厂程序设计 之1 智能工厂都本俱的方面(Facet,Aspect和Respect)即智能依赖的基底Substrate 之1

Q1、昨天分别给出了三个智能工厂的 “面face”(里面inter-face,外面outer-face和表面surface) 以及每个“面face” 各自使用的“方”(StringProcessor,CaseFilter和ModeAdapter)  。今天我们将继续说说三个智能工厂的“方面” 。在展开之前先看一下三个单词:面向facing,取向oriented,朝向toword。理解这三个词 和

C语言程序设计 笔记代码梳理 重制版

前言 本篇以笔记为主的C语言详解,全篇一共十章内容,会持续更新基础内容,争取做到更详细。多一句没有,少一句不行!  形而上学者谓之道,形而下学者谓之器 形而上学者谓之道,形而下学者谓之器 第1章 C语言的流程 1.C程序经历的六个阶段 编辑(Edit)预处理(Preprocess)编译(Compile)汇编(Assemble)链接(Link)执行(Execute)  2.

ACM东北地区程序设计大赛

不得不说随着参赛级别的提高,题目真的是越来越难啊,不过队长真是给力啊,在我们三个共同努力之下拿下了地区赛三等奖,哈哈我们可是大一唯一一只获奖队,终于在这次比赛打败了田大神。。。大神是失手了,俺和他差距还是挺大的。。。队友陈彤马上要去服兵役了,他说这是我们送给他最好的离别礼物,希望那家伙在部队好好干,以后谁干揍我!!!东北地区赛结束后,今年已经估计没机会参加亚洲区比赛了,赶紧补高数和线数啊!!别挂了

学习硬件测试05:NTC(ADC)+正弦波(DAC)+DMA(ADC+DAC)(P73、P76、P78)

文章以下内容全部为硬件相关知识,鲜有软件知识,并且记的是自己需要的部分,大家可能看不明白。 一、NTC(ADC) 1.1实验现象 本实验用 NTC 采集温度,数码管实时显示温度数据(整数),左下角 USB 小串口每隔 1S 打印温度信息。 1.2硬件电路 NTC 电阻是一个模拟温度传感器,随着温度的升高,电阻值逐渐减小。电路简单介绍如下: 电源滤波电容在 25℃ 室温下 NTC 电

pta-2024年秋面向对象程序设计实验一-java

文章申明:作者也为初学者,解答仅供参考,不一定是最优解; 一:7-1 sdut-sel-2 汽车超速罚款(选择结构) 答案: import java.util.Scanner;         public class Main { public static void main(String[] arg){         Scanner sc=new Scanner(System

C语言程序设计(算法的概念及其表示)

一、算法的概念 一个程序应包括两个方面的内容: 对数据的描述:数据结构 对操作的描述:算法 著名计算机科学家沃思提出一个公式: 数据结构 +算法 =程序 完整的程序设计应该是: 数据结构+算法+程序设计方法+语言工具 广义地说,为解决一个问题而采取的方法和步骤,就称为“算法”。 对同一个问题,可有不同的解题方法和步骤。为了有效地进行解题,不仅需要保证算法正确,还要考虑算

基于单片机的热成像测温显示系统设计

本设计基于单片机的热成像测温显示系统,本系统包括STM32F103C6T6微控制器、MLX90640红外温度传感器、TFT-LCD显示屏、AT24C02存储模块、报警模块、按键模块和MP3语音播报模块。其可以通过热成像传感器对被检测物体的温度进行非接触式测量,并能够将被测信息显示在LCD显示屏上;采集得到的温度值通过与预先设定的报警阈值进行比对,利用语音模块和LED灯实现了超阈值报警功能

1--程序设计的灵魂—算法

一:算法 特定问题求解步骤的描述 在计算机中表现为指令的有限序列 算法是独立存在的一种解决问题的方法和思想 对于算法而言,语言不重要,重要的是思想 二:算法特性 输入:有0个或多个输入 输出:至少一个输出 有穷:有限步骤之后自动结束 确定:每一步都有确定的含义 可行:每一步可行 三:算法设计准则 正确性,可读性,健壮性,高性价比 程序=数据结构+算法 四:影