Arduino 第十一章:温度传感器

Arduino 第十一章:LM35 温度传感器

一、LM35 简介

LM35 是美国国家半导体公司(现德州仪器)生产的一款精密集成电路温度传感器。与基于热力学原理的传统温度传感器不同,LM35 能直接将温度转换为电压输出,且输出电压与摄氏温度呈线性比例关系,无需额外的校准即可提供高精度的温度测量。它具有精度高、线性度好、成本低、使用方便等优点,在温度测量和控制系统中应用广泛。

二、工作原理(根据不同温度传感器修改计算方式)

LM35 基于半导体的物理特性工作。半导体材料的带隙电压会随温度变化,LM35 内部电路利用这一特性,将温度变化转化为电压输出。其输出电压与摄氏温度成线性关系,比例系数为 10mV/℃,即温度每升高 1℃,输出电压增加 10mV。例如,在 25℃时,LM35 的输出电压为 250mV(25×10mV) 。

三、硬件连接

(一)所需材料

  • Arduino 开发板(如 Arduino Uno)
  • LM35 温度传感器
  • 杜邦线若干

(二)引脚说明

LM35 通常有三个引脚:

  • VCC:电源正极,接 +5V。
  • GND:电源负极,接地。
  • Vout:温度电压输出端。

(三)连接方式

将 LM35 的 VCC 引脚连接到 Arduino 的 5V 引脚,为传感器供电;GND 引脚连接到 Arduino 的 GND 引脚;Vout 引脚连接到 Arduino 的一个模拟输入引脚,这里选择 A0 引脚。

(四)连接图

在这里插入图片描述

          +5V (Arduino)||[VCC] (LM35)[Vout] ---- A0 (Arduino)[GND] ---- GND (Arduino)

四、代码实现

(一)使用 Arduino IDE 编程

// 定义 LM35 连接的模拟引脚
const int lm35Pin = A0;void setup() {// 初始化串口通信,波特率为 9600Serial.begin(9600);
}void loop() {// 读取模拟引脚的值int sensorValue = analogRead(lm35Pin);// 将模拟值转换为电压(Arduino 模拟输入范围 0 - 1023 对应 0 - 5V)float voltage = sensorValue * (5.0 / 1023.0);// 根据 LM35 特性(10mV/℃)将电压转换为温度(℃)float temperatureC = voltage / 0.01;// 打印温度值到串口监视器Serial.print("Temperature: ");Serial.print(temperatureC);Serial.println(" °C");// 延时 1 秒delay(1000);
}

(二)代码解释

  1. 变量定义
    • const int lm35Pin = A0;:定义 LM35 的输出连接到 Arduino 的 A0 模拟引脚。
  2. setup() 函数
    • Serial.begin(9600);:初始化串口通信,设置波特率为 9600,用于将温度数据发送到计算机的串口监视器。
  3. loop() 函数
    • int sensorValue = analogRead(lm35Pin);:使用 analogRead() 函数读取 A0 引脚的模拟值,范围是 0 - 1023。
    • float voltage = sensorValue * (5.0 / 1023.0);:将模拟值转换为对应的电压值,因为 Arduino 的模拟输入 0 - 1023 对应 0 - 5V。
    • float temperatureC = voltage / 0.01;:根据 LM35 输出电压与温度的线性关系(10mV/℃),将电压转换为摄氏温度。
    • Serial.print()Serial.println():将温度值输出到串口监视器。
    • delay(1000);:延时 1 秒,避免频繁读取数据。

五、应用拓展

(一)温度显示

可以将读取到的温度值通过液晶显示器(如 16x2 LCD)显示出来。结合之前学过的液晶显示器知识,在代码中添加相应的显示控制部分。

(二)温度报警

设置一个温度阈值,当测量的温度超过或低于该阈值时,触发报警装置,如点亮 LED 灯或触发蜂鸣器。

(三)数据记录

将温度数据存储到 SD 卡或通过无线模块发送到远程服务器,实现数据的长期记录和分析。

