arduino,DHT11模块与LCD1602IIC显示
时间: 2024-05-12 18:21:02 浏览: 128
以下是Arduino控制DHT11模块和LCD1602IIC显示的示例程序:
DHT11模块:
```c++
#include <dht.h>
dht DHT;
#define DHT11_PIN 2
void setup() {
Serial.begin(9600);
}
void loop() {
int chk = DHT.read11(DHT11_PIN);
Serial.print("Temperature: ");
Serial.print(DHT.temperature);
Serial.print("C, Humidity: ");
Serial.print(DHT.humidity);
Serial.println("%");
delay(2000);
}
```
LCD1602IIC显示:
```c++
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("Hello, World!");
}
void loop() {
// do nothing
}
```
结合两个模块的示例程序:
```c++
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <dht.h>
dht DHT;
#define DHT11_PIN 2
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
Serial.begin(9600);
lcd.init();
lcd.backlight();
}
void loop() {
int chk = DHT.read11(DHT11_PIN);
Serial.print("Temperature: ");
Serial.print(DHT.temperature);
Serial.print("C, Humidity: ");
Serial.print(DHT.humidity);
Serial.println("%");
lcd.setCursor(0, 0);
lcd.print("Temp: ");
lcd.print(DHT.temperature);
lcd.print("C");
lcd.setCursor(0, 1);
lcd.print("Humidity: ");
lcd.print(DHT.humidity);
lcd.print("%");
delay(2000);
}
```
这个程序可以读取DHT11模块的温度和湿度,并在LCD1602IIC上显示。需要注意的是,LCD1602IIC需要使用Wire库进行通信,因此需要在程序开头添加`#include <Wire.h>`,并在setup函数中初始化I2C通信。在loop函数中,先读取DHT11模块的数据并打印到串口上,然后将温度和湿度信息分别显示在LCD的第一行和第二行上。最后延时2秒钟,再次读取并更新数据。
阅读全文