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() {
  // 初始化串口通信,波特率为 9600
  Serial.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 电源。不稳定的电源可能导致输出电压波动,影响温度测量结果。
  • 引脚连接:连接时要仔细确认引脚对应关系,避免接错导致传感器无法正常工作。
  • 环境影响:传感器周围的环境因素,如热辐射、气流等,可能会对测量结果产生一定影响。应尽量将传感器放置在通风良好、无明显热源或冷源干扰的位置。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【并发控制、更新、版本控制】.NET开源ORM框架 SqlSugar 系列

系列文章目录 🎀🎀🎀 .NET开源 ORM 框架 SqlSugar 系列 🎀🎀🎀 文章目录 系列文章目录一、并发累计(累加)1.1 单条批量累计1.2 批量更新并且字段11.3 批量更新并且字段list中对应的…

5 分钟用满血 DeepSeek R1 搭建个人 AI 知识库(含本地部署)

最近很多朋友都在问:怎么本地部署 DeepSeek 搭建个人知识库。 老实说,如果你不是为了研究技术,或者确实需要保护涉密数据,我真不建议去折腾本地部署。 为什么呢? 目前 Ollama 从 1.5B 到 70B 都只是把 R1 的推理能力…

opc da 服务器数据 转 EtherCAT项目案例

目录 1 案例说明 2 VFBOX网关工作原理 3 应用条件 4 查看OPC DA服务器的相关参数 5 配置网关采集opc da数据 6 启动EtherCAT从站转发采集的数据 7 在服务器上运行仰科OPC DA采集软件 8 案例总结 1 案例说明 在OPC DA服务器上运行OPC DA client软件查看OPC DA服务器的相…

微信小程序地图开发总结-规划路线

在现代移动应用中,地图导航功能已成为必不可少的一部分。通过地图 API,我们可以轻松地在应用中集成位置服务和路径规划功能。本篇文章将带大家一起实现一个简单的路径导航功能,使用腾讯地图 API结合微信小程序,实现从当前位置到目…

【已解决】VSCode:“正在重新激活终端”

背景: 1、切换Python环境的时候有问题,然后一直显示“正在重新激活终端”。 2、此处电脑:MAC 解决方法: 打开命令面板(按 CtrlShiftP 或 CmdShiftP)。输入并选择 Python: Clear Cache and Reload Window…

Grafana-使用Button修改MySQL数据库

背景 众所周知,Grafana是一个用来展示数据的平台,但是有时候还是会有需求说能不能有一个按钮,点击的时候再对数据库进行修改,从而达到更新数据的效果 经过多方查证,终于实现了一个简单的,点击button执行sq…

Android 系统面试问题

一.android gki和非gki的区别 Android GKI(Generic Kernel Image)和非GKI内核的主要区别在于内核设计和模块化程度,具体如下: 1. 内核设计 GKI:采用通用内核设计,与设备硬件分离,核心功能统一…

CCFCSP备考第一天

第33次认证第一题——词频统计 时间限制: 1.0 秒 空间限制: 512 MiB 下载题目目录(样例文件) 题目描述 在学习了文本处理后,小 P 对英语书中的 n 篇文章进行了初步整理。 具体来说,小 P 将所有的英文单…

接口测试Day12-持续集成、git简介和安装、Gitee远程仓库、jenkins集成

持续集成 概念: 团队成员将自己的工作成果,持续集成到一个公共平台的过程。成员可以每天集成一次,也可以一天集成多 次。 相关工具: 本地代码管理:git远程代码管理:gitee(国内)、github(国外)、gitlib(公司…

C# OpenCV机器视觉:智能水果采摘

在一个风景如画的小镇边上,有一座阿强家祖传的果园。每到水果成熟的季节,果园里硕果累累,红彤彤的苹果、黄澄澄的梨子、紫莹莹的葡萄,散发着诱人的香气。然而,这丰收的喜悦却总被一件烦心事笼罩 —— 摘水果。 “哎呀…

腾讯云大数据套件TBDS与阿里云大数据能力产品对比

前言 博主在接触大数据方向研究的时候是在2016年,那时候正是大数据概念非常火热的一个时间段,最著名的Google的3篇论文。Google FS、MapReduce、BigTable,奠定了大数据框架产品的基础。Google文件系统,计算框架和存储框架。往后所有的大数据产品和过程域无一不是在三个模块…

设计高效的测试用例:从需求到验证

在现代软件开发过程中,测试用例的设计一直是质量保证(QA)环节的核心。有效的测试用例不仅能够帮助发现潜在缺陷,提升软件质量,还能降低后期修复成本,提高开发效率。尽管如此,如何从需求出发&…

荣耀手机Magic3系列、Magic4系列、Magic5系列、Magic6系列、Magic7系列详情对比以及最新二手价格预测

目录 荣耀Magic系列手机详细对比 最新二手价格预测 性价比分析 总结 以下是荣耀Magic系列手机的详细对比以及最新二手价格预测: 荣耀Magic系列手机详细对比 特性荣耀Magic3系列荣耀Magic4系列荣耀Magic5系列荣耀Magic6系列荣耀Magic7系列处理器骁龙888&#x…

JAVA-枚举的使用

目录 一、枚举的意义 二、enum类的使用 1.switch 2.常用方法 2.1 values() 和 ordinal() 2.1.1 Enum基本介绍 2.2 valueOf() 2.3 compareTo() 三、枚举的优点和缺点 四、枚举安全在什么地方 一、枚举的意义 public static final int RED 1; public static final int…

前端实现在PDF上添加标注(1)

前段时间接到一个需求,用户希望网页上预览PDF,同时能在PDF上添加文字,划线,箭头和用矩形框选的标注,另外还需要对已有的标注进行修改,删除。 期初在互联网上一通搜索,对这个需求来讲发现了两个问…

Visual Studio Code中文出现黄色框子的解决办法

Visual Studio Code中文出现黄色框子的解决办法 一、vsCode中文出现黄色框子-如图二、解决办法 一、vsCode中文出现黄色框子-如图 二、解决办法 点击 “文件”点击 “首选项”点击 “设置” 搜索框直接搜索unicode选择“文本编辑器”,往下滑动,找到“Un…

二分算法篇:二分答案法的巧妙应用

二分算法篇:二分答案法的巧妙应用 那么看到二分这两个字想必我们一定非常熟悉,那么在大学期间的c语言的教学中会专门讲解二分查找,那么我们来简单回顾一下二分查找算法,我们知道二分查找是在一个有序的序列中寻找一个数在这个序列…

项目6:基于大数据校园一卡通数据分析和可视化

1、项目简介 本项目是基于大数据的清华校园卡数据分析系统,通过Hadoop,spark等技术处理校园卡交易、卡号和商户信息数据。系统实现消费类别、男女消费差异、学院消费排行和年级对比等分析,并通过Web后端和可视化前端展示结果。项目运行便捷&…

怎么在win10系统批量生成下面目录示例文件?

环境: win10系统 问题描述: 怎么在win10系统批量生成下面目录示例文件,刚好有个开源项目要新建 GitHub地址:https://github.com/latiaoge/AI-Sphere-Butler ai-sphere-butler/ # 项目根目录 ├── docs/ …

Java在大数据处理中的应用:从MapReduce到Spark

Java在大数据处理中的应用:从MapReduce到Spark 大数据时代的到来让数据的存储、处理和分析变得前所未有的重要。随着数据量的剧增,传统的单机计算方式已经无法满足处理需求。为了解决这个问题,许多分布式计算框架应运而生,其中Ma…