六、注意事项

  • 电源稳定:为保证测量精度,要确保给 LM35 提供稳定的 5V 电源。不稳定的电源可能导致输出电压波动,影响温度测量结果。
  • 引脚连接:连接时要仔细确认引脚对应关系,避免接错导致传感器无法正常工作。
  • 环境影响:传感器周围的环境因素,如热辐射、气流等,可能会对测量结果产生一定影响。应尽量将传感器放置在通风良好、无明显热源或冷源干扰的位置。

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

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

相关文章

Oracle常用导元数据方法

1 说明 前两天领导发邮件要求导出O库一批表和索引的ddl语句做国产化测试,涉及6个系统,6千多张表,还好涉及的用户并不多,要不然很麻烦。 如此大费周折原因,是某国产库无法做元数据迁移。。。额,只能我手动导…

2022java面试总结,1000道(集合+JVM+并发编程+Spring+Mybatis)的Java高频面试题

1、面试题模块汇总 面试题包括以下十九个模块: Java 基础、容器、多线程、反射、对象拷贝、Java Web 模块、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、Mybatis、RabbitMQ、Kafka、Zookeeper、MySql、Redis、JVM 。如下图所示…

Curser2_解除机器码限制

# Curser1_无限白嫖试用次数 文末有所需工具下载地址 Cursor Device ID Changer 一个用于修改 Cursor 编辑器设备 ID 的跨平台工具集。当遇到设备 ID 锁定问题时,可用于重置设备标识。 功能特性 ✨ 支持 Windows 和 macOS 系统🔄 自动生成符合格式的…

carbon 加入 GitCode:Golang 时间处理的 “瑞士军刀”

在 Golang 的开发生态中,时间处理领域长期存在着诸多挑战。高效、精准的时间处理对于各类软件应用的稳定运行与功能拓展至关重要。近日,carbon 正式加入 GitCode,为 Golang 开发者带来一款强大且便捷的时间处理利器,助力项目开发迈…

算法学习--链表

引言:为什么进行链表的学习? 考察能力独特:链表能很好地考察应聘者对指针操作、内存管理的理解和运用能力,还能检验代码的鲁棒性,比如处理链表的插入、删除操作时对边界条件的处理。数据结构基础:链表是很多…

域名劫持原理与实践

了解域名及域名劫持 由于点分十进制的IP地址难于记忆,便出现了域名。由于网络传输中最终还是基于IP,所以必须通过一种机制将IP和域名一一对应起来,这便是DNS。全球总共有13台根域名服务器。 域名劫持是互联网攻击中常见的一种攻击方式&…

【论文翻译】DeepSeek-V3论文翻译——DeepSeek-V3 Technical Report——第二部分:(训练硬件)基础设施

论文原文链接:DeepSeek-V3/DeepSeek_V3.pdf at main deepseek-ai/DeepSeek-V3 GitHub 特别声明,本文不做任何商业用途,仅作为个人学习相关论文的翻译记录。本文对原文内容直译,一切以论文原文内容为准,对原文作者表示…

MapReduce到底是个啥?

在聊 MapReduce 之前不妨先看个例子:假设某短视频平台日活用户大约在7000万左右,若平均每一个用户产生3条行为日志:点赞、转发、收藏;这样就是两亿条行为日志,再假设每条日志大小为100个字节,那么一天就会产…

Error: llama runner process has terminated: exit status 0xc0000409 问题解决办法

在大模型部署过程中,格式转换环节若使用了高版本的 llama.cpp 库,而系统当前运行的版本较低,就会出现版本不兼容的情况。 这种不匹配会阻碍模型的正常运行,进而导致报错。建议你密切关注模型所需的版本要求,及时将系统…

代码随想录-训练营-day20

今天我们继续回溯: 39. 组合总和 - 力扣(LeetCode) 这个题和我们之前的组合题相比,最大的区别在于我们可以无限次的重复取用某值了,这就让我们的递归参数与之前不同,除此之外,本质上这个题与21…

ubuntu 本地部署deepseek r1 蒸馏模型

