/*
Pemetaan koneksi pin LCD dan pin Arduino
* LCD RS pin4 to digital pin 12
* LCD Enable pin6 to digital pin 11
* LCD D4 pin11 to digital pin 5
* LCD D5 pin12 to digital pin 4
* LCD D6 pin13 to digital pin 3
* LCD D7 pin14 to digital pin 2
* LCD R/W pin5 to ground
* LCD Vcc pin2 to +5V
* LCD Vss pin1 to ground
* LCD Vee pin3 to ground
*/
// include librari
#include <LiquidCrystal.h>
#include <Keypad.h>
// inisialisasi pin LCd dan Arduino
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
const byte ROWS = 4; //four rows
const byte COLS = 4; //four columns
char keys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte rowPins[ROWS] = {14,15,16,17};//koneksi pinout baris keypad
byte colPins[COLS] = {9, 8, 7, 6}; //koneksi pinout kolom keypad
// Pemetaan keypad dengan Arduino
Keypad pad4x4 = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
void setup() {
pinMode(13,OUTPUT);
digitalWrite(13,LOW);
// set up LCD 16x2:
lcd.begin(16, 2);
// tampilkan berita ke LCD.
lcd.print("Keypad:");
}
void loop() {
// hasil scanning keypad pad4x4 simpan di variabel key
char key = pad4x4.getKey();
// set kursor ke kolom 0 baris 1
lcd.setCursor(0, 1);
// cek var key apakah ada tombol yang ditekan?
if (key != NO_KEY){
lcd.print(key); //tampilkan tombol yang ditekan
}
// jika tombol # ditekan, nyalakan 2 detik LED pin13
if(key=='#'){
digitalWrite(13,HIGH);
delay(2000);
}
else {digitalWrite(13,LOW);}
delay(100); //jeda 100ms
}