Giao tiếp I2C LCD Arduino
| Module I2C LCD 16×2 | Arduino UNO |
| GND | GND |
| VCC | 5V |
| SDA | A4/SDA |
| SCL | A5/SCL |
Hiển thị nhiệt độ, độ ẩm lên LCD sử dụng I2C
| Màn hình LCD I2C | Arduino UNO R3 |
| GND | GND |
| VCC | 5V |
| SDA | A4 |
| SCL | A5 |
| Cảm biến nhiệt độ, độ ẩm DHT11 | |
| VCC | 5V |
| DATA | D4 |
| GND | GND |
Giới thiệu về Màn hình LCD 16×2 và giao tiếp I2C:
- Màn hình LCD 16×2: Là một linh kiện phổ biến trong các dự án điện tử và lập trình. Nó có 16 chân, trong đó 8 chân dữ liệu (D0 – D7) và 3 chân điều khiển (RS, RW, EN). 5 chân còn lại dùng để cấp nguồn và đèn nền cho LCD 16×2.
- Module I2C LCD: Để giảm số lượng chân kết nối, bạn có thể sử dụng module I2C LCD. Thay vì cần 6 chân để kết nối với LCD 16×2, module I2C chỉ cần 2 chân (SCL, SDA). Module này hỗ trợ các loại LCD sử dụng driver HD44780 (LCD 16×2, LCD 20×4, …).
Cài đặt thư viện LiquidCrystal_I2C:
- Để sử dụng màn hình LCD giao tiếp I2C với Arduino, bạn cần cài đặt thư viện
LiquidCrystal_I2C. - Bạn có thể cài đặt thư viện này bằng cách mở Arduino IDE, chọn “Sketch” > “Include Library” > “Manage Libraries”. Tìm kiếm “LiquidCrystal_I2C” và cài đặt phiên bản mới nhất.


Code mẫu
#include <DHT.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3F,16,2);
const int DHTPIN = 4;
const int DHTTYPE = DHT11;
DHT dht(DHTPIN, DHTTYPE);
byte degree[8] = {
0B01110,
0B01010,
0B01110,
0B00000,
0B00000,
0B00000,
0B00000,
0B00000
};
void setup() {
lcd.init();
lcd.backlight();
lcd.print("Nhiet do: ");
lcd.setCursor(0,1);
lcd.print("Do am: ");
lcd.createChar(1, degree);
dht.begin();
}
void loop() {
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(t) || isnan(h)) {
}
else {
lcd.setCursor(10,0);
lcd.print(round(t));
lcd.print(" ");
lcd.write(1);
lcd.print("C");
lcd.setCursor(10,1);
lcd.print(round(h));
lcd.print(" %");
}
}

