準備材料
- Arduino UNO R3 開發板;
- LCD1602模塊;
- DTH11模塊;
- 杜邦線若干;
硬件線路鏈接
LCD1602線路連接
VSS | VDD | V0 | RS | RW | E | D0 | D1 | D2 | D3 | D4 | D5 | D6 | D7 | A | K |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
GND | 5V | 10 | 7 | GND | 6 | NA | NA | NA | NA | 5 | 4 | 3 | 2 | 5V | GND |
DTH11 線路連接
Vcc | DATA | GND |
---|---|---|
5V | 8 | GND |
程序編寫
#include <LiquidCrystal.h>
#include <DHT.h>
#define DHTPIN 8
#define DHTTYPE DHT11
const int rs = 7, en = 6, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7); // 申明一個lcd對象
DHT dht(DHTPIN, DHTTYPE); // 申明一個dht對象
const int lcd_v0 = 10; // 用10腳輸出PWM信號,控制LCD對比度
void setup()
{
lcd.begin(16,2); // 初始化LCD
pinMode(lcd_v0,OUTPUT); // LCD 對比度控制管腳配置
analogWrite(lcd_v0,100);
lcd.setCursor(0,0); // LCD初始內容顯示
lcd.print("tempe:");
lcd.setCursor(0,1);
lcd.print("Humi :");
delay(500);
dht.begin(); // DTH11 初始化
}
void loop()
{
int i = 0;
delay(500);
float humidity = dht.readHumidity(); // 讀取DTH11 溼度信息
float temperature = dht.readTemperature(); // 讀取DTH11 溫度信息
lcd.setCursor(7,0); // 將溫度信息顯示在第一行
lcd.print(temperature);
//lcd.setCursor(17,0);
lcd.print((char)223);
lcd.print("C");
lcd.setCursor(7,1); // 將溼度信息顯示在第二行
lcd.print(humidity);
lcd.print((char)37);
lcd.print("RH");
}