Multiples conditions

Bonjour,

Je suis en cours de réalisation d'un montage arduino pour commander un sytème d'éclairage.
L'arduino recevra les entrées de capteurs LDR et PIR pour commander un relais en sortie.
n'ayant pas encore tous les capteurs en ma possesion je ne sais pas faire de test.
L'instruction suivante est-elle correcte ?

if ((valeur_pir1 ==1 ||  (valeur_pir2 ==1) && (valeur_ldr <20))
{
  digitalWrite(Relais,HIGH);
}
else {
  digitalWrite(relais,LOW)
  }

Cordialement

il manque une ) juste après (valeur_pir1 ==1
Tu as 4 "(" pour 3 ")"
Ton expression étant if ( A ou B et C)
il convient de vérifier la priorité de opérateurs en C, ou bien ajouter une paire de () pour être sûr
genre if ( A ou ( B et C ) )

biggil:
il manque une ) juste après (valeur_pir1 ==1
Tu as 4 "(" pour 3 ")"
Ton expression étant if ( A ou B et C)
il convient de vérifier la priorité de opérateurs en C, ou bien ajouter une paire de () pour être sûr
genre if ( A ou ( B et C ) )

oui exact pour la parenthèse
quand à la piorité je n'en sais rien, les 2 PIR seront à des endroits diamétralement opposés

Priorité au && sur le ||, donc expression OK sans parenthèse autour du OU et de ses opérandes. Mais ça mange pas de pain de mettre une parenthèse si on ne se rappelle pas cette règle.

L'instruction suivante est-elle correcte ?

Il manque un point-virgule après digitalWrite(relais,LOW)

vileroi:
Il manque un point-virgule après digitalWrite(relais,LOW)

oui effectivement

Merci pour vos contibutions

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.