本文中的文件路径或网络代理需要根据自身环境自行删改 一、交互式chat页面 1.1 open-webui 交互窗口部署:基于docker安装,且支持联网搜索 Open WebUI 是一个可扩展、功能丰富且用户友好的自托管 AI 平台,旨在完全离线操作。它支持各种 LLM…

数据库 绪论

目录 数据库基本概念 一.基本概念 1.信息 2.数据 3.数据库(DB) 4.数据库管理系统(DBMS) 5.数据库系统(DBS) 二.数据管理技术的发展 1.人工管理阶段 2.文件系统阶段 3.数据库系统阶段 4.数据库管…

数据中台是什么?:架构演进、业务整合、方向演进

文章目录 1. 引言2. 数据中台的概念与沿革2.1 概念定义2.2 历史沿革 3. 数据中台的架构组成与关键技术要素解析3.1 架构组成3.2 关键技术要素 4. 数据中台与其他平台的对比详细解析 5. 综合案例:金融行业数据中台落地实践5.1 背景5.2 解决方案5.3 成果与价值 6. 方向…

【DeepSeek】DeepSeek概述 | 本地部署deepseek

目录 1 -> 概述 1.1 -> 技术特点 1.2 -> 模型发布 1.3 -> 应用领域 1.4 -> 优势与影响 2 -> 本地部署 2.1 -> 安装ollama 2.2 -> 部署deepseek-r1模型 1 -> 概述 DeepSeek是由中国的深度求索公司开发的一系列人工智能模型,以其…

如何使用C++将处理后的信号保存为PNG和TIFF格式

在信号处理领域,我们常常需要将处理结果以图像的形式保存下来,方便后续分析和展示。C提供了多种库来处理图像数据,本文将介绍如何使用stb_image_write库保存为PNG格式图像以及使用OpenCV库保存为TIFF格式图像。 1. PNG格式保存 使用stb_ima…

查出 product 表中所有 detail 字段包含 xxx 的完整记录

您可以使用以下 SQL 查询语句来查出 product 表中所有 detail 字段包含 oss.kxlist.com 的完整记录&#xff1a; SELECT * FROM product WHERE INSTR(detail, oss.kxlist.com) > 0;下面是detail字段包含的完整内容 <p><img style"max-width:100%;" src…

微服务 day01 注册与发现 Nacos OpenFeign

目录 1.认识微服务&#xff1a; 单体架构&#xff1a; 微服务架构&#xff1a; 2.服务注册和发现 1.注册中心&#xff1a; 2.服务注册&#xff1a; 3.服务发现&#xff1a; 发现并调用服务&#xff1a; 方法1&#xff1a; 方法2&#xff1a; 方法3:OpenFeign OpenFeig…

Shell原理简介与Linux中的权限问题

一、Shell命令及运行原理 1.1通常说的计算机体系结构指的是什么 通常意义上的计算机体系结构指的是芯片&#xff1a; 如锐龙amd&#xff0c;英特尔酷睿intel core 他们分为 x86&#xff1a;32位 x86_64&#xff1a;64位 两种 1.2广义上的Linux系统分为哪些部分&#xf…

在rtthread中,scons构建时,它是怎么知道是从rtconfig.h找宏定义,而不是从其他头文件找?

在rtthread源码中&#xff0c;每一个bsp芯片板级目录下都有一个 SConstruct scons构建脚本的入口&#xff0c; 在这里把rtthread tools/目录下的所有模块都添加到了系统路径中&#xff1a; 在tools下所有模块中&#xff0c;最重要的是building.py模块&#xff0c;在此脚本里面…

C# Winform 使用委托实现C++中回调函数的功能

C# Winform 使用委托实现C中回调函数的功能 在项目中遇到了使用C#调用C封装的接口&#xff0c;其中C接口有一个回调函数的参数。参考对比后&#xff0c;在C#中是使用委托(delegate)来实现类似的功能。 下面使用一个示例来介绍具体的使用方式&#xff1a; 第一步&#xff1a;…