if-do

Tu es le maître du monde…

Aujourd’hui nous allons apprendre à utiliser un des blocs de la section Contrôle : si… exécuter.
diwopostcontrol

Tu penses peut-être que tout ça n’a pas l’air très intéressant. C’est tout le contraire ! Ces blocs sont incontournables pour que ton nouveau super robot (ça marche aussi pour un aspirateur) conquière le monde… ou le nettoie parfaitement ! En avant ! Prépare :

  1. 1 x ZumBloq LED
  2. 1 x ZumBloq capteur de luminosité
  3. 1 x ZumBloq bouton
  4. Une carte contrôleur ZUM BT 328 ou une carte compatible avec Arduino UNO
  5. Un câble USB

Le bloc si…exécuter

Utiliser une proposition conditionnelle

diwopostcontrol2

Mais qu’est-ce qu’une proposition conditionnelle ? Une proposition conditionnelle comporte une condition qui doit se réaliser pour qu’une partie du programme soit exécutée.C’est très simple. Par exemple : Si tu as été sage, le Père Noël t’apportera des cadeaux. Si tu ne ranges pas ta chambre, ta mère te punira. Si tu appuies sur le bouton, la LED s’allumera. Tu te souviens ? Nous avons déjà utilisé ce bloc plusieurs fois. Ce bloc est fondamental, il nous permet d’indiquer au programme quand il doit se passer une chose et quand il doit s’en passer une autre. Comment cela marche-t-il ? Voici tout de suite un exemple :

Exercice avec le bloc si… exécuter

Utiliser le bloc si…exécuter pour que la LED s’allume quand on appuie sur le bouton

Tout d’abord, connecte ta LED et ton bouton à la carte en suivant le schéma suivant :

zum-3led-4puls

L’objectif est que la LED s’allume quand tu appuies sur le bouton. C’est-à-dire que : Si tu appuies sur le bouton… la LED s’allume. Pour programmer, tu as donc besoin du bloc si…exécuter :
programaejemplo1pulsador

N’oublie pas que selon le type de bouton dont tu disposes, l’état « appuyé » du bouton peut correspondre à la valeur 1 ou 0. Si tu disposes d’un de nos kits de robotique, quand tu appuieras sur le bouton, il s’agira de la valeur 0.

Comme tu peux le constater, quand tu appuies sur le bouton, la LED s’allume et reste allumée indéfiniment… C’est que la carte n’est pas très intelligente, elle fait seulement ce qu’on lui dit ! Il faut donc lui dire ce qui doit se passer quand on relâche le bouton.

Comment faire ? Regarde bien le programme suivant :
ejemplo2led

Comme tu peux le constater, le bloc si…exécuter peut avoir plusieurs options, comme sinon qui introduit une instruction qui s’exécutera quand la condition n’est pas remplie, c’est-à-dire quand on n’appuie pas sur le bouton. Pour ajouter l’option sinon appuie sur l’étoile du bloc et ajoute-la :

Le bloc comprend également une autre option : ou bien si. Cette option te permet d’ajouter une condition supplémentaire après la première. Par exemple : Nous voulons manger un gâteau mais il n’y en a plus. Par contre il y a des glaces. Nous prendrons donc une glace. Mais nous préférons le gâteau ! C’est très important. Nous ne mangerons de la glace que s’il n’y a PAS de gâteau. Laisse donc de côté ton bouton et essaie cet exercice avec le capteur de luminosité et l’option ou bien si :

Exercice 2

Faire clignoter une LED quand le capteur de luminosité détecte peu de lumière, et la faire s’allumer dans l’obscurité

Je vais te faire un aveu, j’ai peur du noir. Je ne me lève jamais la nuit car je n’aime pas marcher dans le couloir dans le noir. Qui sait quel monstre est tapi dans l’ombre ? Il y a peut-être la prof de maths… J’ai donc décidé d’agir et d’inventer une solution pour ne plus jamais rester dans le noir. J’ai discuté longuement avec un expert et nous sommes arrivés à la conclusion que ma machine révolutionnaire, qui allait changer le monde, devrait fonctionner de la manière suivante :  -Si la quantité de lumière est inférieure à 100-> Oh qu’il fait noir !->LA LED S’ALLUME -Ou bien si la quantité de lumière est inférieure à 200 (ce n’est pas très rassurant mais ça va…) ->LA LED CLIGNOTE ! -Sinon, si le soleil brille, pas de souci… oui, je suis très courageux ! ->LA LED S’ÉTEINT Et maintenant au travail ! Commence par connecter les composants à la carte :
sensordeluzled

N’oublie pas que le capteur de luminosité est un composant analogique. Tu dois donc le connecter à des broches analogiques. Maintenant que tout est prêt, pourquoi ne te lancerais-tu pas ? Tu verras, tu trouveras vite la solution. Rendez-vous en bas pour vérifier le programme ensemble.
reloj-de-arena-10375

Tu devrais avoir réalisé un programme similaire à celui-ci :
diwopostcontrol3

Nous verrons bientôt plus en détail les opérations logiques, mais si tu veux que le bloc si… exécuter prenne en compte plus d’une condition, par exemple, que le bouton soit appuyé et que la luminosité soit inférieure à 30, tu peux le faire de la manière suivante :

Qu’en penses-tu ? Tu as peut-être encore des doutes sur l’utilisation du bloc. Ne t’inquiète pas ! C’est en forgeant qu’on devient forgeron ! Tu verras que bientôt quand tu voudras programmer quelque chose, tu sauras exactement comment faire. Et le bloc si… exécuter sera ton meilleur allié.