Fonction if

Bonjour à tous.

Question / Débutant.

J’aimerai allumer trois led suivant une tension détecté.
Le montage varie de 0v à 5v.

De 0v à 2v une led s’allume.
De 2v à 3.5v une autre led s’allume.
Et de 3.5v à 5v une autre led s’allume.

J’utilise pour cela la fonction if.
if (tension < 2v) une led s’allume.
if (tension> 3.5v) une led s’allume.

Je fais comment pour celle qui doit s’allumer entre 2v et 3.5v.
Merci d’avance pour votre aide.

Cordialement

Bonjour

if (tension<2v)

else if (tension>=2v && tension <3.5v)

else

Avec des exemples ici
:slight_smile:
Chris

ou sinon en partant dans l’autre sens

if (tension> 3.5v) 
  allumer les 3.
else 
  if (tension>2v) 
     allumer les 2
  else 
     allumer une seule

sinon il faut utiliser un ET logique pour combiner 2 conditions: &&

if ((tension > 2v) [b][color=blue]&&[/color][/b] (tension < 3.5v)) {
  allumer 2 leds
}

Je ne suis pas certain qu’il veuille plusieurs leds en même temps

Du moins, de son post initial, on pourrait penser que
<2 => led 1 seule
entre 2 et 3.5 => led2 seule

3.5 => led 3 seule

Quoi qu’il en soit, c’est le else qui semblait l’embêter, on le laisse faire ce qu’il souhaite selon chaque cas de figure :slight_smile:

oui ok possible - je me disais que visuellement plus de LED = plus de volt mais oui possible que ce soit une seule LED par tranche et oui c'est soit le else et/ou (moins optimal sans le else) le && dont il avait besoin

"if" n'est pas une fonction, mais une "instruction". Ca fait partie du langage de programmation, pas des librairies qui seraient fournies avec, selon l'environnement.
Pour bien comprendre le sujet, une petite lecture ne serait pas de trop : Les conditions

ou plus globalement Apprendre à programmer en C

wAx:
Je ne suis pas certain qu’il veuille plusieurs leds en même temps

Du moins, de son post initial, on pourrait penser que
<2 => led 1 seule
entre 2 et 3.5 => led2 seule

3.5 => led 3 seule

Quoi qu’il en soit, c’est le else qui semblait l’embêter, on le laisse faire ce qu’il souhaite selon chaque cas de figure :slight_smile:

Bonjour.

Oui, c’est tout à fait cela que je désire.

Un énorme merci pour ton aide wAx, je vais mettre en pratique tes judicieux conseils.
Ce qui m’embêtait, c’était l’instruction esle et surtout la double condition && que je ne savait pas utiliser.
L’exemple de J-M-L m’est bien utile.

Un grand merci à vous deux, je vais pouvoir réaliser mon programme.

Cordialement

OK l'autre à connaître c'est le OU logique qui se note
** **||** **

if ((condition1) [b][color=blue][tt]||[/color][/b] (condition2)) {
// ici l'une au moins des 2 conditions est vraie

// faire qque chose

} else {
// ici les 2 conditions sont fausses

// faire qque chose d'autre

}[/tt]

on peut bien sûr mélanger

if (((condition1) [b][color=blue]||[/color][/b] (condition2)) [b][color=red]&&[/color][/b] ((condition3) [b][color=blue][tt]||[/color][/b] (condition4))) {
// ici l'une au moins des 2 conditions 1 ou 2 est vraie ET idem pour 3 ou 4

// faire qque chose

} else {
// ici soit les 2 conditions 1 et 2 sont fausses,
// soit les conditions 3 et 4 sont fausses
// soit les 4 conditions sont fausses

// faire qque chose d'autre

}[/tt]

Et pour préciser sur la précision de J-M-L, le et (&&) est prioritaire sur le ou (||)
C'est pour cela que dans l'exemple ci dessus, il y a des parenthèses pour forcer les priorités

Pour ne pas se tromper, on peut se dire que le && est une opération de multiplication et le || une opération d'addition.
La multiplication est prioritaire sur l'addition :slight_smile:

Merci infiniment pour ce complément d'information si bien expliqué.
Grâce à vous deux je vais devenir le roi du if.

Bien cordialement

Salut,
je t'encourage a mettre le lien que je te joins dans tes favoris du navigateur.. Il m'a bien été utile et il l'ai encore.. en cas de doute, oublie...
Mon club elec

Scoob:
Salut,
je t'encourage a mettre le lien que je te joins dans tes favoris du navigateur.. Il m'a bien été utile et il l'ai encore.. en cas de doute, oublie...
Mon club elec

un lien qui fonctionne c'est mieux :slight_smile:

Mon club elec

le et (&&) est prioritaire sur le ou (||)

Bonjour
exact, mais perso, je ne sais jamais bien par cœur ce qui est prioritaire sur quoi, alors je mets toujours des parenthèses, cela clarifie et évite des désagréments