Découverte de l'IDE Arduino

Structures de conditions

DéfinitionC'est quoi une condition ?

C'est un choix que l'on fait entre plusieurs propositions. En informatique, les conditions servent à tester des variables. Par exemple : ouverture d'un portail. Nous avons besoin de réaliser un programme qui met à l'état haut la sortie numériques 3 de la carte SI l'entrée numérique 2 est à l'état haut. Nous allons donc devoir effectuer un test après la lecture (digitalRead(2)) de l'entrée 2.

MéthodeQuelques Outils de comparaison

Pour tester des variables, il faut connaître quelques symboles. Je vous ai fait un joli tableau pour que vous vous repériez bien :

Symbole

A quoi ca sert

Signification

==

Permet de tester l'égalité entre deux variables.

... est égale à ...

<

Test l'infériorité d'une variable par rapport à une autre.

... est inférieur à ...

>

La supériorité d'une variable par rapport à une autre

... est supérieur à ...

<=

Test inférieur ou égal

... inférieur ou égal à ....

>=

Pareil mais avec la supériorité

... supérieur ou égal à ...

!=

Teste la différence entre deux variable

... est différent de ...

Et si on s'occupait des conditions ? Ou alors nous allons faire une pause ? Ceci implique de faire un choix... En informatique on parle de condition "vraie" ou "faux" ... L'action est conditionner par le résultat du test de la ou des condition(s).

MéthodeIf ... else

La première condition que nous verrons est la condition if...else.

IF

On veut tester la valeur d'une variable. Prenons un exemple, je veux tester si la voiture est inférieure à 5000€.

D'abord on définit la variable « prix_voiture ». Sa valeur est de 4800€. Ensuite, on doit tester cette valeur. Pour tester une condition, on emploie le terme if (de l'anglais « si »). Ce terme doit être suivi de parenthèses dans lesquelles se trouveront les variables à tester. Donc entre ces parenthèses, nous devons tester la variable prix_voiture afin de savoir si elle est inférieure à 5000€.

On peut lire cette ligne de code comme ceci : « si la variable prix_voiture est inférieure à 5000, on exécute le code qui se trouve entre les accolades.

1
int prix_voiture = 4800; //variable : prix de la voiture définit à 4800€
2
3
if(prix_voiture < 5000)
4
{
5
    //la condition est vraie, donc j'achète la voiture
6
}                             

RappelStructure de if

1
if(/* contenu de la condition à tester */)
2
{
3
    //instructions à exécuter si la condition est vraie
4
}

AttentionVotre premier programme avec if

Réalisez un programme et un montage qui permet de tester la condition suivante :

Si l'entrée D4 est à l'état haut alors la sortie D2 est à l'état bas et la sortie D12 est à l'état haut.

Proposez un montage, composez votre programme est faites valider par le professeur.

Sinon "else"

On a pour l'instant testé que si la condition est vraie. Maintenant, nous allons voir comment faire pour que d'autres instructions soient exécutées si la condition est fausse. Le terme else de l'anglais « sinon » implique notre deuxième choix si la condition est fausse. Par exemple, si le prix de la voiture est inférieur à 5000€, alors je l'achète. Sinon, je ne l'achète pas. Pour traduire cette phrase en ligne de code, c'est plus simple qu'avec un if, il n'y a pas de parenthèses à remplir :

1
int prix_voiture = 5500;
2
3
if(prix_voiture < 5000)
4
{
5
    //la condition est vraie, donc j'achète la voiture
6
}
7
else
8
{
9
    //la condition est fausse, donc je n'achète pas la voiture
10
}

Le else est généralement utilisé pour les conditions dites de défaut. C'est lui qui à le pouvoir sur toutes les conditions, c'est-à-dire que si aucune condition n'est vraie, on exécute les instructions qu'il contient.

Le else n'est pas obligatoire, on peut très bien mettre plusieurs if à la suite.

FondamentalSchéma de Principe du if .... else

