NTC热敏电阻采集温度-单片机通用模板

NTC热敏电阻采集温度-单片机通用模板

  • 一、NTC热敏电阻转换温度的原理
  • 二、AT104Tem.c的实现
  • 三、AT104Tem.h的实现

一、NTC热敏电阻转换温度的原理

  • ①NTC热敏电阻会随着温度的升高,电阻值R逐渐降低;
  • ②硬件搭建电阻分压电路采集ADC逆推热敏电阻当前的阻值,然后根据阻值查表即可得出温度;
    在这里插入图片描述

二、AT104Tem.c的实现

#include "at104Tem.h"u16	code TemperTable[]={
0x022D,  //0
0x0246,  //1
0x0260,  //2
0x027B,  //3
0x0296,  //4
0x02B2,  //5
0x02CF,  //6
0x02ED,  //7
0x030B,  //8
0x032A,  //9
0x034A,  //10
0x036A,  //11
0x038B,  //12
0x03AD,  //13
0x03D0,  //14
0x03F3,  //15
0x0417,  //16
0x043B,  //17
0x0460,  //18
0x0486,  //19
0x04AC,  //20
0x04D2,  //21
0x04F9,  //22
0x0521,  //23
0x0549,  //24
0x0571,  //25
0x0599,  //26
0x05C2,  //27
0x05EB,  //28
0x0615,  //29
0x063E,  //30
0x0668,  //31
0x0692,  //32
0x06BC,  //33
0x06E6,  //34
0x0710,  //35
0x073A,  //36
0x0763,  //37
0x078D,  //38
0x07B7,  //39
0x07E0,  //40
0x0809,  //41
0x0832,  //42
0x085B,  //43
0x0884,  //44
0x08AC,  //45
0x08D3,  //46
0x08FB,  //47
0x0922,  //48
0x0948,  //49
0x096F,  //50
0x0994,  //51
0x09BA,  //52
0x09DE,  //53
0x0A02,  //54
0x0A26,  //55
0x0A49,  //56
0x0A6C,  //57
0x0A8E,  //58
0x0AAF,  //59
0x0AD0,  //60
0x0AF1,  //61
0x0B10,  //62
0x0B2F,  //63
0x0B4E,  //64
0x0B6C,  //65
0x0B89,  //66
0x0BA6,  //67
0x0BC2,  //68
0x0BDD,  //69
0x0BF8,  //70
0x0C13,  //71
0x0C2D,  //72
0x0C46,  //73
0x0C5E,  //74
0x0C76,  //75
0x0C8E,  //76
0x0CA5,  //77
0x0CBB,  //78
0x0CD1,  //79
0x0CE6,  //80
0x0CFB,  //81
0x0D0F,  //82
0x0D23,  //83
0x0D36,  //84
0x0D49,  //85
0x0D5B,  //86
0x0D6D,  //87
0x0D7F,  //88
0x0D8F,  //89
0x0DA0,  //90
0x0DB0,  //91
0x0DBF,  //92
0x0DCF,  //93
0x0DDD,  //94
0x0DEC,  //95
0x0DFA,  //96
0x0E07,  //97
0x0E15,  //98
0x0E22,  //99
0x0E2E,  //100
0x0E3A,  //101
0x0E46,  //102
0x0E52,  //103
0x0E5D,  //104
0x0E68,  //105
0x0E72,  //1060x0182,  //107
0x018C,  //108
0x0197,  //109
0x01A1,  //110
0x01AC,  //111
0x01B7,  //112
0x01C2,  //113
0x01CE,  //114
0x01D9,  //115
0x01E5,  //116
0x01F1,  //117
0x01FD,  //118
0x020A,  //119
0x0217,  //120
0x0223,  //121
0x0230,  //122
0x023E,  //123
0x024B,  //124
0x0259,  //125
0x0267,  //126
0x0275,  //127
0x0283,  //128
0x0292,  //129
0x02A0,  //130
0x02AF,  //131
0x02BE,  //132
0x02CD,  //133
0x02DD,  //134
0x02EC,  //135
0x02FC,  //136
0x030C,  //137
0x031D,  //138
0x032D,  //139
0x033E,  //140
0x034E,  //141
0x035F,  //142
0x0370,  //143
0x0382,  //144
0x0393,  //145
0x03A5,  //146
0x03B7,  //147
0x03C9,  //148
0x03DB,  //149
0x03ED,  //150
0x03FF,  //151
0x0412,  //152
0x0425,  //153
0x0437,  //154
0x044A,  //155
0x045E,  //156
0x0471,  //157
0x0484,  //158
0x0498,  //159
0x04AB,  //160
0x04BF,  //161
0x04D3,  //162
0x04E7,  //163
0x04FB,  //164
0x050F,  //165
0x0523,  //166
0x0538,  //167
0x054C,  //168
0x0560,  //169
0x0575,  //170
0x058A,  //171
0x059E,  //172
0x05B3,  //173
0x05C8,  //174
0x05DD,  //175
0x05F1,  //176
0x0606,  //177
0x061B,  //178
0x0630,  //179
0x0645,  //180
0x065A,  //181
0x066F,  //182
0x0684,  //183
0x0699,  //184
0x06AE,  //185
0x06C3,  //186
0x06D8,  //187
0x06ED,  //188
0x0702,  //189
0x0717,  //190
0x072C,  //191
0x0741,  //192
0x0756,  //193
0x076A,  //194
0x077F,  //195
0x0794,  //196
0x07A9,  //197
0x07BD,  //198
0x07D2,  //199
0x07E6,  //200
0x07FB,  //201
0x080F,  //202
0x0823,  //203
0x0837,  //204
0x084B,  //205
0x085F,  //206
0x0873,  //207
0x0887,  //208
0x089B,  //209
0x08AE,  //210
0x08C2,  //211
0x08D5,  //212
0x08E8,  //213
0x08FC,  //214
0x090F,  //215
0x0922,  //216
0x0934,  //217
0x0947,  //218
0x095A,  //219
0x096C,  //220
0x097E,  //221
0x0991,  //222
0x09A3,  //223
0x09B5,  //224
0x09C7,  //225
0x09D8,  //226
0x09EA,  //227
0x09FB,  //228
0x0A0C,  //229
0x0A1D,  //230
0x0A2E,  //231
0x0A3F,  //232
0x0A50,  //233
0x0A60,  //234
0x0A71,  //235
0x0A81,  //236
0x0A91,  //237
0x0AA1,  //238
0x0AB1,  //239
0x0AC0,  //240
0x0AD0,  //241
0x0AE0,  //242
0x0AEF,  //243
0x0AFE,  //244
0x0B0D,  //245
0x0B1C,  //246
0x0B2A,  //247
0x0B38,  //248
0x0B47,  //249
0x0B55,  //250
0x0B63,  //251
0x0B71,  //252
0x0B7F,  //253
0x0B8D,  //254
0x0B9A,  //255
0x0BA7,  //256
0x0BB4,  //257
0x0BC1,  //258
0x0BCE,  //259
0x0BDB,  //260
0x0BE8,  //261};TemTypedef Tem;//=============================================================================
//函数名称:CT0FloatHz
//输	入:无
//输	出:无
//功	能:CT0高阻态,CT1低电平
//=============================================================================
void CT0FloatHz(void)
{CT0Clo();CT1Open();P3MODH &= 0xC3;P3MODH |= 0x18;			// P36高阻态 P35 输出低电平	
}//=============================================================================
//函数名称:CT1FloatHz
//输	入:无
//输	出:无
//功	能:分压切换为680R+51k
//=============================================================================
void CT1FloatHz(void)
{CT1Clo();CT0Open();P3MODH &= 0xC3;P3MODH |= 0x24;			// P35高阻态 P36 输出低电平	
}//=============================================================================
//函数名称:F_TemperADCWork
//输	入:无
//输	出:无
//功	能:获取温度数据
//=============================================================================
void F_TemperADCWork(void)
{//u8 TemSumCount=4;u16 i=0;u16 AdcSum=0,AdcAvr=0;CT1FloatHz();nopDelay(2500);AdcAvr = getChannelVal(AD11);CT0Clo();Tem.InTmp = 0;for(i=0;i<=107;i++){	if(AdcAvr>=TemperTable[i])	Tem.InTmp++;else	break;}if(Tem.InTmp>=107)	//Tem.InTmp=50;{CT0FloatHz();AdcSum=0;nopDelay(2500);AdcAvr = getChannelVal(AD11);CT1Clo();Tem.InTmp = 107;for(i=107;i<261;i++){	if(AdcAvr>=TemperTable[i])	Tem.InTmp++;else	break;}if(Tem.InTmp>=260)	Tem.InTmp=260;}	//TemperatureCompensation();	//温度补偿//Tem.InFah=Tem.InTmp*1.8+32;	//华氏度转换}
  • ①根据阻值表和分压计算出ADC_AT引脚的电压,再根据参考电阻逆推出ADC数值;
  • ②测量温度0 ~ 260℃,阻值跨度较大,可通过修改分压电阻的从而提高温度的精度。CT0低电平,CT1高阻态测量0 ~ 106℃范围内的温度,如超出范围控制CT0高阻态,CT1低电平测量107~261℃的温度(切换引脚注意延时给C1电容充电);
  • ③非温度测量周期CT0、CT1设置高阻态进行低功耗处理;

三、AT104Tem.h的实现

#ifndef	__AT104TEM_H__
#define	__AT104TEM_H__#include "board.h"sbit CT0IO  = P3^6;
sbit CT1IO  = P3^5;#define CT0Open()	(CT0IO = 0)
#define CT0Clo()	(CT0IO = 1)
#define CT1Open()	(CT1IO = 0)
#define CT1Clo()	(CT1IO = 1)typedef struct
{//u16 AdcSum;//u16 AdcAvr;//s16 InTmp;//s16 InFah;u16 InTmp;	}xdata TemTypedef;extern TemTypedef Tem;
extern void F_TemperADCWork(void);#endif

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/311813.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ArcGIS加载的各类地图怎么去除服务署名水印

昨天介绍的&#xff1a; 一套图源搞定&#xff01;清新规划底图、影像图、境界、海洋、地形阴影图、导航图-CSDN博客文章浏览阅读373次&#xff0c;点赞7次&#xff0c;收藏11次。一体化集成在一起的各类型图源&#xff0c;比如包括影像、清新的出图底图、地形、地图阴影、道路…

如何在PPT中获得网页般的互动效果

如何在PPT中获得网页般的互动效果 效果可以看视频 PPT中插入网页有互动效果 当然了&#xff0c;获得网页般的互动效果&#xff0c;最简单的方法就是在 PPT 中插入网页呀。 那么如何插入呢&#xff1f; 接下来为你讲解如何获得&#xff08;此方法在 PowerPoint中行得通&#…

Modality-Aware Contrastive Instance Learning with Self-Distillation ... 论文阅读

Modality-Aware Contrastive Instance Learning with Self-Distillation for Weakly-Supervised Audio-Visual Violence Detection 论文阅读 ABSTRACT1 INTRODUCTION2 RELATEDWORKS2.1 Weakly-Supervised Violence Detection2.2 Contrastive Learning2.3 Cross-Modality Knowle…

Yolo-world+Python-OpenCV之摄像头视频实时目标检测

上一次介绍了如何使用最基本的 Yolo-word来做检测&#xff0c;现在我们在加opencv来做个实时检测的例子 基本思路 1、读取离线视频流 2、将视频帧给yolo识别 3、根据识别结果 对视频进行绘制边框、加文字之类的 完整代码如下&#xff1a; import datetimefrom ultralytics …

excel 无法正确处理 1900-03-01 前的日期

问题由来&#xff1a;excel 用公式 TEXT(A1,"yyyy-mm-dd") 转日期时&#xff0c;当A1 的值等于59 的时候&#xff0c;返回值是1900-02-28&#xff1b;当A1 的值等于61 的时候&#xff0c;返回值是1900-03-01&#xff1b;那么当 A1的值为 60 的时候&#xff0c;返回值…

权限管理Ranger详解

文章目录 一、Ranger概述与安装1、Ranger概述1.1 Ranger介绍1.2 Ranger的目标1.3 Ranger支持的框架1.4 Ranger的架构1.5 Ranger的工作原理 2、Ranger安装2.1 创建系统用户和Kerberos主体2.2 数据库环境准备2.3 安装RangerAdmin2.4 启动RangerAdmin 二、Ranger简单使用1、安装 R…

PDF文档电子签名怎么做?

如何确保电子文档的签署具有公信力和法律效力&#xff0c;防止伪造和假冒签名等问题&#xff0c;是电子文档无纸化应用面临的重要挑战。本文将详细介绍PDF文档电子签名的概念、重要性、实施步骤以及相关的法律背景&#xff0c;帮助用户理解并有效应用PDF文档电子签名技术。 1.…

# RAG | Langchain # Langchain RAG:打造Markdown文件的结构化分割解决方案

【文章简介】 在信息技术的现代背景下&#xff0c;高效地处理和分析文本数据对于知识获取和决策支持至关重要。Markdown文件因其易读性和高效性&#xff0c;在文档编写和知识共享中占据了重要地位。然而&#xff0c;传统的文本处理方法往往忽视了Markdown的结构化特性&#xff…

深度学习 Lecture 7 迁移学习、精确率、召回率和F1评分

一、迁移学习&#xff08;Transfer learning) 用来自不同任务的数据来帮助我解决当前任务。 场景&#xff1a;比如现在我想要识别从0到9度手写数字&#xff0c;但是我没有那么多手写数字的带标签数据。我可以找到一个很大的数据集&#xff0c;比如有一百万张图片的猫、狗、汽…

卷积神经网络的结构组成与解释(详细介绍)

文章目录 前言 1、卷积层 2、激活层 3、BN层 4、池化层 5、FC层&#xff08;全连接层&#xff09; 6、损失层 7、Dropout层 8、优化器 9、学习率 10、卷积神经网络的常见结构 前言 卷积神经网络是以卷积层为主的深层网络结构&#xff0c;网络结构包括有卷积层、激活层、BN层、…

专业140+总410+国防科技大学831信号与系统考研经验国防科大电子信息与通信,真题,大纲,参考书。

应群里同学要求&#xff0c;总结一下我自己的复习经历&#xff0c;希望对大家有所借鉴&#xff0c;报考国防科技大学&#xff0c;专业课831信号与系统140&#xff0c;总分410&#xff0c;大家以前一直认为国防科技大学时军校&#xff0c;从而很少关注这所军中清华&#xff0c;现…

【C++】哈希一

这篇博客要说的是哈希算法&#xff0c;哈希又称为散列&#xff0c;它是将存储的值和存储的位置建立起关联关系的一种算法&#xff0c;或者说是一种将任意长度的数据映射为固定长度的输出的算法。 什么意思呢&#xff1f;我们来看一个例子&#xff1a;比如说我们要存储1&#xf…

Github 2024-04-12 开源项目日报 Top10

根据Github Trendings的统计,今日(2024-04-12统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目6TypeScript项目2Cuda项目1C++项目1C项目1HTML项目1Jupyter Notebook项目1JavaScript项目1Python - 100天从新手到大师 创建周期:22…

pytorch 今日小知识3——nn.MaxPool3d 、nn.AdaptiveAvgPool3d、nn.ModuleList

MaxPool3d — PyTorch 2.2 documentation 假设输入维度&#xff08;1,2,3,4,4&#xff09; maxpool torch.nn.MaxPool3d(kernel_size(2, 2, 2), stride(2, 2, 2), padding(1, 0, 0))F 维的 kernel_size 为 2&#xff0c;说明在 F 维的覆盖的 frame 数为 2&#xff0c;也就是…

机器学习实验------决策树

第1关&#xff1a;什么是决策树 任务描述 本关任务&#xff1a;根据本节课所学知识完成本关所设置的选择题。 第2关&#xff1a;信息熵与信息增益 任务描述 本关任务&#xff1a;掌握什么是信息增益&#xff0c;完成计算信息增益的程序设计。 import numpy as npdef calcIn…

【机器学习】knn邻近算法解决实际问题

采用kNN算法回答红色字体提出的问题。要求写出算法过程和预测结果。 KNN原理 KNN&#xff08;K-最近邻&#xff09;算法是一个简单直观的分类方法。它的核心思想是“物以类聚”&#xff0c;即一个样本的类别通常由其周围最近的几个邻居决定。这里的“最近”是通过计算样本间的…

智能零售:引领购物新时代

智能零售通过整合人工智能、物联网、大数据和机器学习等技术&#xff0c;正在彻底改变传统的购物模式&#xff0c;为消费者和零售商提供前所未有的效率和个性化体验。 智能零售利用消费者数据分析来提供个性化的购物推荐。无论是在线平台或是实体店内&#xff0c;智能系统都能…

RabbitMQ - Spring boot 整合 RabbitMQ

一、RabbitMQ 1、RabbitMQ 使用场景 1.1、服务解耦 假设有这样一个场景, 服务A产生数据, 而服务B,C,D需要这些数据, 那么我们可以在A服务中直接调用B,C,D服务,把数据传递到下游服务即可 但是,随着我们的应用规模不断扩大,会有更多的服务需要A的数据,如果有几十甚至几百个下…

Gitea是一个开源、轻量级的自托管Git解决方案

Gitea介绍 Gitea是一个由Go语言编写的、轻量级的、自托管的Git解决方案&#xff0c;类似于GitHub、GitLab等平台。它是用Go语言编写的开源软件&#xff0c;提供了Git版本控制系统的基本功能&#xff0c;包括代码托管、问题跟踪、代码审查、Wiki等。Gitea的设计目标是简单易用、…

uniapp 当前系统没有安装苹果根证书,是否打开证书目录(打开后依次安装证书

当你遇到这类问题时&#xff0c;说明你也极其的困惑&#xff01;这就是为啥大抵国内这些货色搞的东西总是不尽人意&#xff01;连开发者生态都搞不好&#xff0c;就急着吹嘘。 这是官方给的技术说明方案&#xff1a; 恭喜你&#xff0c;当你按照这个搞之后&#xff0c;你的问题…