DS18B20 温度读取 LCD1602 显示
时间: 2025-05-22 16:45:21 浏览: 20
### 使用 DS18B20 温度传感器读取温度并在 LCD1602 上显示
为了实现这一目标,需要准备如下硬件组件:
- Arduino UNO 开发板
- DS18B20 数字温度传感器模块
- I2C 接口的 LCD1602 显示屏模块
- 连接线若干
#### 硬件连接说明
Arduino 和各模块之间的具体连线方式如下表所示[^1]。
| 设备 | Pin |
|------------|------|
| Arduino | VCC |
| | GND |
| | SDA |
| | SCL |
| DS18B20 | DQ |
对于 I2C 的 LCD1602 屏幕,则需将其 SDA 和 SCL 脚分别接到 Arduino 对应引脚上;而 DS18B20 数据线通常只有一根(DQ),该针脚应当连到 Arduino 的任意数字输入/输出端子,并通过一个4.7kΩ电阻拉高至电源电压。
#### 库文件安装
项目依赖两个库来简化编程工作量:`OneWire.h`用于处理与DS18B20通信的任务,以及`LiquidCrystal_I2C.h`负责管理LCD屏幕的操作。这两个库可以通过Arduino IDE中的库管理器轻松获取并安装。
#### 示例代码展示
下面给出一段完整的Arduino程序用来完成上述功能需求:
```cpp
#include <OneWire.h>
#include <DallasTemperature.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// 初始化 OneWire 总线实例, 假设 DS18B20 连接到 pin 2.
OneWire oneWire(2);
DallasTemperature sensors(&oneWire);
// 创建 LiquidCrystal_I2C 类型的对象 lcd 并指定地址为 0x27 或者其他实际使用的I2C设备地址
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup(void){
// 启动串行通讯以便调试打印信息
Serial.begin(9600);
// 设置液晶显示器参数
lcd.init();
lcd.backlight(); // 打开背光
// 输出初始提示语句给LCD
lcd.setCursor(0,0);
lcd.print("Temp:");
}
void loop(void){
float temperature;
// 请求最新的温度测量值
sensors.requestTemperatures();
// 获取第一个找到的器件上的摄氏度数值
temperature = sensors.getTempCByIndex(0);
// 将结果显示于串行监视窗口内供开发者查看
Serial.println(temperature);
// 更新LCD屏幕上第二行的内容为当前测得的温度值
lcd.setCursor(0,1);
lcd.print(" ");
lcd.print(temperature);
lcd.print((char)223); // ASCII码表示℃符号
lcd.print("C");
delay(1000); // 每隔一秒更新一次温度
}
```
此段代码实现了每隔一段时间从DS18B20采集最新温度并将之呈现在LCD1602上面的功能。其中涉及到了初始化外设、配置显示界面布局、周期性查询传感数据等基本流程。
阅读全文
相关推荐


















