NTC 传感器的 Arduino 代码示例

一、通过开尔文公式计算温度(基本代码)

int Ro = 100, B = 3950;  // 热敏电阻 K值(如5K、10K、100K), B值(如3950等)
int Rseries = 100;       // 串联的电阻值(如10K、100K)
float To = 298.15;      // 标称温度void setup() {Serial.begin(9600);
}void loop() {float Vi = analogRead(26) * (3.3 / 1023.0);   /*读取NTC模块的模拟输出,即热敏电阻两端的电压*//*1024数值需要根据芯片ADC处理的位数推算10bit代表0-1023位数即1024位)*/float R = (Vi * Rseries) / (3.3 - Vi);       //将测量的电压转换为电阻值,所有电阻单位为千欧姆float T = 1 / ((1 / To) - ((log(R / Ro)) / B));//在steinhart和hart方程中使用R值计算温度值(开尔文float Tc = T - 273.15;                         // 将开尔文转换为摄氏度float Tf = Tf = (Tc * 1.8) + 32.0;             // 将摄氏度转换为华氏度Serial.println((String) "Temperature in celsius    :" + Tc + "°C");//串口监视器打印摄氏温度Serial.println((String) "Temperature in Fahrenheit :" + Tf + "°F");//串口监视器打印华氏温度Serial.println(" ");        //换行delay(1000);               //延时1000毫秒
}

疑问如下:

8bit 是2的8次方是256, 即0-255位。

10bit 是2的10次方是1024, 即0-1023位。

12bit 是2的12次方是4096, 即0-4095位。

14bit 是2的14次方是16384,即0-16383位。

16bit 是2的16次方是65536,即0-65535位。

为何上面代码第10行中3.3V是÷1023而不是1024?是否0位不要?

二、通过B值换算温(基本代码)

//假设热敏电阻与100K电阻串联。
const float BETA = 3950; //热敏电阻的B值(如3950)
void setup() {Serial.begin(9600);
}
void loop() {int analogValue = analogRead(26);   //读取NTC模块的模拟输出float celsius = 1 / (log(1 / (1023.0 / analogValue - 1)) / BETA + 1.0 / 298.15) - 273.15; //上方为计算温度的公式Serial.print("Temperature: ");Serial.print(celsius);      //温度Serial.println(" ℃");     //串口监视器打印单位“℃“delay(1000);              //延时1000毫秒
}

第一种方式和第三种方式相差5 摄氏度

三、利用analogReference() 使用(暂时测试过arduino可以使用)RP2040测试不到 还在测试中....

// SPDX-FileCopyrightText: 2011 Limor Fried/ladyada for Adafruit Industries
//
// SPDX-License-Identifier: MIT// Thermistor Example #3 from the Adafruit Learning System guide on Thermistors
// https://learn.adafruit.com/thermistor/overview by Limor Fried, Adafruit Industries
// MIT License - please keep attribution and consider buying parts from Adafruit// which analog pin to connect
#define THERMISTORPIN 26
// resistance at 25 degrees C
#define THERMISTORNOMINAL 10000
// temp. for nominal resistance (almost always 25 C)
#define TEMPERATURENOMINAL 25
// how many samples to take and average, more takes longer
// but is more 'smooth'
#define NUMSAMPLES 5
// The beta coefficient of the thermistor (usually 3000-4000)
#define BCOEFFICIENT 3950
// the value of the 'other' resistor
#define SERIESRESISTOR 10000    int samples[NUMSAMPLES];void setup(void){Serial.begin(9600);analogReference(EXTERNAL);}void loop(void) {uint8_t i;float average;// take N samples in a row, with a slight delayfor (i=0; i< NUMSAMPLES; i++) {samples[i] = analogRead(THERMISTORPIN);delay(10);}// average all the samples outaverage = 0;for (i=0; i< NUMSAMPLES; i++) {average += samples[i];}average /= NUMSAMPLES;Serial.print("Average analog reading ");Serial.println(average);// convert the value to resistanceaverage = 1023 / average - 1;average = SERIESRESISTOR / average;Serial.print("Thermistor resistance ");Serial.println(average);float steinhart;steinhart = average / THERMISTORNOMINAL;     // (R/Ro)steinhart = log(steinhart);                  // ln(R/Ro)steinhart /= BCOEFFICIENT;                   // 1/B * ln(R/Ro)steinhart += 1.0 / (TEMPERATURENOMINAL + 273.15); // + (1/To)steinhart = 1.0 / steinhart;                 // Invertsteinhart -= 273.15;                         // convert absolute temp to CSerial.print("Temperature ");Serial.print(steinhart);Serial.println(" *C");delay(1000);
}

