#define ligne_0 7;
#define ligne_1 6;
#define ligne_2 5;
#define ligne_3 4;

#define colonne_0 3;
#define colonne_1 2;
#define colonne_2 1;
#define colonne_3 0;

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

pinMode(ligne_0, OUTPUT);
pinMode(ligne_1, OUTPUT);
pinMode(ligne_2, OUTPUT);
pinMode(ligne_3, OUTPUT);

pinMode(colonne_0, INPUT_PULLUP);
pinMode(colonne_1, INPUT_PULLUP);
pinMode(colonne_2, INPUT_PULLUP);
pinMode(colonne_3, INPUT_PULLUP);
}

void loop()
{
  char bouton = bouton_presse

  if(bouton != NULL)
  {
    BP_presse(bouton)
  }
  
}

char bouton_presse()
{

  const char boutons[4][4] = {'1','2','3','A'
                              '4','5','6','B'
                              '7','8','9','C'
                              '*','0','#','D'};

  for(int ligne=0; ligne<4 ;ligne++)
  {
    digitalWrite(ligne_0, ligne == 0 ? LOW : HIGH);
    digitalWrite(ligne_1, ligne == 1 ? LOW : HIGH);
    digitalWrite(ligne_2, ligne == 2 ? LOW : HIGH);
    digitalWrite(ligne_3, ligne == 3 ? LOW : HIGH);

    int etat_colonne0 = digitalRead(colonne_0);
    int etat_colonne1 = digitalRead(colonne_1);
    int etat_colonne2 = digitalRead(colonne_2);
    int etat_colonne3 = digitalRead(colonne_3);
  }
  if (etat_colonne_0 == LOW) //bouton * presse
  {
    return boutons[ligne][0];
  }
  if (etat_colonne_1 == LOW) //bouton 0 presse
  {
    return boutons[ligne][1];
  }
  if (etat_colonne_2 == LOW) //bouton # presse
  {
    return boutons[ligne][2];
  }
  if (etat_colonne_3 == LOW) // bouton D presse  
  {
    return boutons[ligne][3];
  }
}

void BP_presse(char bouton){
  Serial.print("le bouton ");
  Serial.print(bouton_caractere);
  Serial.print(" est presse");
  Serial.println("");
}
NOCOMNCVCCGNDINLED1PWRRelay Module
A4988
A4988
4-Digit Display