通过lcd1602显示DS18b20温度传感器模拟温度值
时间: 2023-09-02 18:06:11 浏览: 47
好的,首先需要确保你已经连接好了DS18B20温度传感器和LCD1602显示屏。
接下来,你需要使用Arduino IDE编写代码。以下是代码示例:
```
#include <OneWire.h> //引入OneWire库
#include <LiquidCrystal.h> //引入LiquidCrystal库
#define ONE_WIRE_BUS 2 //定义数据线连接的引脚
OneWire oneWire(ONE_WIRE_BUS); //创建OneWire对象实例
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //定义LiquidCrystal对象的引脚
void setup() {
lcd.begin(16, 2); //初始化LCD
}
void loop() {
byte i;
byte present = 0;
byte data[12];
byte addr[8];
if (!oneWire.search(addr)) {
oneWire.reset_search();
delay(250);
return;
}
if (OneWire::crc8(addr, 7) != addr[7]) {
return;
}
oneWire.reset();
oneWire.select(addr);
oneWire.write(0x44,1);
present = oneWire.reset();
oneWire.select(addr);
oneWire.write(0xBE);
for ( i = 0; i < 9; i++) {
data[i] = oneWire.read();
}
int16_t raw = (data[1] << 8) | data[0];
byte cfg = (data[4] & 0x60);
if (cfg == 0x00) raw = raw & ~7;
else if (cfg == 0x20) raw = raw & ~3;
else if (cfg == 0x40) raw = raw & ~1;
float celsius = (float)raw / 16.0;
lcd.setCursor(0,0);
lcd.print("Temperature: ");
lcd.setCursor(0,1);
lcd.print(celsius);
lcd.print(" C");
delay(1000); //每隔1秒更新一次温度值
}
```
运行代码后,你应该能够在LCD显示屏上看到类似于“Temperature: 26.00 C”这样的文字信息,其中的温度值会不断变化。这个数值就是DS18B20温度传感器模拟的温度值。