#include <Keypad.h>
const byte ROWS = 4;
const byte COLS = 14;
//define the cymbols on the buttons of the keypads
char lowerCase[ROWS][COLS] = {
   {'`','1','2','3','4','5','6','7','8','9','0','-','=','\0'},
  {'q','w','e','r','t','y','u','i','o','p','[',']','\\','\0'},
  {'a','s','d','f','g','h','j','k','l',';','\'','\0','\0','\0'},
  {'z','x','c','v','b','n','m',',','.','/','\0','\0','\0','\0'}
};
char upperCase[ROWS][COLS] = {
   {'~','!','@','#','$','%','^','&','*','(',')','_','+','\0'},
  {'Q','W','E','R','T','Y','U','I','O','P','{','}','|','\0'},
  {'A','S','D','F','G','h','j','k','l',';','\'','\0','\0','\0'},
  {'z','x','c','v','b','n','m',',','.','/','\0','\0','\0','\0'}
};
byte rowPins[ROWS] = {22, 24, 26, 28}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49}; //connect to the column pinouts of the keypad

//initialize an instance of class NewKeypad
Keypad customKeypad = Keypad(makeKeymap(lowerCase), rowPins, colPins, ROWS, COLS);


void setup(){
  Serial.begin(9600);
  
}

void loop(){
  char customKey = customKeypad.getKey();
  if (customKey){
    Serial.println(customKey);
  }
}