#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
#define b1 7
#define b2 6
#define b3 8
#define l1 13
int sbmenul = 0;
int smlc = 0;
int sbmenuc = 0;
int lcdbl = 0;
int menu,led1,st1,st2,st3;
void setup() {
Serial.begin(9600);
lcd.init();
lcd.setCursor(0,0);
lcd.print("QUIZ TA|DZAKY NIM 31");
lcd.setCursor(0,1);
lcd.print(" > 0% < ");
delay(2500);
lcd.setCursor(0,1);
lcd.print("SET DIGITAL PIN 15%");
delay(750);
lcd.setCursor(0,1);
lcd.print("SERIAL STARTING 35%");
delay(500);
lcd.setCursor(0,1);
lcd.print("SERIAL STARTING 50%");
Serial.println("SERIAL CHECK = SUCCESS");
delay(1000);
lcd.setCursor(0,1);
lcd.print("SET BACKLIGHT 65%");
delay(500);
lcd.backlight();
lcd.setCursor(0,1);
lcd.print("SET BACKLIGHT 75%");
delay(1000);
lcd.setCursor(0,1);
lcd.print("SET PINMODE 80%");
lcd.setCursor(0,1);
delay(500);
lcd.print("CREATE MENU 90%");
lcd.setCursor(0,1);
delay(500);
lcd.print("STARTING 100%");
delay(1250);
lcd.clear();
pinMode(b1, INPUT_PULLUP);
pinMode(b2, INPUT_PULLUP);
pinMode(b3, INPUT_PULLUP);
pinMode(l1, OUTPUT);
}
void loop() {
st1 = digitalRead(b1);
st2 = digitalRead(b2);
st3 = digitalRead(b3);
led1 = digitalRead(l1);
lcd.setCursor(10,0);
lcd.print("Nilai =");
lcd.setCursor(0,0);
lcd.print(st1);
lcd.setCursor(2,0);
lcd.print("|");
lcd.setCursor(4,0);
lcd.print(st2);
lcd.setCursor(6,0);
lcd.print("|");
lcd.setCursor(8,0);
lcd.print(st3);
mainmenu();
setting();
settingsm();
lcdb();
lcdbsm();
if(st1 == 0){
menu++;
}
if(st2 == 0){
menu--;
}
if(menu == 4){
lcd.setCursor(0,1);
lcd.print("[.......<<<<.......]");
delay(150);
menu = 0;
}
if(menu <= 0){
menu = 0;
}
Serial.print("N=");
Serial.print(menu);
Serial.print("|");
Serial.print("SMLED=");
Serial.print(sbmenul);
Serial.print("|");
Serial.print("SSMLED=");
Serial.print(smlc);
Serial.print("|");
Serial.print("SMLCD=");
Serial.print(sbmenuc);
Serial.print("|");
Serial.print("SSMLCD=");
Serial.println(lcdbl);
lcd.setCursor(18,0);
lcd.print(menu);
delay(75);
}
void mainmenu() {
if(menu == 0){
lcd.setCursor(0,1);
lcd.print("[START.............]");
sbmenul = 0;
sbmenuc = 0;
}
if(menu == 1){
lcd.setCursor(0,1);
lcd.print("[SETTING...........]");
if(st3 == 0){
menu = 10;
}
}
if(menu == 2){
lcd.setCursor(0,1);
lcd.print("[LCD...............]");
if(st3 == 0){
menu = 20;
}
}
if(menu == 3){
lcd.setCursor(0,1);
lcd.print("[RESET.............]");
if(st3 == 0){
lcd.setCursor(0,1);
lcd.print("[RESET.CONFIG.*....]");
lcd.backlight();
digitalWrite(l1, HIGH);
delay(250);
lcd.setCursor(0,1);
lcd.print("[RESET.CONFIG.**...]");
lcd.noBacklight();
digitalWrite(l1, LOW);
delay(250);
lcd.setCursor(0,1);
lcd.print("[RESET.CONFIG.***..]");
lcd.backlight();
digitalWrite(l1, HIGH);
delay(250);
lcd.setCursor(0,1);
lcd.print("[RESET.CONFIG.****.]");
lcd.noBacklight();
digitalWrite(l1, LOW);
delay(250);
lcd.backlight();
menu = 0;
lcd.clear();
}
}
}
void setting() {
if(menu == 10){
lcd.setCursor(0,1);
lcd.print("[LED...............]");
if(st1 == 0){
menu = 10;
menu--;
}
if(st2 == 0){
lcd.setCursor(0,1);
lcd.print("[.......<<<<.......]");
delay(150);
menu = 0;
lcd.clear();
}
if(st3 == 0){
sbmenul++;
if(sbmenul == 2){
menu = 11;
}
}
}
}
void settingsm() {
if(menu == 11) {
if(led1 == LOW){
lcd.setCursor(0,1);
lcd.print("[LED.Status.=.OFF..]");
}else{
lcd.setCursor(0,1);
lcd.print("[LED.Status.=.ON...]");
if(st3 == 0){
smlc++;
if(smlc == 3){
digitalWrite(l1, LOW);
smlc = 0;
}
}
}
if(st1 == 0){
menu = 11;
menu--;
}
if(st2 == 0){
sbmenul = 1;
smlc = 0;
}
if(st3 == 0){
smlc++;
if(smlc == 2){
digitalWrite(l1, HIGH);
}
}
}
}
void lcdb() {
if(menu == 20){
lcd.setCursor(0,1);
lcd.print("[BACKLIGHT.........]");
if(st1 == 0){
menu = 20;
menu--;
}
if(st2 == 0){
lcd.setCursor(0,1);
lcd.print("[.......<<<<.......]");
delay(150);
menu = 0;
lcd.clear();
}
if(st3 == 0){
sbmenuc++;
if(sbmenuc == 2){
menu = 21;
}
}
}
}
void lcdbsm() {
if(menu == 21) {
if(lcdbl == 1){
lcd.setCursor(0,1);
lcd.print("[LCDBL.Status.=.ON.]");
lcd.backlight();
}
if(lcdbl == 5){
lcd.setCursor(0,1);
lcd.print("[LCDBL.Status.=.OFF]");
if(st3 == 0){
lcdbl++;
if(lcdbl == 6){
lcd.setCursor(0,1);
lcd.print("[LCDBL.Status.=.ON.]");
lcd.backlight();
lcdbl = 1;
}
}
}
if(st1 == 0){
menu = 21;
menu--;
}
if(st2 == 0){
sbmenuc--;
lcdbl = 0;
}
if(st3 == 0){
lcdbl++;
if(lcdbl == 2){
lcd.setCursor(0,1);
lcd.print("[LCDBL.Status.=.OFF]");
lcd.noBacklight();
delay(500);
lcd.setCursor(0,1);
lcd.print("[BACK.TO.MENU.<<<<.]");
delay(500);
sbmenuc = 0;
lcdbl = 0;
menu = 0;
lcd.clear();
}
}
}
}