#include<LiquidCrystal.h>
LiquidCrystal lcd(18,5,17,16,4,0);
const int KeyPadRow[4]={12,14,27,26};
const int KeyPadCol[4]={25,33,32,13};
char numbers[4][4]={
'1','2','3','A',
'4','5','6','B',
'7','8','9','C',
'*','0','#','D',
};
void setup(){
lcd.begin(16,2);
lcd.print("KeyPad program");
delay(1000);
}
void loop(){
getKey();
delay(100);
}
void getKey(void){
int row=-1,col=-1;
for(int i=0;i<4;i++){
pinMode(KeyPadRow[i], INPUT_PULLUP);
pinMode(KeyPadCol[i], OUTPUT);
digitalWrite(KeyPadCol[i], LOW);
}
for(int i=0;i<4;i++){
if(digitalRead(KeyPadRow[i])==0){
row=i;
}
}
if(row!=-1){
for(int i=0;i<4;i++){
pinMode(KeyPadCol[i], INPUT_PULLUP);
pinMode(KeyPadRow[i], OUTPUT);
digitalWrite(KeyPadRow[i], LOW);
}
for(int i=0;i<4;i++){
if(digitalRead(KeyPadCol[i])==0);{
col=i;
lcd_display_num(numbers[row][col]);
}
}
}
}
void lcd_display_num(char num){
lcd.clear();
lcd.setCursor(0,0);
lcd.print("key pressed:");
lcd.print(num);
delay(1000);
}