#include <LCD_I2C.h>

#define PB1 11
#define PB2 8
#define PB3 5
#define PB4 2
#define POT1 A0
#define POT2 A1
#define POT3 A2
#define BUZ A7

LCD_I2C lcd(0x27, 16, 2);

int menu;

void setup()
{
  pinMode(PB1, INPUT_PULLUP);
  pinMode(PB2, INPUT_PULLUP);
  pinMode(PB3, INPUT_PULLUP);
  pinMode(PB4, INPUT_PULLUP);
  pinMode(BUZ, OUTPUT);
  lcd.begin();
  lcd.backlight();
}

void loop()
{
  if (menu == 0) {
    lcd.setCursor(0, 0);
    lcd.print("   Tekan PB1");
  }

  if (menu == 0 && digitalRead(PB1) == 0) {
    lcd.clear();
    menu = 1;
    while (digitalRead(PB1) == 0) {}
  }

  if (menu == 1) {
    lcd.setCursor(0, 0);
    lcd.print(">ADC-A0");
    lcd.setCursor(1, 1);
    lcd.print("ADC-A1");
    if (digitalRead(PB1) == 0) {
      menu = 4;
      while (digitalRead(PB1) == 0) {};
    }
  }
  if (menu == 2) {
    lcd.setCursor(1, 0);
    lcd.print("ADC-A0");
    lcd.setCursor(0, 1);
    lcd.print(">ADC-A1");
  }
  if (menu == 3) {
    lcd.setCursor(1, 0);
    lcd.print("ADC-A1");
    lcd.setCursor(0, 1);
    lcd.print(">ADC-A2");
  }

  if (digitalRead(PB2) == 0 && menu > 1 && menu <= 3) {
    lcd.clear();
    menu--;
    while (digitalRead(PB2) == 0) {}
  }
  if (digitalRead(PB3) == 0 && menu >= 1 && menu < 3) {
    lcd.clear();
    menu++;
    while (digitalRead(PB3) == 0) {}
  }

  if (menu == 1 && digitalRead(PB1) == 0) {
    menu = 4;
    while (digitalRead(PB1) == 0) {}
  }
  if (menu == 4) {
    lcd.setCursor(0, 0);
    lcd.print("  Nilai ADC-A0");
    lcd.setCursor(0, 1);
    lcd.print("      ");
    lcd.print(analogRead(POT1));
    lcd.print("   ");
  }

  if (menu == 2 && digitalRead(PB1) == 0) {
    menu = 5;
    while (digitalRead(PB1) == 0) {}
  }
  if (menu == 5) {
    lcd.setCursor(0, 0);
    lcd.print("  Nilai ADC-A1");
    lcd.setCursor(0, 1);
    lcd.print("      ");
    lcd.print(analogRead(POT2));
    lcd.print("   ");
  }

  if (menu == 3 && digitalRead(PB1) == 0) {
    menu = 6;
    while (digitalRead(PB1) == 0) {}
  }
  if (menu == 6) {
    lcd.setCursor(0, 0);
    lcd.print("  Nilai ADC-A2");
    lcd.setCursor(0, 1);
    lcd.print("      ");
    lcd.print(analogRead(POT3));
    lcd.print("   ");
  }
  
  if (menu == 4 && digitalRead(PB4) == 0) {
    menu = 1;
    lcd.clear();
    while (digitalRead(PB4) == 0) {}
  }
  if (menu == 5 && digitalRead(PB4) == 0) {
    menu = 2;
    lcd.clear();
    while (digitalRead(PB4) == 0) {}
  }
  if (menu == 6 && digitalRead(PB4) == 0) {
    menu = 3;
    lcd.clear();
    while (digitalRead(PB4) == 0) {}
  }

  if (menu == 1 && digitalRead(PB4) == 0) {
    menu = 0;
    lcd.clear();
    while (digitalRead(PB4) == 0) {}
  }
  if (menu == 2 && digitalRead(PB4) == 0) {
    menu = 0;
    lcd.clear();
    while (digitalRead(PB4) == 0) {}
  }
  if (menu == 3 && digitalRead(PB4) == 0) {
    menu = 0;
    lcd.clear();
    while (digitalRead(PB4) == 0) {}
  }
}