当前位置: 首页 > article >正文

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

http://www.kler.cn/a/541893.html

相关文章:

  • Log4j定制JSON格式日志输出
  • 内存飚⾼问题定位
  • JavaScript:还在用if判断属性是否存在?哒咩(?.)用起来
  • 打家劫舍3
  • Linux:库
  • DeepSeek之Api的使用(将DeepSeek的api集成到程序中)
  • Qt笔记P1-30
  • 【课程系列14】某乎AI大模型全栈工程师-第9期(已完结)
  • 03:Spring之Web
  • MySQL第五次作业(触发器、存储过程)
  • 三格电子-EtherCAT从站转ModbusTCP主站/从站网关
  • 人机接口知识点
  • 使用开源项目xxl-cache构建多级缓存
  • 基于Flask搭建AI应用,本地私有化部署开源大语言模型
  • 搭建Spark集群(CentOS Stream 9)
  • 解锁几何:从古希腊到现代生活的奇幻空间密码
  • MQTT(Message Queuing Telemetry Transport)协议(一)
  • k8s ingress-nginx-controller 0.46.0 升级到 1.6.4
  • 用户认证综合实验
  • 【免费】2007-2020年各省医疗卫生支出数据
  • Solana Playground 入门指南
  • 计算机毕业设计SpringBoot+Vue.js医院预约挂号小程序 医院预约挂号系统(双端、小程序、可视化、地图API)(LW文档+PPT+讲解+代码安装)
  • 51单片机(国信长天)矩阵键盘的基本操作
  • Maven的dependencyManagements锁定版本依赖
  • 02、QLExpress从入门到放弃,相关API和文档
  • C++ Primer 类型转换