je cherche une idée pour effectuer une action lorsque dès 2 conditions ont été vraies 1 fois chacune.
c'est important car elles sont rarement vraies en même temps .
Au lieu de l'opérateur " && ", utilisez l'opérateur " || ".
Bonsoir nicopro33250
Qu'une fois chacune ou ça peut être vrai si par exemple condition1 a été vraie 2 fois tandis que condition2 qu'une fois?
Cortdialement
jpbbricole
je vais essayer ça merci
le truc c'est que veux bloquer le 1 er des 2 moteurs lorsqu"il arrive à zero , mais sans bloquer la loop et attendre que le 2eme arrive aussi à zero
oui pas d'importance mais au moins 1 fois chacune
Bonsoir nicopro33250
Voilà un exemple:
boolean condition1 = false;
boolean condition2 = false;
const int conditio1Pin = 6;
const int conditio2Pin = 7;
void setup()
{
Serial.begin(115200);
pinMode(conditio1Pin, INPUT_PULLUP);
pinMode(conditio2Pin, INPUT_PULLUP);
}
void loop()
{
if (digitalRead(conditio1Pin) == LOW) // Si condition 1 active
{
condition1 = true;
}
if (digitalRead(conditio2Pin) == LOW) // Si condition 2 active
{
condition2 = true;
}
if (condition1 == true && condition2 == true)
{
Serial.println("Condition 1 et 2 vraie");
while ((digitalRead(conditio1Pin) == LOW) || (digitalRead(conditio2Pin) == LOW)) // Atendre la fin de l'une ou l'autre condition
{
}
condition1 = false;
condition2 = false;
delay(50);
}
}
Cordialement
jpbbricole
J'aurais mis:
if ((condition1 == true) == true && (condition2 == true) == true)
ou plus simplement
if(condition1 && condition2)
Oui, bien sûr, mais je trouve ma façon plus "démonstrative" pour une personne qui visiblement débute.
Cordialement
jpbbricole
J'ai pas compris l'amélioration ?
Ma méthode est testée "en vrai".
Cordialement
jpbbricole
Je pense que c'était moqueur
De l’humour potache sans doute plutôt que moqueur.
Le point étant qu’un bool est déjà une valeur de vérité en soi.
On ne dit pas “s’il pleut est vrai alors je prends le parapluie" mais juste “s’il pleut alors je prends le parapluie". Il en va de même en programmation
Bonsoir
Ah !
C'est ce qui s'appelle, sur ce forum, l'humour gaulois, @vileroi a omis le smiley ?
Cordialement
jpbbricole
C’est un pince sans rire
Bonsoir J-M-L
Oui, c'est vrai, mais quand je fais un exemple, s'il semble que le demandeur est débutant, je préfère la version "complète" qui est plus explicite, même si ça sucite certaines railleries.
Cordialement
jpbbricole
Moi je donnerais un nom plus "booléen" aux variables pour éviter d’influencer et donner une mauvaise habitude (c’est bien de comprendre qu’un bool c’est une valeur de vérité)
Par exemple avec
boolean pin1DejaVueLOW = false;
boolean pin2DejaVueLOW = false;
Alors
if(pin1DejaVueLOW && pin2DejaVueLOW) …
Est plus parlant (avis tout personnel je le concède)
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.