1
int prix_voiture = 5500;
2
3
if(prix_voiture < 5000)
4
{
5
    //la condition est vraie, donc j'achète la voiture
6
}
7
8
else
9
{
10
    //la condition est fausse, donc je n'achète pas la voiture
11
}

AttentionC'est à vous ! if else ...

Réalisez un programme et un montage qui permet de tester la condition suivante :

Si l'entrée D2 est à l'état haut alors la sortie D5 est à l'état bas et la sortie D11 est à l'état haut.

Sinon la sortie D5 est à l'état Haut.

Proposez un montage, composez votre programme est faites valider par le professeur.

ComplémentLes opérateurs logiques

Et si je vous posais un autre problème ? Comment faire pour savoir si la voiture est inférieure à 5000€ ET si elle est grise ?

Il existe des opérateurs qui vont nous permettre de tester cette condition ! Voyons quels sont ses opérateurs...

Opérateur

Signification

&&

... ET... (ET logique)

||

... OU ... (Alt Gr + 6)

!

NON

Reprenons ce que nous avons testé dans le else if : SI la voiture vaut 5500€ ET qu'elle a l'option GPS en plus, ALORS je l'achète. On va utiliser un if et un opérateur logique qui sera le ET :

1
int prix_voiture = 5500; // Déclaration de variable interne
2
int option_GPS = TRUE;
3
4
/* l'opérateur && lie les deux conditions qui doivent être
5
vraies ensemble pour que la condition soit remplie */
6
7
if(prix_voiture == 5500 && option_GPS)
8
{
9
    //j'achète la voiture si la condition précédente est vraie
10
}

FondamentalEt si nous devions faire plusieurs choix ?

Il existe un dernier test conditionnel que nous n'avons pas encore abordé, c'est le switch.

1
int options_voiture = 0;
2
3
if(options_voiture == 0)
4
{
5
    //il n'y a pas d'options dans la voiture
6
}
7
if(options_voiture == 1)
8
{
9
    //la voiture a l'option GPS
10
}
11
if(options_voiture == 2)
12
{
13
    //la voiture a l'option climatisation
14
}
15
if(options_voiture == 3)
16
{
17
    //la voiture a l'option vitre automatique
18
}
19
if(options_voiture == 4)
20
{
21
    //la voiture a l'option barres de toit
22
}
23
if(options_voiture == 5)
24
{
25
    //la voiture a l'option  siège éjectable
26
}
27
else
28
{
29
//retente ta chance ;-)
30
}

Ce code est indigérable, pas propre, c'est infâme ! Pas beau !

En clair, il faut trouver une solution pour changer cela. Cette solution existe, c'est le switch. Le switch, comme son nom l'indique, va tester la variable jusqu'à la fin des valeurs qu'on lui aura données. Voici comment cela se présente :

1
int options_voiture = 0;
2
3
switch (options_voiture)
4
{
5
    case 0:
6
        //il n'y a pas d'options dans la voiture
7
        break;
8
    case 1:
9
        //la voiture a l'option GPS
10
        break;
11
    case 2:
12
        //la voiture a l'option climatisation
13
        break;
14
    case 3:
15
        //la voiture a l'option vitre automatique
16
        break;
17
    case 4:
18
        //la voiture a l'option barres de toit
19
        break;
20
    case 5:
21
        //la voiture a l'option siège éjectable
22
        break;
23
    default:
24
        //retente ta chance ;-)
25
        break;
26
}

L'instruction break est hyper importante, car si vous ne la mettez pas, l'ordinateur, ou plutôt la carte Arduino, va exécuter toutes les instructions. Pour éviter cela, on met cette instruction break, qui vient de l'anglais « casser/arrêter » pour dire à la carte Arduino qu'il faut arrêter de tester les conditions car on a trouvé la valeur correspondante. il sort donc du switch et continu le reste du programme.

PrécédentPrécédentSuivantSuivant
AccueilAccueilImprimerImprimer Jp Bielawski - Lycée Dampierre Licence : Domaine PublicRéalisé avec Scenari (nouvelle fenêtre) modèle documentaire TechnOpale