Is my code wrong or is it my PCB?

I was making a 4x3 macropad with a rotary encoder, but I don't know if my schematic or my code doesn't work.

Schematic


Code

#include <Keypad.h>

const byte ROWS = 3; //three rows
const byte COLS = 4; //four columns
//define the cymbols on the buttons of the keypads
char keys[ROWS][COLS] = {
    {'1', '2', '3', 'A'},
    {'4', '5', '6', 'B'},
    {'7', '8', '9', 'C'}};
byte rowPins[ROWS] = {4,5,6};     //connect to the row pinouts of the keypad
byte colPins[COLS] = {7,8,9,10}; //connect to the column pinouts of the keypad

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

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

void loop()
{
  char customKey = customKeypad.getKey();

  if (customKey)
  {
    Serial.println(customKey);
  }
}

Also here is the PCB itself
Top Layer (red) Bottom Layer (grey)

Hi @klzsh
I tested it here with a common keyboard and it worked correctly, so your code is correct.
I used arduino mini pro.

RV mineirin