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

#define pinLed1 12
#define pinLed2 11
#define pinLed3 10
#define pinLed4 9
#define pinButton1 8
#define pinButton2 7

//Set alamat I2C dan ukuran LCD
LiquidCrystal_I2C lcd(0x27,16,2);

//variabel bilangan bulat
int dataPertama = 100;
int dataButton1 = 0;
int dataButton2 = 0;
int k1 = 0;
int k2 = 0;
int menu = 0;
//variabel bilangan pecahan
float dataKedua = 100.7;

void setup(){
  pinMode(pinLed1, OUTPUT);
  pinMode(pinLed2, OUTPUT);
  pinMode(pinLed3, OUTPUT);
  pinMode(pinLed4, OUTPUT);
  pinMode(pinButton1, INPUT);
  pinMode(pinButton2, INPUT);
  Serial.begin(9600);
  lcd.init();
  lcd.backlight();
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("Welcome");
  lcd.setCursor(0,1);
  lcd.print("Hello World");
  delay(2000);
  lcd.clear();
}

void loop(){
  dataButton1 = digitalRead(pinButton1);
  dataButton2 = digitalRead(pinButton2);
  if(dataButton1 == 1){
    menu++;
  }
  if(menu > 4){
    menu = 0;
  }
  delay(100);

  switchMenu(menu);
}

void switchMenu(int dataMenu){
  switch(dataMenu){
    case 1:
      lcd.setCursor(0,0);
      lcd.print("Menu 1");
    break;
    case 2:
      lcd.setCursor(0,0);
      lcd.print("Menu 2");
    break;
    case 3:
      lcd.setCursor(0,0);
      lcd.print("Menu 3");
    break;
    case 4:
      lcd.setCursor(0,0);
      lcd.print("Menu 4");
    break;
    default:
      lcd.setCursor(0,0);
      lcd.print("HOME  ");
    break;
  };
}

//LATIHAN 4
//1. buat tampilan greatting dg menampilkan tulisan seperti ini:
//"LKS ELECTRONICS" -> baris ke 1
//"SMKN 39 JAKARTA" -> baris ke 2
//greatting selama 3 detik
//2. LCD pertama menampikan tuisan berikut :
//"HOME" -> baris ke 1 (centre)
//"Tekan Button 1" -> baris ke 2 (centre)
//3. jika btn 1 ditekan 1x masuk ke menu 1
//4. jika btn 1 ditekan 2x masuk ke menu 2
//5. jika btn 1 ditekan 3x masuk ke menu 3
//6. jika btn 1 ditekan 4x masuk ke menu 4
//7. isi menu 1:
// Led running dari kiri ke kanan dengan delay 200ms
//tulisan "Menu 1" -> baris ke 1 (centre)
//tulisan "Running Led Kn" -> baris ke 2 (centre)
//8. isi menu 2:
// Led running dari kanan ke kiri dengan delay 200ms
//tulisan "Menu 2" -> baris ke 1 (centre)
//tulisan "Running Led Kr" -> baris ke 2 (centre)
//9. isi menu 3:
// Led 1 dan 3 blynk -> T 400ms
// Led 2 dan 4 blynk -> T 800ms
//tulisan "Menu 3" -> baris ke 1 (centre)
//tulisan "LED Blynk" -> baris ke 2 (centre)
//10. isi menu 4:
//counter up dari 0 - 100 delay 200ms
//tulisan "Menu 4" -> baris ke 1 (centre)
//tulisan "Counter Up :" (nilai counter)



nano:12
nano:11
nano:10
nano:9
nano:8
nano:7
nano:6
nano:5
nano:4
nano:3
nano:2
nano:GND.2
nano:RESET.2
nano:0
nano:1
nano:13
nano:3.3V
nano:AREF
nano:A0
nano:A1
nano:A2
nano:A3
nano:A4
nano:A5
nano:A6
nano:A7
nano:5V
nano:RESET
nano:GND.1
nano:VIN
nano:12.2
nano:5V.2
nano:13.2
nano:11.2
nano:RESET.3
nano:GND.3
led1:A
led1:C
led2:A
led2:C
led3:A
led3:C
led4:A
led4: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
r1:1
r1:2
r2:1
r2:2
pot1:GND
pot1:SIG
pot1:VCC
lcd1:GND
lcd1:VCC
lcd1:SDA
lcd1:SCL
74HC595
sr1:Q1
sr1:Q2
sr1:Q3
sr1:Q4
sr1:Q5
sr1:Q6
sr1:Q7
sr1:GND
sr1:Q7S
sr1:MR
sr1:SHCP
sr1:STCP
sr1:OE
sr1:DS
sr1:Q0
sr1:VCC
sevseg1:COM.1
sevseg1:COM.2
sevseg1:A
sevseg1:B
sevseg1:C
sevseg1:D
sevseg1:E
sevseg1:F
sevseg1:G
sevseg1:DP