arduino,DHT11模块与LCD1602显示
时间: 2024-05-26 08:02:50 浏览: 184
以下是使用Arduino、DHT11模块和LCD1602显示器来显示温度和湿度的基本代码。
首先,我们需要使用DHT11库读取传感器的值。在Arduino IDE中,打开“示例” -> “DHT sensor library” -> “DHTtester”并将以下代码复制到新的Arduino文件中:
#include <DHT.h>
#define DHTPIN 2
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
dht.begin();
}
void loop() {
delay(2000);
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
Serial.print("Humidity: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(t);
Serial.println(" *C");
}
现在,我们可以在串口监视器中看到传感器的读数。接下来,我们将使用LCD1602显示器将读数显示在屏幕上。连接LCD1602显示器的引脚如下:
LCD1602 引脚 Arduino 引脚
--------------------------------
VSS GND
VDD 5V
VO 10K 滑动电位器
RS 12
RW GND
EN 11
D4 5
D5 4
D6 3
D7 2
A 5V
K GND
使用LiquidCrystal库控制LCD1602显示器。在Arduino IDE中,打开“示例” -> “LiquidCrystal” -> “HelloWorld”并将以下代码复制到新的Arduino文件中:
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
lcd.begin(16, 2);
lcd.print("Hello, world!");
}
void loop() {
lcd.setCursor(0, 1);
lcd.print("Arduino rocks!");
delay(1000);
lcd.clear();
delay(1000);
}
现在,我们可以将这两个示例合并到一个程序中,并使用lcd.print()将温度和湿度显示在LCD1602上。以下是完整的代码:
#include <DHT.h>
#include <LiquidCrystal.h>
#define DHTPIN 2
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
Serial.begin(9600);
dht.begin();
lcd.begin(16, 2);
lcd.print("Temperature:");
}
void loop() {
delay(2000);
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
lcd.setCursor(0, 1);
lcd.print("Temp: ");
lcd.print(t);
lcd.print(" C Humidity: ");
lcd.print(h);
lcd.print(" %");
}
现在,我们已经成功地将温度和湿度显示在LCD1602上。可以通过调整代码来改变显示的格式或添加其他功能。
阅读全文