#include <Wire.h>
#include <LiquidCrystal_I2C.h>

// กำหนดที่อยู่ของ I2C และจำนวนคอลัมน์และแถวของ LCD
LiquidCrystal_I2C lcd(0x27, 16, 2);

byte name0x12[] = { B00000, B00000, B00000, B11001, B01001, B01001, B01001, B01111 };
byte name0x5[] = { B00000, B11111, B00000, B11001, B10001, B01001, B10001, B11111 };
byte name0x6[] = { B00000, B00000, B00000, B11010, B01010, B01010, B01111, B01011 };
byte name0x7[] = { B00001, B11111, B00000, B01111, B10001, B10101, B11001, B10001 };
byte name0x8[] = { B01100, B00111, B00000, B11011, B10101, B10001, B10101, B11001 };
byte name0x9[] = { B00000, B00000, B00000, B11111, B00001, B11001, B10001, B11111 };
byte name0x10[] = { B00000, B00000, B00000, B11010, B01010, B01010, B01111, B01011 };
byte name0x11[] = { B01000, B01111, B00000, B01111, B10000, B01111, B00001, B00111 };

void setup() {
  lcd.init(); // ใช้ lcd.init แทน lcd.begin ตามที่คุณต้องการ
  lcd.backlight(); // เปิดไฟหลังจอ LCD
  
  lcd.createChar(0, name0x12);
  lcd.setCursor(12, 0);
  lcd.write(0);
  
  lcd.createChar(1, name0x5);
  lcd.setCursor(5, 0);
  lcd.write(1);
  
  lcd.createChar(2, name0x6);
  lcd.setCursor(6, 0);
  lcd.write(2);
  
  lcd.createChar(3, name0x7);
  lcd.setCursor(7, 0);
  lcd.write(3);
  
  lcd.createChar(4, name0x8);
  lcd.setCursor(8, 0);
  lcd.write(4);
  
  lcd.createChar(5, name0x9);
  lcd.setCursor(9, 0);
  lcd.write(5);
  
  lcd.createChar(6, name0x10);
  lcd.setCursor(10, 0);
  lcd.write(6);
  
  lcd.createChar(7, name0x11);
  lcd.setCursor(11, 0);
  lcd.write(7);
  
  delay(1000); // หน่วงเวลาเพื่อให้ข้อความเริ่มต้นแสดงผลก่อนเลื่อน
}

void loop() {
  lcd.scrollDisplayLeft();  // เลื่อนข้อความไปทางซ้าย
  delay(300);               // หน่วงเวลาเพื่อให้การเลื่อนเป็นไปอย่างลื่นไหล
}
GND5VSDASCLSQWRTCDS1307+