使用NTC负温度系数热敏电阻控制温度

news2024/11/27 9:34:49

鱼缸原来的加热棒使用的是NTC负温度系数的热敏电阻测温,负温度系数是指随着温度的升高,电阻是不断按照指数形式减小的,在22度的情况下实测电阻是10K多,可以断定使用了10K(25度下是10K)的电阻,为了先做好实验准备,先买了10K的B3950的热敏电阻:
在这里插入图片描述
将18B20和10K电阻放在一起,获得接近的温度数据,NTC程序:


 float fnCalculation_temperature(uint16_t ADC_values)
 {
 	uint16_t adc_temp=0;
 	float m_wTemperature=0.0; 		//温度值 初始化为0
 	float m_wR2=12000.0;			//附带分压阻值电阻 
 	float m_wR1=0.0; 				//热敏电阻 初始化为0
 	float T2=298.15;				// 273.15 + 25
 	float B=3950.0;  				//数据手册上找
 	float K=273.15; 				//开尔文
 	float R2V=0.0;  				//分压值 初始化为0

 	//一般转换需要时间,普通转换,这里加放转换函数。
 	adc_temp = ADC_values;
 	//需要的时间
 	//HAL_Delay(1);

 	//printf("adc = %d\r\n",adc_temp );

 	//自己单片机>>>>是12位ADC
 	//(1)2^12=4096
 	//(2)上拉3.3V
 	R2V=(adc_temp*(3.25/4096));
 	//电阻公式
 	//m_wR1=((3.3-R2V)*m_wR2)/R2V;
 	m_wR1=(R2V * m_wR2)/(3.25 - R2V);	//接线不同,改了公式
 	//R2=(R2V*R1)/(3.3-R2V);
 	//套公式使用 //注意下面公式中m_wR2在25度是正好是10K,和电路图正好重合
 	//m_wTemperature=1.0/(1.0/T2+log(m_wR1/m_wR2)/B)-K+0.5;
 	m_wTemperature=1.0/(1.0/T2+log(m_wR1/m_wR2)/B) - K - 5.6;//和18B20的温度有误差,加了修正

 	return m_wTemperature;

 }

分压电阻一般使用和热敏电阻相同的阻值,结果没有找到10K的,用了12K替代,分压电阻放在VCC端,就是VCC->12K分压电阻->10K B3950热敏电阻->GND的接线方式,单片机的ADC管脚测试两个电阻之间的电压变化。
调整了电阻的计算公式,测试了电压是3.25V。
因为最终测试结果和18B20的结果有偏差,没有找到原因在哪里,干脆加了个5.6的偏移量,结果算是准确,问题后面再找。

读ADC的程序:

uint32_t get_adc_value1(void)
 {
 	HAL_ADC_Start (&hadc1);//第一步,开启ADC
 	HAL_ADC_PollForConversion (&hadc1,50);// 查询函数,等着ADC 转换,查询转换的标志位.
 	if (HAL_IS_BIT_SET (HAL_ADC_GetState(&hadc1),HAL_ADC_STATE_REG_EOC)) //判断ADC是否转换完成,判断EOC标志位
 	{
 		return HAL_ADC_GetValue(&hadc1); //  获取ADC的值
 	}
 	else return 0;
 }

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

configure: error: no acceptable C compiler found in $PATH解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

10-1,ZZ004 新型电力系统运行与维护赛题第十套

