#include <Wire.h>
#include <LiquidCrystal_I2C.h> // подключаем библиотеку

#if defined(ARDUINO) && ARDUINO >= 100
#define printByte(args)  write(args);
#else
#define printByte(args)  print(args,BYTE);
#endif

LiquidCrystal_I2C lcd(0x26, 20, 4);  // запускаем библиотеку для дисплея с адресом 0x27, 16 символов, 2 строки

void setup() {
  lcd.init();          // запускаем дисплей
  lcd.backlight();     // включаем подсветку
  lcd.clear();
}

void loop() {       // по кругу выводим все символы в памяти дисплея по 16 штук через 4 сек
  static byte i = 0;
  lcd.clear();
  lcd.print("Codes 0x"); lcd.print(i, HEX);
  lcd.print("-0x"); lcd.print(i + 16, HEX);
  lcd.setCursor(0, 1);
  for (byte j = 0; j < 16; j++) {
    lcd.printByte(i + j);
  }
  i += 16;
  delay(4000);
}
