#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2); 
#define PB 12  //deklarasi PB ke pin 7 pada Arduino
#define Buz 13 //deklarasi pin 4 terkonek ke Buz
int stat_PB=1; //konstanta status penekanan tombol PB = 1

void setup() {
int k;
  pinMode(PB, INPUT);            //set pin PB sbg input
  pinMode(PB, INPUT_PULLUP);     //aktifkan resistor pull-up internal  
  lcd.init();                    //inisiasi lcd
  lcd.backlight();               //nyalakan lampu backlight
  lcd.print("  Jam Digital   "); //tampilkan kata pembuka
  lcd.setCursor(0,1);            //pindahkan kursor
  lcd.print("  Dengan Delay  "); //tampilkan kata pembuka
  delay(2000);
  for(k=1; k<=16; k++) {         //penghitung penggeseran
    lcd.scrollDisplayRight();    //geser tulisan ke kanan
    delay(50);
  }
  lcd.home();
  lcd.print("Tekan tombol PB "); //tampilkan kata petunjuk
  lcd.setCursor(0,1);            //pindahkan kursor
  lcd.print("utk setting Jam "); //tampilkan kata petunjuk
  delay(2000);
  lcd.clear();                   //menghapus tulisan
  lcd.noDisplay();               //matikan display
}

void menuSet() {
  lcd.display();
  lcd.print("Puluhan Jam :   "); //tampilkan kata petunjuk
  lcd.setCursor(0,1);            //pindahkan kursor
  lcd.print(" Satuan Jam :   "); //tampilkan kata petunjuk
  lcd.setCursor(14, 0); //pindahkan kursor ke kolom 14, baris 0
  lcd.blink();       //LCD berkedip pd posisi kolom 14, baris 0
  delay(2000);

  lcd.home(); //pindahkan kursor ke pojok kiri atas
  lcd.print("Puluhan Min :   "); //tampilkan kata petunjuk
  lcd.setCursor(0,1);            //pindahkan kursor
  lcd.print(" Satuan Min :   "); //tampilkan kata petunjuk
  lcd.setCursor(14, 0); //pindahkan kursor ke kolom 14, baris 0
  lcd.blink();      //LCD berkedip pd posisi kolom 14, baris 0
  delay(2000);
}
void loop() {
//fungsi jam
    stat_PB=digitalRead(PB); //baca status pin digital PB
    if (stat_PB==0) {        //jika tombol ditekan maka ...
      menuSet();             //eksekusi fungsi menuSet
      stat_PB==1;            //kembalikan status PB menjadi 1
      lcd.noBlink();         //matikan blink
      lcd.clear();           //hapus display
      lcd.noDisplay();       //matikan display
    }
}

uno:A5.2
uno:A4.2
uno:AREF
uno:GND.1
uno:13
uno:12
uno:11
uno:10
uno:9
uno:8
uno:7
uno:6
uno:5
uno:4
uno:3
uno:2
uno:1
uno:0
uno:IOREF
uno:RESET
uno:3.3V
uno:5V
uno:GND.2
uno:GND.3
uno:VIN
uno:A0
uno:A1
uno:A2
uno:A3
uno:A4
uno:A5
btn1:1.l
btn1:2.l
btn1:1.r
btn1:2.r
bz1:1
bz1:2
gnd1:GND
lcd1:GND
lcd1:VCC
lcd1:SDA
lcd1:SCL
vcc3:VCC