DS18B20温度传感器测温LCD1602显示温度代码
时间: 2023-07-10 09:13:41 浏览: 92
以下是使用DS18B20温度传感器测温并在LCD1602上显示温度的代码:
```c
#include <LiquidCrystal.h> // 导入LCD1602库
#include <OneWire.h> // 导入OneWire库
#include <DallasTemperature.h> // 导入DallasTemperature库
// 设置DS18B20引脚
#define ONE_WIRE_BUS 2
// 初始化OneWire对象
OneWire oneWire(ONE_WIRE_BUS);
// 初始化DallasTemperature对象
DallasTemperature sensors(&oneWire);
// 初始化LCD1602对象
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
// 设置LCD1602的列数和行数
lcd.begin(16, 2);
// 开启DS18B20温度传感器
sensors.begin();
}
void loop() {
// 请求温度数据
sensors.requestTemperatures();
// 读取温度值
float temperature = sensors.getTempCByIndex(0);
// 温度值保留两位小数
char tempStr[6];
dtostrf(temperature, 5, 2, tempStr);
// 在LCD1602上显示温度
lcd.setCursor(0, 0);
lcd.print("Temperature:");
lcd.setCursor(0, 1);
lcd.print(tempStr);
lcd.print("C");
// 等待1秒
delay(1000);
}
```
在这个代码中,我们使用了OneWire库和DallasTemperature库来读取DS18B20温度传感器的数据,并使用LiquidCrystal库在LCD1602上显示温度数据。 `ONE_WIRE_BUS` 定义了DS18B20数据线的引脚,`sensors.requestTemperatures()` 请求温度数据,`sensors.getTempCByIndex(0)` 获取温度值,`dtostrf()` 将温度值转换为字符串,`lcd.print()` 在LCD1602上显示温度。在 `loop()` 函数中,我们等待1秒钟然后重新读取温度数据并更新LCD1602上的显示。
阅读全文