首先

我们需要明确电路结构

热敏电阻的原理就不再赘述,本文不凑字数,只讲干货

必须要知道的就是串联电阻R9程序中定义为resistanceInSeries ,精度越高越好

为了方便,先在程序中定义好你的热敏类型和相关参数

float resistanceInSeries = 10000.0; //ntc的串联电阻
float ntcBvalue = 3950.0; //Bֵ值
float ntcR25 = 100000.0; //25度时电阻ֵ
float KelvinsZero = 273.15; //绝对零度
uint16_t systemPowerVoltage = 3300;
uint16_t adcValue;
float resolution = 0.805664;
float T25 = 298.15; //25 =KelvinsZero+25

具体计算办法  先通过NTC的电压推算出串联电阻的分压

然后再计算出线路电流

再计通过欧姆定律从计算出热敏电阻当前的阻值

最后计算出温度

这些计算,需要引入math.h

务必注意

uint16_t ntcVoltage = adcValue * resolution;
float ntcCurrent = (sysPowerVoltage- ntcVoltage)/ resistanceInSeries; //计算NTC的电流(A)
float ntcResistance = ntcVoltage / ntcCurrent; //计算当前电阻值
float temperature = (ntcBvalue * T25)
/ (T25 * (log(ntcResistance) - log(ntcR25)) + ntcBvalue);
temperature -= KelvinsZero; //计算最终温度

这个计算办法,消耗内存少,消耗FLASH也少,即使小容量单片机也可以用

先来看一下屏蔽这段代码后的程序占用容量

在看一下执行这段代码后的程序占用 消耗了大概120多个字节的RAM和,flash占用10kb左右

stm32单片机利用ntc热敏电阻温度转换公式C语言版的更多相关文章

  1. NTC热敏电阻温度计算方法,Steinhart-Hart方程和B值法(转)

    NTC热敏电阻计算器使用方法 NTC热敏电阻计算器 V1.0 10K负温度系数热敏电阻(NTC)温度与阻值对应关系表 Rt = R(25℃)*EXP[B*(1/T - 1/(T+25))] 说明: 1 ...

  2. NTC 热敏电阻温度计算公式

    Rt = R *EXP(B*(1/T1-1/T2))这里T1和T2指的是K度即开尔文温度,K度=273.15(绝对温度)+摄氏度:其中T2=(273.15+25)Rt 是热敏电阻在T1温度下的阻值: ...

  3. 单片机DIY制作-基于STM32单片机甲醛二氧化碳温度湿度采集系统

    基于STM32单片机甲醛二氧化碳温度湿度采集系统 实践制作DIY-GC008-甲醛二氧化碳温度湿度采集系统 一.功能说明: 基于STM32单片机设计-甲醛二氧化碳温度湿度采集系统 二.功能介绍: 1. ...

  4. NTC热敏电阻基础以及应用和选择(转)

    源:NTC热敏电阻基础以及应用和选择 NTC被称为负温度系数热敏电阻,是由Mn-Co-Ni的氧化物充分混合后烧结而成的陶瓷材料制备而来,它在实现小型化的同时,还具有电阻值-温度特性波动小.对各种温度变 ...

  5. 【转】keil+stm32+jlink利用swd方式进行printf输出

    出处:http://www.douban.com/note/248637026/ ----------------------------------------------------------- ...

  6. NTC热敏电阻认识及功率型热敏电阻选型

    -------------------记公司一款已经量产的产品,在最新加工的批次上出现:刚上电就炸毁功率型热敏电阻的问题------------------------- ************写在 ...

  7. STM32单片机的软件重启和远程重启

    STM32单片机可以通过以下代码实现重启(core_cm3.h).同时如果利用AT命令进行无线通讯,服务器后台和客户端之间用MODBUS通讯即4G+MODBUS RTU,可以利用F05写单个线圈的方法 ...

  8. 龙邱STM32单片机用J-LINK下载无法被识别的解决方法

    问题如下: 按照正常步骤使用keil5给龙邱的stm32下载程序,SWD下载方式提示no cortex-m sw device found,JTAG方式提示no cortex-m device fou ...

  9. STM32单片机在Keil5下仿真的问题解决及GPIO口初始化、使用

    STM32单片机在Keil5下仿真的问题解决及GPIO口初始化.使用 最近看了视频,里面有仿真,可以清楚看到GPIO口的数据变化,也想尝试下,DUG时却出现*** error 65: access v ...

随机推荐

  1. 密码学之Hash散列

    一.简介 hash(散列.杂凑)函数,是将任意长度的数据映射到有限长度的域上. 直观解释起来,就是对一串数据m进行杂糅,输出另一段固定长度的数据h,作为这段数据的特征(指纹).也就是说,无论数据块m有 ...

  2. Java实现HttpGet和HttpPost请求

    maven引入JSON处理jar <dependency> <groupId>com.alibaba</groupId> <artifactId>fas ...

  3. Notepad++ 常用功能:批量取消替换换行、强制刷新数据

    批量取消替换换行 换行批量替换成空格 Ctrl+F 打开查找替换窗口,使用:\r\n 替换成 空格,全部替换 强制刷新数据源,重新加载数据 快捷键:Ctrl+R 或者 Alt+F 然后 L 或者点击菜 ...

  4. ligerUI问题

    1.checkboxColWidth:990,Grid的复选框的宽度设置为什么不起作用. 2.当grid出现横线不对齐时,可以设置detailColWidth:90,属性进行设置.此属性好像只是针对复 ...

  5. 【手把手教程】uniapp + vue 从0搭建仿微信App聊天应用:腾讯云TXIM即时通讯的最佳实践

    基于uniapp + vue 实现仿微信App聊天应用实践,实现以下功能 1: 用户登陆 2: 聊天会话管理 3: 文本/图片/视频/定位消息收发 4: 贴图表情消息收发 5: 一对一语音视频在线通话 ...

  6. django——django链接mysql数据库

    1.创建项目 django-admin startproject django_mysql 2.创建App python manage.py startapp app1 3.Mysql数据库配置 (1 ...

  7. jQuery Validate验证(判断)某个字段是否通过验证

    jQuery Validate 默认只能判断整个表单是否验证通过,但是有时候我们需要对某个字段进行判断 ,可以使用以下方法 var bool=$("整个form表单的ID").va ...

  8. c++interview

    出自:https://github.com/huihut/interview Github    |    Docsify 简体中文    |    English 关于 本仓库是面向 C/C++ 技 ...

  9. dart系列之:dart优秀的秘诀-隔离机制

    目录 简介 dart中的隔离机制 生成一个Isolate Isolate之间的交互 一个例子 总结 简介 之前介绍了很多dart中的异步编程技巧,不知道大家有没有发现一个问题,如果是在java的异步编 ...

  10. 【LeetCode】594. Longest Harmonious Subsequence 解题报告(Python & C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 统计次数 日期 题目地址:https://leetc ...