alors j'ai vérifier la partie if(val1 == n && val2 == n) et il sont tous correcte même au contraire quand je suis en position sa doit me bloquer l’étape suivante a moins que le code reçoive 2 impulsion on dirais que sa vient de l'anti rebond sinon je ne vois vraiment pas comment avec 1 impulsion il serrer possible d'activer 2 led (en partent sur la base que l'anti rebond est infaillible)
je remais mon code je les un peut simplifier au passage et réorganiser pour mieux comprendre:
int val1 = 20;
int val2 = 40;
void setup()
{
pinMode(2, INPUT);
digitalWrite(2, HIGH);
pinMode(3, INPUT);
digitalWrite(3, HIGH);
pinMode(13, OUTPUT);
pinMode(12, OUTPUT);
pinMode(11, OUTPUT);
pinMode(10, OUTPUT);
pinMode(9, OUTPUT);
pinMode(8, OUTPUT);
}
void loop()
{
val1 = constrain(val1, 19, 25);
val2 = constrain(val2, 35, 41);
if(digitalRead(2) == LOW) { // Lecture du bouton à l'instant t
val1--;
val2++;
delay(25); // Anti rebond (entre 10 et 25ms)
while(digitalRead(2) == LOW); // Boucle d'attente du relâchement du bouton
} else if(digitalRead(3) == LOW) { // Else pour éviter d'avoir BP+ et BP- simultanément
val1++;
val2--;
delay(25);
while(digitalRead(3) == LOW);
}
if (val1 == 19 && val2 == 41)
{
digitalWrite (13, HIGH);
}
if (val1 == 20 && val2 == 40)
{
digitalWrite (13, LOW);
digitalWrite (12, LOW);
}
if (val1 == 21 && val2 == 39)
{
digitalWrite (12, HIGH);
}
if (val1 == 21 && val2 == 39)
{
digitalWrite (11, LOW);
}
if (val1 == 22 && val2 == 38)
{
digitalWrite (11, HIGH);
}
if (val1 == 22 && val2 == 38)
{
digitalWrite (10, LOW);
}
if (val1 == 23 && val2 == 37)
{
digitalWrite (10, HIGH);
}
if (val1 == 23 && val2 == 37)
{
digitalWrite (9, LOW);
}
if (val1 == 24 && val2 == 36)
{
digitalWrite (9, HIGH);
}
if (val1 == 24 && val2 == 36)
{
digitalWrite (8, LOW);
}
if (val1 == 25 && val2 == 35)
{
digitalWrite (8, HIGH);
}
}