#include <Arduino.h>
#include <Wire.h>
#include <hd44780.h>
#include <hd44780ioClass/hd44780_I2Cexp.h>

static const int LCD_SDA_PIN = 21;
static const int LCD_SCL_PIN = 22;

hd44780_I2Cexp lcd; // auto address/pinmap

void setup() {
  Serial.begin(115200);
  Wire.begin(LCD_SDA_PIN, LCD_SCL_PIN);

  int status = lcd.begin(16, 4); // 16x4 LCD
  if (status) {
    Serial.print("LCD init failed, status=");
    Serial.println(status);
    return;
  }

  lcd.backlight();
  lcd.clear();
  lcd.setCursor(0, 0); lcd.print("Hello World!");
  lcd.setCursor(0, 1); lcd.print("ESP32 + I2C LCD");
  lcd.setCursor(0, 2); lcd.print("SDA=21 SCL=22");
  lcd.setCursor(0, 3); lcd.print("hd44780 OK");
}

void loop() {}
