问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

基于Arduino Uno的简易温度监测系统制作教程

创作时间:
作者:
@小白创作中心

基于Arduino Uno的简易温度监测系统制作教程

引用
CSDN
1.
https://m.blog.csdn.net/fjhcom/article/details/145786046

本文介绍了一种基于Arduino Uno、LCD1602显示屏和DS18B20温度传感器的简易温度监测系统。通过简单的硬件连接和编程,可以实现温度的实时显示。

硬件连接

  • LCD1602显示屏:只需连接4个数据线即可(RS、E、D4、D5)
  • DS18B20温度传感器:通过单总线协议连接到Arduino的数字引脚13

系统实物图如下:

软件代码

以下是完整的Arduino代码,可以直接通过Arduino IDE上传到开发板:

// 包含LCD显示库、单总线通信库、温度传感器库
#include <LiquidCrystal.h>
#include <OneWire.h>
#include <DallasTemperature.h>

// 配置LCD引脚:RS=12, E=11, D4=7, D5=8, D6=9, D7=10
LiquidCrystal lcd(12, 11, 7, 8, 9, 10);

// 温度传感器数据线连接数字引脚13
#define ONE_WIRE_BUS 13

// 初始化单总线协议实例
OneWire oneWire(ONE_WIRE_BUS);

// 将单总线协议传递给传感器库
DallasTemperature sensors(&oneWire);

void setup() {
  // 初始化LCD为16列2行格式
  lcd.begin(16, 2);
  
  // 启动温度传感器
  sensors.begin();
  
  // 设置传感器分辨率(9-12位,越高精度越慢)
  sensors.setResolution(12);
  
  // 显示初始温度标签
  lcd.print("Temp: ");
}

void loop() {
  // 发送温度采集请求(触发所有传感器测量)
  sensors.requestTemperatures();
  
  // 获取第一个传感器的摄氏温度值
  float temp = sensors.getTempCByIndex(0);
  
  // 设置光标到("Temp: "后面)
  lcd.setCursor(6, 0);
  
  // 显示温度值并保留两位小数
  lcd.print(temp, 2);
  
  // 显示摄氏度符号
  lcd.write(0xDF);  // 特殊字符°
  lcd.print("C");
  
  // 延时1秒后更新数据
  delay(1000);
}

代码说明

  1. 库文件包含:使用了LiquidCrystal、OneWire和DallasTemperature三个库文件
  2. 引脚配置:LCD的控制引脚和温度传感器的数据引脚配置
  3. setup()函数:初始化LCD和温度传感器,设置传感器分辨率
  4. loop()函数:循环读取温度数据并在LCD上显示

这个项目非常适合Arduino初学者,通过简单的硬件连接和代码编写,就能实现一个实用的温度监测系统。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号