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

LiquidCrystal_I2C lcd(0x27, 16, 2); // Alamat I2C LCD biasanya adalah 0x27

int menuLevel = 0; // Level menu
int submenuIndex = 0; // Indeks submenu
int submenuCount = 2; // Jumlah submenu dalam setiap menu
String menuOptions[2][2] = {{"Main Measure", "Printing"}, {"Input Candela", "Adjusting"}};

void setup() {
  lcd.init();
  lcd.backlight();
  lcd.setCursor(0, 0);
  lcd.print("Menu Utama");
  displayMenu();

  // Konfigurasi pin tombol
  pinMode(2, INPUT_PULLUP); // Tombol Exit
  pinMode(3, INPUT_PULLUP); // Tombol Enter
  pinMode(4, INPUT_PULLUP); // Tombol Up
  pinMode(5, INPUT_PULLUP); // Tombol Down
}

void displayMenu() {
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Menu:");
  lcd.setCursor(0, 1);
  lcd.print(menuOptions[menuLevel][submenuIndex]);
}

void loop() {
  // Baca status tombol
  int exitButton = digitalRead(2);
  int enterButton = digitalRead(3);
  int upButton = digitalRead(4);
  int downButton = digitalRead(5);

  if (exitButton == LOW) {
    // Tombol Exit ditekan, kembali ke menu utama
    menuLevel = 0;
    submenuIndex = 0;
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("Menu Utama");
  } else if (enterButton == LOW) {
    // Tombol Enter ditekan, pilih submenu
    if (menuLevel == 0) {
      // Menu Utama
      menuLevel = 1;
      displayMenu();
    } else if (menuLevel == 1) {
      // Submenu 1 (Measure)
      if (submenuIndex == 0) {
        // Pilih "Main Measure"
        lcd.clear();
        lcd.setCursor(0, 0);
        lcd.print("Main Measure");
        // Lakukan tindakan yang sesuai
        // Misalnya, mengukur sesuatu dan menampilkan hasil di LCD
      } else if (submenuIndex == 1) {
        // Pilih "Printing"
        lcd.clear();
        lcd.setCursor(0, 0);
        lcd.print("Printing");
        // Melakukan cetakan
      }
    } else if (menuLevel == 2) {
      // Submenu 2 (Calibrate)
      if (submenuIndex == 0) {
        // Pilih "Input Candela"
        lcd.clear();
        lcd.setCursor(0, 0);
        lcd.print("Input Candela");
        // Melakukan pengaturan candela
      } else if (submenuIndex == 1) {
        // Pilih "Adjusting"
        lcd.clear();
        lcd.setCursor(0, 0);
        lcd.print("Adjusting");
        // Melakukan penyesuaian
      }
    }
  } else if (upButton == LOW) {
    // Tombol Up ditekan, navigasi ke atas dalam submenu
    if (submenuIndex > 0) {
      submenuIndex--;
      displayMenu();
    }
  } else if (downButton == LOW) {
    // Tombol Down ditekan, navigasi ke bawah dalam submenu
    if (submenuIndex < submenuCount - 1) {
      submenuIndex++;
      displayMenu();
    }
  }
  // Tambahan kode lainnya yang mungkin diperlukan dalam loop
}
uno:A5.2
uno:A4.2
uno:AREF
uno:GND.1
uno:13
uno:12
uno:11
uno:10
uno:9
uno:8
uno:7
uno:6
uno:5
uno:4
uno:3
uno:2
uno:1
uno:0
uno:IOREF
uno:RESET
uno:3.3V
uno:5V
uno:GND.2
uno:GND.3
uno:VIN
uno:A0
uno:A1
uno:A2
uno:A3
uno:A4
uno:A5
led1:A
led1:C
btn1:1.l
btn1:2.l
btn1:1.r
btn1:2.r
btn2:1.l
btn2:2.l
btn2:1.r
btn2:2.r
btn3:1.l
btn3:2.l
btn3:1.r
btn3:2.r
btn4:1.l
btn4:2.l
btn4:1.r
btn4:2.r
lcd1:GND
lcd1:VCC
lcd1:SDA
lcd1:SCL