#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);
int upButton = 32;
int downButton = 26;
int selectButton = 33;
int backButton = 27;
int menu = 1;
int menusetting = 5;
int menusuhuC = 8;
int menumL = 9;
int newmenumL = 13;
int menuwaktu = 17;
boolean ismLMode = false;
boolean issuhuCMode = false;
boolean isSettingMode = false;
boolean ismenuwaktuMode = false;
byte TampilanMenu;
void setup() {
Serial.begin(115200);
Wire.begin();
lcd.init();
lcd.backlight();
pinMode(upButton, INPUT_PULLUP);
pinMode(downButton, INPUT_PULLUP);
pinMode(selectButton, INPUT_PULLUP);
pinMode(backButton, INPUT_PULLUP);
TampilanMenu = 1;
}
byte NoMenu = 1, LastMenu;
void UpdateNoMenu(byte n){
if (NoMenu != LastMenu){
lcd.clear();
LastMenu = NoMenu;
}
if (!digitalRead(downButton)) {
while (!digitalRead(downButton));
NoMenu--;
if(NoMenu<1) NoMenu = n;
}
if (!digitalRead(upButton)) {
while (!digitalRead(upButton));
NoMenu++;
if(NoMenu>n) NoMenu = 1;
}
}
void loop() {
switch(TampilanMenu){
case 1 : updateMenu(); break;
case 2 : updatemenusetting(); break;
case 3 : updatemenusuhu(); break;
case 4 : updatemenumL(); break;
case 5 : updatemenuwaktu(); break;
}
}
void updateMenu() {
lcd.setCursor(0, 0);
if (NoMenu == 1) {
//Serial.println("menu awal");
lcd.print(">UAC COFFE");
lcd.setCursor(0, 1);
lcd.print(" Setting");
lcd.setCursor(0, 2);
lcd.print(" Check");
lcd.setCursor(0, 3);
lcd.print(" Ready?");
} else if (NoMenu == 2) {
lcd.print(" UAC COFFE");
lcd.setCursor(0, 1);
lcd.print(">Setting");
lcd.setCursor(0, 2);
lcd.print(" Check");
lcd.setCursor(0, 3);
lcd.print(" Ready?");
if(!digitalRead(selectButton)){
Serial.println("Menu Setting");
while (!digitalRead(selectButton));
NoMenu = 1;
TampilanMenu = 2;
lcd.clear();
}
} else if (NoMenu == 3) {
lcd.print(" UAC COFFE");
lcd.setCursor(0, 1);
lcd.print(" Setting");
lcd.setCursor(0, 2);
lcd.print(">Check");
lcd.setCursor(0, 3);
lcd.print(" Ready?");
} else if (NoMenu == 4) {
lcd.print(" UAC COFFE");
lcd.setCursor(0, 1);
lcd.print(" Setting");
lcd.setCursor(0, 2);
lcd.print(" Check");
lcd.setCursor(0, 3);
lcd.print(">Ready?");
}
UpdateNoMenu(4);
}
void updatemenusetting() {
//lcd.clear();
lcd.setCursor(0, 0);
if (NoMenu == 1) {
lcd.print(">suhuC");
lcd.setCursor(0, 1);
lcd.print(" Volume");
lcd.setCursor(0, 2);
lcd.print(" Durasi");
if(!digitalRead(selectButton)){
Serial.println("Menu Suhu");
while (!digitalRead(selectButton));
NoMenu = 1;
TampilanMenu = 3;
lcd.clear();
}
} else if (NoMenu == 2) {
lcd.print(" suhuC");
lcd.setCursor(0, 1);
lcd.print(">Volume");
lcd.setCursor(0, 2);
lcd.print(" Durasi");
if(!digitalRead(selectButton)){
Serial.println("Menu Volume");
while (!digitalRead(selectButton));
NoMenu = 1;
TampilanMenu = 4;
lcd.clear();
}
} else if (NoMenu == 3) {
lcd.print(" suhuC");
lcd.setCursor(0, 1);
lcd.print(" Volume");
lcd.setCursor(0, 2);
lcd.print(">Durasi");
if(!digitalRead(selectButton)){
Serial.println("Menu Durasi");
while (!digitalRead(selectButton));
NoMenu = 1;
TampilanMenu = 5;
lcd.clear();
}
}
UpdateNoMenu(3);
if (!digitalRead(backButton)){
TampilanMenu = 1;
while (!digitalRead(backButton));
}
}
void updatemenusuhu() {
//lcd.clear();
lcd.setCursor(0, 0);
if (NoMenu==1) {
lcd.print(">10");
if ( !digitalRead (selectButton) ){
while (!digitalRead(selectButton));
TampilanMenu = 1;
NoMenu = 1;
lcd.clear();
}
}
if (!digitalRead(backButton)){
TampilanMenu = 2;
while (!digitalRead(backButton));
}
}
void updatemenumL() {
//lcd.clear();
lcd.setCursor(0, 0);
if (NoMenu==1) {
lcd.print(">150");
lcd.setCursor(0, 1);
lcd.print(" 160");
lcd.setCursor(0, 2);
lcd.print(" 170");
lcd.setCursor(0, 3);
lcd.print(" 180");
} else if (NoMenu==2){
lcd.print(" 150");
lcd.setCursor(0, 1);
lcd.print(">160");
lcd.setCursor(0, 2);
lcd.print(" 170");
lcd.setCursor(0, 3);
lcd.print(" 180");
}else if(NoMenu==3){
lcd.print(" 150");
lcd.setCursor(0, 1);
lcd.print(" 160");
lcd.setCursor(0, 2);
lcd.print(">170");
lcd.setCursor(0, 3);
lcd.print(" 180");
}else if (NoMenu==4){
lcd.print(" 150");
lcd.setCursor(0, 1);
lcd.print(" 160");
lcd.setCursor(0, 2);
lcd.print(" 170");
lcd.setCursor(0, 3);
lcd.print(">180");
}else if (NoMenu==5){
lcd.print (">190");
lcd.setCursor(0, 1);
lcd.print (" 200");
lcd.setCursor(0, 2);
lcd.print (" 210");
lcd.setCursor(0, 3);
lcd.print (" 220");
}else if (NoMenu==6){
lcd.print (" 190");
lcd.setCursor(0, 1);
lcd.print (">200");
lcd.setCursor(0, 2);
lcd.print (" 210");
lcd.setCursor(0, 3);
lcd.print (" 220");
}else if (NoMenu==7){
lcd.print (" 190");
lcd.setCursor(0, 1);
lcd.print (" 200");
lcd.setCursor(0, 2);
lcd.print (">210");
lcd.setCursor(0, 3);
lcd.print (" 220");
}else if (NoMenu==8){
lcd.print (" 190");
lcd.setCursor(0, 1);
lcd.print (" 200");
lcd.setCursor(0, 2);
lcd.print (" 210");
lcd.setCursor(0, 3);
lcd.print (">220");
}
UpdateNoMenu(8);
}
void updatemenuwaktu() {
//lcd.clear();
lcd.setCursor(0, 0);
if (NoMenu==1){
lcd.print(">10 menit");
lcd.setCursor(0, 1);
lcd.print (" 30menit");
lcd.setCursor(0, 2);
lcd.print (" 60menit");
} else if (NoMenu==2) {
lcd.print(" 10 menit");
lcd.setCursor(0, 1);
lcd.print (">30menit");
lcd.setCursor(0, 2);
lcd.print (" 60menit");
}else if (NoMenu==3) {
lcd.print(" 10 menit");
lcd.setCursor(0, 1);
lcd.print (" 30menit");
lcd.setCursor(0, 2);
lcd.print (">60menit");
}
UpdateNoMenu(3);
}