Einsteiger benötigt Hilfe

int readCharButton()
{
  for(int j = 0 ; j<=11 ; j++)
  {
    if(digitalRead(fin[j]) == LOW)
    {
      return j;
    }
    else
    {
      return -1;
    }
  }}

Du kontrollierst das erste Pin und springst dann auf jeden Fall mit 0 oder -1 heraus. Die for Schleife wird nicht durchlaufen.
Du mußt die ganze for Schleife durchlaufen lassen und nur im Fall, daß keine Taste gedrückt ist, mit -1 zurückspringen.

Diese Code findet bei mehreren gedrückten Tasten nur die am niedrigrsten Pin angeschlossenen.

int readCharButton()
{
  for(int j = 0 ; j<=11 ; j++)
  {
    if(digitalRead(fin[j]) == LOW)
    {
      return j;
    }
  }
return -1;
}

Grüße Uwe