Lỗi chỉ hiển th5i 1 chữ trên lcd arduino

Lỗi chỉ hiển th5i 1 chữ trên lcd arduino

Các lỗi thường gặp khi sử dụng I2C LCD

  • Hiển thị một dãy ô vuông.
  • Màn hình chỉ in ra một ký tự đầu.
  • Màn hình nhấp nháy.

- Các lỗi này chủ yếu là do sai địa chỉ bus, để fix lỗi các bạn thay địa chỉ mặc định là “0x27” thành “0x3F. - Trong trường hợp vẫn không được các bạn fix lỗi bằng cách nạp code tìm địa chỉ bus của I2C. - Sau khi tìm xong các bạn thay địa chỉ vừa tìm được vào vị trí “0x27” là xong.

Lỗi chỉ hiển th5i 1 chữ trên lcd arduino
Địa chỉ I2C 0x27

Lỗi chỉ hiển th5i 1 chữ trên lcd arduino

Địa chỉ I2C 0x3F

Code scan địa chỉ i2c

`// ------ // i2c_scanner // ------

include <Wire.h>

void setup() {  Wire.begin();  Serial.begin(9600);  while (!Serial); // Leonardo: wait for serial monitor  Serial.println("\nI2C Scanner"); } void loop() {  int nDevices = 0;  Serial.println("Scanning...");  for (byte address = 1; address < 127; ++address) {    // The i2c_scanner uses the return value of    // the Write.endTransmisstion to see if    // a device did acknowledge to the address.    Wire.beginTransmission(address);    byte error = Wire.endTransmission();    if (error == 0) {      Serial.print("I2C device found at address 0x");      if (address < 16) {        Serial.print("0");      }      Serial.print(address, HEX);      Serial.println("  !");      ++nDevices;    } else if (error == 4) {      Serial.print("Unknown error at address 0x");      if (address < 16) {        Serial.print("0");      }      Serial.println(address, HEX);    }  }  if (nDevices == 0) {    Serial.println("No I2C devices found\n");  } else {    Serial.println("done\n");  }  delay(5000); // Wait 5 seconds for next scan }`

Giao tiếp I2C LCD Arduino

Lỗi chỉ hiển th5i 1 chữ trên lcd arduino

Sơ đồ đấu nối

Lỗi chỉ hiển th5i 1 chữ trên lcd arduino
Sơ đồ đấu nối giao tiếp IC2 với LCD 16×2.

Phần cứng cần thiết

  • Arduino
  • Màn hình LCD 16×2 I2C

Code mẫu


# include <Wire.h> 

# include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3F,16,2); 
void setup()
{
  lcd.init();                    
  lcd.backlight();
  lcd.setCursor(2,0);
  lcd.print("tcl47.blogspot.com");
  lcd.setCursor(0,1);
  lcd.print("Xin chao cac ban");
}
void loop()
{ }

Giải thích code

LiquidCrystal_I2C lcd(0x3F,16,2);

  • Đặt địa chỉ LCD là 0x3F cho màn hình LCD 16×2.
  • 16 là số cột của màn hình (nếu dùng loại màn hình 20×4) thì thay bằng 20.
  • 2 là số dòng của màn hình (nếu dùng loại màn hình 20×4) thì thay bằng 4.

lcd.init();

Khởi động màn hình LCD, bắt đầu cho phép Arduino sử dụng màn hình.

Bật đèn nèn LCD

lcd.setCursor(2,0);

Đưa con trỏ tới hàng 1, cột 3. Lưu ý: giá trị hàng và cột bắt đầu từ số 0 có nghĩa 0 là hàng(cột) 1.

lcd.print("tcl47.blogspot.com");

Xuất ra dòng chữ tcl47.blogspot.com tại vị trí con trỏ ở hàng 1, cột 3.

lcd.setCursor(0,1);
lcd.print("Xin chao cac ban");

Đoạn code này thì tương tự như trên, xuất ra dòng chữ “Xin chao cac ban”tại vị trí con trỏ ở hàng 2, cột 1. Bây giờ thì các bạn upload chương trình và xem kết quả nhé.

Video: