#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Set the LCD address to 0x27 for a 16 chars and 2 line display
LiquidCrystal_I2C lcd(0x27, 16, 2);
int currentMenuItem = 0;
int lastState = 0;
int up = A3;
int down = A4;
int enter = A5;
void setup() {
pinMode(up, INPUT_PULLUP);
pinMode(down, INPUT_PULLUP);
pinMode(enter, INPUT_PULLUP);
lcd.init();
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("LCD MENU DENGAN");
lcd.setCursor(0,1);
lcd.print("PUSH BUTTON");
delay(5000);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("PILIH PRODI ANDA");
lcd.setCursor(0,1);
lcd.print("TEKAN DOWN");
}
void loop() {
mainmenu();
}
void mainmenu() {
int state = 0;
if (digitalRead(up) == LOW) {
state = 1;
} else if (digitalRead(down) == LOW) {
state = 2;
} else if (digitalRead(enter) == LOW) {
state = 3;
}
if (currentMenuItem < 0 || currentMenuItem > 5) {
currentMenuItem = 0;
}
if (state != lastState) {
if (state == 1) {
currentMenuItem = currentMenuItem - 1;
displayMenu(currentMenuItem);
} else if (state == 2) {
currentMenuItem = currentMenuItem + 1;
displayMenu(currentMenuItem);
} else if (state == 3) {
selectMenu(currentMenuItem);
}
lastState = state;
}
delay(5);
}
void displayMenu(int x) {
switch (x) {
case 1:
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("*FARMASI");
lcd.setCursor(0, 1);
lcd.print(" FISIO");
break;
case 2:
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(" FARMASI");
lcd.setCursor(0, 1);
lcd.print("*FISIO");
break;
case 3:
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("*TEM");
lcd.setCursor(0, 1);
lcd.print("ANKES");
break;
case 4:
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(" TEM");
lcd.setCursor(0, 1);
lcd.print("*ANKES");
break;
case 5:
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(" ANKES");
lcd.setCursor(0, 1);
lcd.print("*RMIK");
break;
}
}
void selectMenu(int x) {
switch (x) {
case 1:
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("SELAMAT");
lcd.setCursor(0, 1);
lcd.print("ANDA MEMILIH FARMASI");
break;
case 2:
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("SELAMAT");
lcd.setCursor(0, 1);
lcd.print("ANDA MEMILIH FISIO");
break;
case 3:
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("SELAMAT");
lcd.setCursor(0, 1);
lcd.print("ANDA MEMILIH TEM");
break;
case 4:
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("SELAMAT");
lcd.setCursor(0, 1);
lcd.print("ANDA MEMILIH ANKES");
break;
case 5:
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("SELAMAT");
lcd.setCursor(0, 1);
lcd.print("ANDA MEMILIH RMIK");
break;
}
}