#include <Keypad.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
bool baris = false;
char karakter = 0;
const int BARIS = 4;
const int KOLOM = 4;
char keys[BARIS][KOLOM] =
{
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte pinBaris[BARIS] = {14,12,19,18};
byte pinKolom[KOLOM] = {5,4,2,15};
Keypad keypad = Keypad(makeKeymap(keys), pinBaris,
pinKolom, BARIS, KOLOM);
void setup()
{
lcd.init();
lcd.backlight();
//Menghapus layar dan menempatkan kursor ke (0,0)
lcd.clear();
}
void loop()
{
char key = keypad.getKey();
//Menampilkan isi karakter di variabel key ke LCD
//Jika kosong, maka variabel berisi nilai NO_KEY
if (key != NO_KEY)
{
lcd.print(key);
//Menghitung jumlah karakter
karakter++;
//Jika ada 16 karakter...
if(karakter == 16)
{
//...maka pindah baris...
baris = !baris;
karakter = 0;
if(baris == true)
{
//...ke baris kedua.
lcd.setCursor(0,1);
}
else
{
//Jika baris kedua penuh, kosongkan layar
//dan kembali ke baris pertama.
delay(2000);
lcd.clear();
}
}
}
}