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(" %"); } }