Bonjour je reçois bientot ma carte arduino et j'aimerais votre vérification sur mon code .
Sur ma arduino uno est branché une LED et un clavier matriciel 4*4
Le but du programme est des recueillir les numéro taper sur la clavier et comparer valeur_final a mdp et si ils sont égal alors on éteint la DEL.
code:
const byte LIGNES = 4; // 4 lignes
const byte COLONNES = 4; // 4 colonnes
const int C4=2; // Constante pour la broche 2
const int C3=3; // Constante pour la broche 3
const int C2=4; // Constante pour la broche 4
const int C1=5; // Constante pour la broche 5
const int L4=16; // Constante pour la broche 16
const int L3=17; // Constante pour la broche 17
const int L2=18; // Constante pour la broche 18
const int L1=19; // Constante pour la broche 19
const int del=10;
const int mdp=1234;
//--- Définition des touches
char chaine[LIGNES][COLONNES] = { // tableau de char à 2 dimensions
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
int valeur_final = 0;
void setup()
{
// On initialise les pins
pinMode(C4, OUTPUT); // y3
pinMode(C3, OUTPUT); // y2
pinMode(C2, OUTPUT); // y1
pinMode(C1, OUTPUT); // y0
pinMode(L4, INPUT); // x3
pinMode(L3, INPUT); // x2
pinMode(L2, INPUT); // x1
pinMode(L1, INPUT); // x0
pinMode(del,OUTPUT);
//On "active" la résistance interne
digitalWrite(L1,HIGH);
digitalWrite(L2,HIGH);
digitalWrite(L3,HIGH);
digitalWrite(L4,HIGH);
digitalWrite(del,HIGH);
}
void loop() {
for (int Y = 8; Y <=11; Y++)
{
// On met les pin outpout à 5v
digitalWrite(C1, HIGH);
digitalWrite(C2, HIGH);
digitalWrite(C3, HIGH);
digitalWrite(C4, HIGH);
// On met la pin étudié à 0V
digitalWrite(Y, LOW);
for (int X = 4; X <=7; X++)
{
// Si j'appuie sur une touche
if(digitalRead(X) == LOW) {
Serial.println(chaine[X-4][Y-8]);
valeur_final += chaine[X-4][Y-8];
if(valeur_final == mdp)
digitalWrite(del,LOW);
delay(200);
} //FSI
}// for X
} // For Y
}