#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2); 
#define PB 7  //deklarasi PB ke pin 7 pada Arduino
#define Buz 4 //deklarasi pin 4 terkonek ke Buz

void nextCode() {
  while(digitalRead(PB) == HIGH){}
  while(digitalRead(PB) == LOW){ tone(Buz, 440); delay(20); }
    noTone(Buz); }

void setup() {
  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

void loop() {
  int k;  //deklarasi variabel k tipe interger
  lcd.print("Prog Uji Library"); // tampilkan kata pembuka
  lcd.setCursor(0,1); //pindahkan cursor ke kolom-0 baris-1
  lcd.print("LquidCrystal_I2C"); // tampilkan kata pembuka
  nextCode();       //menunggu tombol ditekan
  lcd.noDisplay();  //mematikan layar tanpa menghapus tulisan
  nextCode();       //menunggu tombol ditekan
  lcd.display();    //nyalakan layar dg tulisan terakhir
  nextCode();
  lcd.setCursor(12,1); //pindahkan cursor ke kolom 5, baris 1
  lcd.blink();      //LCD berkedip pd posisi kolom 5, baris 1
  nextCode();
  lcd.noBlink();    //matikan blink
  nextCode();
  lcd.clear();      //hapus tulisan
  nextCode();
  lcd.print("Tes geser kanan"); 
  lcd.setCursor(0,1);  lcd.print("- baris kedua -"); delay(500);
  for(k=1; k<=16; k++) {
    lcd.scrollDisplayRight(); //geser tulisan ke kanan
    delay(500);
  }
  for(k=16; k>=1; k--) {
    lcd.scrollDisplayLeft();  //geser tulisan ke kiri
    delay(500);
  }
  lcd.home(); //Pindahkan kursor ke pojok kiri atas tanpa menghapus display
  nextCode();
}
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