NTC热敏电阻(温度传感器)的使用相关推荐

  1. GC0053-STM32单片机NTC热敏电阻温度采集及控制LCD1602

    实践制作DIY- GC0053-NTC热敏电阻温度采集 一.功能说明: 基于STM32单片机设计-NTC热敏电阻温度采集 二.功能介绍: STM32单片机+LCD1602显示器+NTC热敏电阻温度传感 ...

  2. 51单片机NTC热敏电阻温度采集及控制ADC0832 LCD1602

    实践制作DIY- GC0051-NTC热敏电阻温度采集及控制 一.功能说明: 基于51单片机设计-NTC热敏电阻温度采集及控制 功能介绍: STC89C52单片机(STC89C51/52 AT89C5 ...

  3. 热敏电阻制作温度传感器的c语言,課题一NTC热敏电阻的温度测量和控制系统.doc...

    課题一NTC热敏电阻的温度测量和控制系统 2011年暑期电子设计大赛课题一 基于NTC热敏电阻的温度测量与控制系统的设计 学生姓名杜衡.向奇林.刘露平院系名称物理与电子工程学院专业名称电子信息工程班级 ...

  4. 热敏电阻如何查表计算温度_简单说说NTC热敏电阻

    NTC热敏电阻是一个很简单的温度传感器,在消费类电子产品中非常常见. NTC又被称为负温度系数热敏电阻,是一类电阻值随温度增大而减小的一种传感器电阻. 负温度系数热敏电阻与之对应的还有正温度系数热敏电 ...

  5. STM8学习笔记---NTC热敏电阻的使用

    温度采集是产品开发过程中必不可少的,读取温度的方法有很多种,有专用温度采集芯片,温度传感器,热敏电阻等,各种方法来获取温度.今天总结一下使用热敏电阻来采集温度. 先看看热敏电阻的概念 也就是将温度变化 ...

  6. NTC热敏电阻原理及应用

    NTC热敏电阻是指具有负温度系数的热敏电阻.是使用单一高纯度材料.具有 接近理论密度结构的高性能陶瓷.因此,在实现小型化的同时,还具有电阻值. 温度特性波动小.对各种温度变化响应快的特点,可进行高灵敏 ...

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

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

  8. 如何选择NTC热敏电阻

    来源:本站 更新时间:2014-02-16 12:45:27 查看次数:2758 目录 介绍 • 零功率电阻Rt • 额定零功率电阻R25 • Beta值 • 零功耗Resistanceα的温度系数 ...

  9. Arduino与Proteus仿真实例-NTC热敏电阻驱动仿真

    NTC热敏电阻驱动仿真 热敏电阻是由半导体材料制成的温度传感元件,该材料经过烧结以显示电阻的较大变化与温度的微小变化成比例. 该电阻可以通过使用通过热敏电阻的小且经测量的直流或直流电来测量,以测量产生 ...

  10. NTC热敏电阻采集温度

      NTC温度传感器:   是一种热敏电阻.探头,其原理为:电阻值随着温度上升而迅速下降.其通常由2或3种金属氧化物组成, 混合在类似流体的粘土中,并在高温炉内锻烧成致密的烧结陶瓷.实际尺寸十分灵活, ...

最新文章

  1. str.format() 格式化字符串函数
  2. 开源 java CMS - FreeCMS2.7 移动端首页静态化
  3. python 吧-做为IT人的你 趁年轻学点Python吧
  4. python读取整个txt文件-python怎么读取txt文件内容
  5. 修改 Android Studio 相关模板,以加快项目创建时构建速度,支持Mac,Windows,Linux...
  6. 从Hadoop框架与MapReduce模式中谈海量数据处理(含淘宝技术架构)
  7. Android之AsyncTask异步任务详解总结
  8. 揭秘 RocketMQ 新特性以及在金融场景下的实践
  9. Jinja2学习笔记暨官方文档的翻译 -- 转载
  10. 微信回应朋友圈广告无法一键关闭:将持续优化产品体验
  11. 简述线程,程序、进程的基本概念。以及他们之间关系是什么?
  12. 大数据能消除在招聘和相关商业行为中的偏见吗?
  13. 给cad文件加密的软件,CAD文件加密软件哪个好用
  14. Unity3D 广播星历与精密星历
  15. 数学建模之数据比较与影响因素分析
  16. global mapper提取等高线
  17. 【JS基础】JavaScript语言简介及简单例子
  18. html飞机大战论文,7.HTML5--飞机大战
  19. win10下 phantomjs下载安装与使用
  20. 基于SGIP协议的短信网关接口

热门文章

  1. 规则LDPC和不规则LDPC译码算法MATLAB仿真
  2. 银豹 PYTHON requests.exceptions.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed
  3. python学习分几个阶段
  4. python爬虫常用包使用文档
  5. 【Python百日进阶-数据分析】Day136 - plotly旭日图:px.sunburst()实例
  6. 【今晚七点】:单目3D人体姿态估计的挑战和探索
  7. 离散制造与流程制造的区别与特点
  8. Microsoft SQL Server--导入excel数据
  9. Python统计英文单词出现情况次数实验
  10. 调试YOLO V5出现的BUG