salut,
bon ben voici ou j'en suis je ne sais pas si je prend la bonne direction
on tous cas j'ai déjà des problèmes???
/* déclaration des constantes pour les noms des broches */
const int inter1 = 2;
const int inter2 = 3;
const int inter3 = 4;
const int inter4 = 5;
const int led_rouge = 12;
const int led_verte = 11;
const int led_jaune = 10;
const int led_blanche = 9;
/* déclaration des constantes pour les noms des intérrupteur */
const int code_inter1 = 1;
const int code_inter2 = 2;
const int code_inter3 = 3;
const int code_inter4 = 4;
/*déclaration des variables sur les intérrupteurs */
int etat_inter1=HIGH; // lecture de l'état actuel sur l'intérrupteur 1
int position_inter1=0; // intérrupteur 1 à été déclanché en 1er, 2eme, 3ième ou en 4ième
int etat_inter2=HIGH; // lecture de l'état actuel sur l'intérrupteur 2
int position_inter2=0; // intérrupteur 2 à été déclanché en 1er, 2eme, 3ième ou en 4ième
int etat_inter3=HIGH; // lecture de l'état actuel sur l'intérrupteur 3
int position_inter3=0; // intérrupteur 3 à été déclanché en 1er, 2eme, 3ième ou en 4ième
int etat_inter4=HIGH; // lecture de l'état actuel sur l'intérrupteur 4
int position_inter4=0; // intérrupteur 4 à été déclanché en 1er, 2eme, 3ième ou en 4ième
int position_declanchement=0; // l'intérrupteur est déclanché en 1er, 2eme, 3ième ou en 4ième
int code_final=0; //le code final aura 4 chiffres (1, 2 ,3 et 4 ---> 24 sequences possibles)
/*a chaque déclenchement d'un intérrupteur il faut sauvegarder le numéro de l'intérrupteur qui a été déclanché
le "code_final" prendra donc la valeur 1 ou 2 ou 3 ou 4 dans un premier temps,
puis au multiplie par dix le numéro du deuxième interrupteur déclanché qu'on ajoute a la première valeur de code final,
puis au multiplie par cent le numéro du troisième interrupteur déclanché qu'on ajoute a la deuxième valeur de code final,
puis au multiplie par mille le numéro du quatrième interrupteur déclanché qu'on ajoute a la troisième valeur de code final, on obtient
donc un numero a 4 chiffres qui nous servira a déclenché la led que l'on veut */
/* initilisation des broches en entrée/sortie */
void setup() {
pinMode(inter1, INPUT);
digitalWrite(inter1,HIGH); //pour la resitance de tirage de mon intérrupteur 1
pinMode(inter2, INPUT);
digitalWrite(inter2,HIGH); //pour la resitance de tirage de mon intérrupteur 2
pinMode(inter3, INPUT);
digitalWrite(inter3,HIGH); //pour la resitance de tirage de mon intérrupteur 2
pinMode(inter4, INPUT);
digitalWrite(inter4,HIGH); //pour la resitance de tirage de mon intérrupteur 2
pinMode(led_rouge, OUTPUT);
pinMode(led_verte, OUTPUT);
pinMode(led_jaune, OUTPUT);
pinMode(led_blanche, OUTPUT);
Serial.begin(9600); //pour moniteur serie et vérifier l'etat du code final a chaque instant
}
void loop() {
//lecture de l'état des quatres boutons
etat_inter1 = digitalRead(inter1);
etat_inter2 = digitalRead(inter2);
etat_inter3 = digitalRead(inter3);
etat_inter4 = digitalRead(inter4);
delay (20);
if ((etat_inter1 == HIGH)&&(etat_inter2 == etat_inter3 == etat_inter4 == LOW))
{code_final=1;}
if ((etat_inter2 == HIGH)&&(etat_inter1 == etat_inter3 == etat_inter4 == LOW))
{code_final=2;}
if ((etat_inter3 == HIGH)&&(etat_inter1 == etat_inter2 == etat_inter4 == LOW))
{code_final=3;}
if ((etat_inter4 == HIGH)&&(etat_inter1 == etat_inter2 == etat_inter3 == LOW))
{code_final=4;}
//il faut peut etre creer une variable différente pour chaque interrupteur declancher pour enregister un code intermédiaire???
Serial.print("code final ");
Serial.println(code_final, DEC); // affiche la valeur au format décimal
//euh ben la je ne omprend pas mon "code final" ne prend pas la valeur qu'il devrais prendre, quand j'actionne l'inter1 mon code final prend la valeur 4!!!
//pareil pour l'inter 2 et 3 par contre pour l'inter4 le code final prend la valeur 3!!!
if(code_final == 2341){digitalWrite(led_rouge,HIGH);}
if(code_final == 2431){digitalWrite(led_verte,HIGH);}
if(code_final == 3241){digitalWrite(led_jaune,HIGH);}
if(code_final == 3421){digitalWrite(led_blanche,HIGH);}
if(code_final == 4231){digitalWrite(led_rouge,HIGH);}
if(code_final == 4321){digitalWrite(led_rouge,HIGH);}
if(code_final == 3412){digitalWrite(led_rouge,HIGH);}
if(code_final == 3142){digitalWrite(led_verte,HIGH);}
if(code_final == 4312){digitalWrite(led_jaune,HIGH);}
if(code_final == 4132){digitalWrite(led_blanche,HIGH);}
if(code_final == 1342){digitalWrite(led_rouge,HIGH);}
if(code_final == 1432){digitalWrite(led_rouge,HIGH);}
if(code_final == 4123){digitalWrite(led_rouge,HIGH);}
if(code_final == 4213){digitalWrite(led_verte,HIGH);}
if(code_final == 1423){digitalWrite(led_jaune,HIGH);}
if(code_final == 1243){digitalWrite(led_blanche,HIGH);}
if(code_final == 2143){digitalWrite(led_rouge,HIGH);}
if(code_final == 2413){digitalWrite(led_rouge,HIGH);}
if(code_final == 1234){digitalWrite(led_rouge,HIGH);}
if(code_final == 1324){digitalWrite(led_verte,HIGH);}
if(code_final == 2134){digitalWrite(led_jaune,HIGH);}
if(code_final == 2314){digitalWrite(led_blanche,HIGH);}
if(code_final == 3124){digitalWrite(led_rouge,HIGH);}
if(code_final == 3214){digitalWrite(led_rouge,HIGH);}
else{
digitalWrite(led_rouge,HIGH);
digitalWrite(led_verte,HIGH);
digitalWrite(led_jaune,HIGH);
digitalWrite(led_blanche,HIGH);}
}