lcd1602与ds18b20相连在Arduino中显示温度的代码
时间: 2024-03-15 07:46:28 浏览: 122
以下是连接 LCD1602 和 DS18B20 并在 Arduino 中显示温度的示例代码:
```C++
#include <OneWire.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // 设置LCD1602的引脚
OneWire ds(7); // 设置DS18B20的引脚
void setup() {
lcd.begin(16, 2); // 初始化LCD1602的列和行
lcd.print("Temperature:"); // 在LCD1602上显示 "Temperature:"
}
void loop() {
float temperature = getTemperature(); // 获取DS18B20的温度
lcd.setCursor(0, 1); // 设置LCD1602的光标位置为第二行第一列
lcd.print(temperature); // 在LCD1602上显示温度
lcd.print(" C"); // 在LCD1602上显示 " C"
delay(1000); // 等待1秒钟
}
float getTemperature() {
byte data[2];
ds.reset();
ds.write(0xCC);
ds.write(0x44);
delay(800);
ds.reset();
ds.write(0xCC);
ds.write(0xBE);
data[0] = ds.read();
data[1] = ds.read();
int temp = (data[1] << 8) | data[0];
return (float)temp / 16.0;
}
```
上述代码中,我们使用 `LiquidCrystal` 库来控制 LCD1602 显示器,并使用 `OneWire` 库来控制 DS18B20 温度传感器。在 `setup()` 函数中,我们初始化 LCD1602 并在第一行上显示 "Temperature:"。在 `loop()` 函数中,我们使用 `getTemperature()` 函数获取 DS18B20 的温度,并将其在第二行上显示。`getTemperature()` 函数通过一系列的指令读取 DS18B20 的温度,并将其转换为摄氏度。
阅读全文