2023年全国职业院校技能大赛中职组 “新型电力系统运行与维护” 竞 赛 任 务 书 10 第一部分 竞赛须知 竞赛总分为100分,完成时间为7小时。 一、竞赛纪律要求 (一)正确使用设备与工具,严格遵守操作安全规范。 (二&…

如何文件从电脑传到iPhone,这里提供几个方法

本文介绍了如何使用Finder应用程序、iTunes for Windows、iCloud和谷歌照片将照片从Mac或PC传输到iPhone。 如何将照片从Mac传输到iPhone 如果你有一台Mac电脑,里面装满了你想转移到iPhone的照片,这是一件非常简单的事情。只需遵循以下步骤&#xff1a…

Linux iptables防火墙(一)

1.1 Linux防火墙基础 在 Internet 中,企业通过架设各种应用系统来为用户提供各种网络服务,如 Web 网站、 电子邮件系统、 FTP 服务器、数据库系统等。那么,如何来保护这些服务器,过滤企业不 需要的访问甚至是恶意的入侵呢&a…

普中STM32-PZ6806L开发板(HAL库函数实现-无源蜂鸣器响动)

简介 本篇将驱动无源蜂鸣器进行5KHz的响动。电路原理图 蜂鸣器电路原理图 主芯片驱动引脚原理图 其他知识 蜂鸣器类型 蜂鸣器分为 有源蜂鸣器 :触发就会响。 无源蜂鸣器 : 需要给源, 输出一定频率的音频信号, 震动发声; 占空比 为什么占空比总是5…

lottie 动画在 vue 中的使用

前言 最近我所负责的项目中采用了动画效果,最早使用 gif 来实现。然而,在实践过程中,我发现 gif 格式的动画在 git 中出现了明显的锯齿感,这让我非常困扰。为了追求更完美的表现效果,我最终选择了 lottie 来实现我的动…

[每周一更]-(第79期):Apache代理的配置

反向代理逻辑类似Nginx,以下具体展示属于apache的配置和参数说明 局部代理配置方式: # 配置包含https的需要打开 SSLProxyEngine on ProxyPass /api/small https://api.web.com/version1/small/ ProxyPassReverse /api/small https://api.web.com/versio…

SAP MD04界面中增加功能按钮

通常在查看物料需求时,PMC用的最多的就是MD04的界面,在MD04界面中有很多的功能按钮,同时我们还可以新增功能按键的跳转。 1、我们先设置一下系统标准的在MD04界面中增加跳转的按钮 如下图:自有收藏夹—导航参数文件—维护 然后在MD04的界面中就可以看到我们刚才加的MM0…

3、Git分支操作与团队协作

Git分支操作 1.什么是分支2. 分支的好处3. 分支的操作3.1 查看分支3.2 创建分支3.3 切换分支3.4 修改分支3.5 合并分支3.6 产生和解决冲突 4. 创建分支和切换分支图解5. Git团队协作机制团队内协作跨团队协作 均在git bash中进行操作。事先建好本地工作库 1.什么是分支 在版本…

零代码也能玩出花:Mugeda在H5设计中的魔法力量

文章目录 一、Mugeda零代码可视化H5设计工具简介二、Mugeda零代码可视化H5设计实战案例1. 注册并登录Mugeda账号2. 选择模板3. 编辑页面内容4. 添加动画效果5. 预览和发布 三、Mugeda零代码可视化H5设计的优势《Mugeda零代码可视化H5设计实战》内容简介作者简介目录前言/序言 随…

首发卡密引流系统 支持短视频点赞/关注获取卡密

搭建教程: 环境要求:Nginx、MySQL 5.6、PHP 5.6 步骤: 将压缩包解压至网站根目录。 打开域名/install,按照提示填写数据库信息进行安装。 管理后台: URL:域名/admin 账号密码:admin/123456 …

程序员实现财富自由的十种方法!

程序员肯定都有过一夜暴富的梦想,也许是兼职接单,也许是成为炙手可热的大网红,也许只是平凡的中张百万大奖彩票…… 除去运气超好实力拔群以外,大多数程序员是很难在短时间内实现财富自由的。虽是如此,但搞钱对于程序…

Linux系统下隧道代理HTTP

在Linux系统下配置隧道代理HTTP是一个涉及网络技术的话题,主要目的是在客户端和服务器之间建立一个安全的通信通道。下面将详细解释如何进行配置。 一、了解基本概念 在开始之前,需要了解几个关键概念:代理服务器、隧道代理和HTTP协议。代理…

河南:女子一家八口住酒店223天,每天房费1000块,决定住一辈子

河南这家人可真是会享受生活啊!卖掉房子住酒店,一辈子不买房,每天只花1000块,这是你梦想中的生活吗?😂 他们一家人八口,从老到小,都住在酒店里。说真的,这可真是让人羡慕…

关于Echarts的重要属性总结

概要 1.设置图例字体颜色: legend: {//添加位置如下textStyle: {color: #fff // 设置图例文字颜色为白色}} 2.设置序列颜色: series: [{ // 添加位置如下itemStyle: { color: #FFA500 // 设置序列Series颜色}] 3.设置坐标轴单位: xAx…

分享好用的chatgpt

1.在vscode中,点击这个: 2.搜索:ChatGPT - 中文版,个人觉得这个更好用: 3.下载完成之后,左侧会多出来这个: 点击这个图标就能进入chatgpt界面了 4.如果想使用tizi访问国外的chatgpt&#xf…

Android apk安装包反编译——apktool工具

目录 一、apk 文件结构二、下载 apktool三、 使用 apktool 反编译 apk四、编译为apk五、apk签名1.生成密钥库2.使用 v1 签名3.使用 v2 签名 六、Dex 加解密原理 一、apk 文件结构 首先是 apk,即安卓程序的安装包。Apk 是一种类似于 Symbian Sis 或 Sisx 的文件格式…

Unity TextMeshPro中文字体的转换与显示

Unity TextMeshPro功能非常强大,但是我们用默认的字体格式却无法显示中文,必须把字体转换之后才能正常显示中文。 具体转换方法: 1、准备好字体,ttf或otf格式都可以,如:SOURCEHANSANSCN-NORMAL.OTF 2、准…

maven阿里源找不到指定jar包解决方案

到这里去找: https://mvnrepository.com/ 例如你要找:spring-boot-starter-web 复制坐标即可。IDEA会去坐标自带的网址寻找资源,可能会慢一点。

【Vue3】创建项目的方式

1. 基于 vue-cli 创建 ## 查看vue/cli版本,确保vue/cli版本在4.5.0以上 vue --version## 安装或者升级你的vue/cli npm install -g vue/cli## 执行创建命令 vue create vue_test本质上使用webpack,默认安装以下依赖: 2. 基于 vite 创建 官…