#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("");
}