IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Arduino Discussion :

Comment peut-on enchaîner les if else ?


Sujet :

Arduino

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2022
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2022
    Messages : 4
    Par défaut Comment peut-on enchaîner les if else ?
    Bonjour tout le monde,
    Je me lance dans le programmation Arduino et si j'ai bien compris c'est du C++.
    Je cherche à comprendre si on peut faire des if esle en série.
    Exemple:
    Si le bouton est pressé
    Attendre une seconde

    Si le bonbon 2 est pressé, dire oui
    Sinon attendre 2 secondes

    Si le bouton 3 est pressé dire salut
    Sinon dire fin.

    J'ai sauté une ligne à chaque nouvelle étape mais tout cela est lui même dans la boucle initié par "si le bouton est pressé"

    Je ne sais pas si il faut mettre des accolades ou quoi mais sur mon dernier else il me dit 'else without a previous if' alors que je l'ai mis...
    Du point de vue de ma logique rien ne me dérange, je l'ai fait sur mon dernier programme ...

  2. #2
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 908
    Par défaut
    Un if n'est pas une boucle, c'est une condition
    le plus simple quand on n'est pas sûr c'est de grouper les éléments qui vont ensemble avec des accolades. (En C ou C++, ce n'est pas l'indentation qui définit le niveau d'imbrication du code, on indente pour faciliter la lecture et si on a besoin de grouper plusieurs instructions (statement) alors on utilise les accolades pour faire ce qu'on appelle un compound statement)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    SI le bouton est pressé {
      Attendre une seconde
    
      SI le bonbon 2 est press {
        dire oui
      } else {
        Attendre 2 secondes
      }
    
      Si le bouton 3 est pressé {
        dire salut
      } else {
        dire fin.
      }
    }

    cependant je suppose que vous voulez détecter si le bouton 2 ou 3 est préssé pendant l'attente d'une seconde? il ne faudra pas utiliser dely() mais millis() pour gérer la séquence

  3. #3
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2022
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2022
    Messages : 4
    Par défaut
    Merci beaucoup.
    Je teste ça ce soir, il me semblait que c'est ce que j'avais fait avec mon programme, bizzares qu'il me mette que j'ai oublié un if.
    Pour ce qui est du milli j'y avais pas pense mais ça peut être une bonne idée...

  4. #4
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2022
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2022
    Messages : 4
    Par défaut SUITE
    RE
    j'ai refait toute la partie du programme concernée et ca ne fonctionne pas...
    Si quelqu'un a la solution...qui doit etre super simple vu mon niveau aha.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    void loop() {
    b = digitalRead(Bouton_2);
    a = digitalRead(Bouton);
     
      if(a==1);
        { lcd.setCursor(0, 1);
          lcd.print("Menu quantité");
          delay(2000);
          lcd.print("100g");
          delay(4000);
           b = digitalRead(Bouton_2);
       if(b==1);
          { c=100;
           m=1;}
       else;
       {  lcd.print("200g");
          delay(4000);
          b = digitalRead(Bouton_2);}
     
        if(b==1);
          {c=200;}
        else;
        {delay(1000);
          m=1;}
        }
    }     
    }
    }
    PS comment on fait pour faire une= encardré code dans le message ??

  5. #5
    Modérateur

    Homme Profil pro
    Ingénieur électricien
    Inscrit en
    Septembre 2008
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur électricien

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 282
    Par défaut
    Bonsoir et encore bienvenue sur le forum.

    N'importe quel tuto ou aide sur la fonction if t'aurais donné la réponse.
    Il ne faut pas mettre de ; directement après un if ou un else.

    Le code d'un if avec des blocs d'instructions c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if (isfoo==0)
    {  foo1();
       foo2();}
    else
    {  foo3();
       foo4();}
    Dans ton code, le code qui est exécuté conditionnellement c'est le rien qu'il y a entre la condition (la parenthèse) et le ;. Ensuite il y a un bloc de code qui est exécuté sans condition et quand le else est rencontré, il n'y a plus de if encore "ouvert"

    Delias

  6. #6
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2022
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2022
    Messages : 4
    Par défaut
    ahh oui merci beaucoup
    c'est un peu dur au début cette rigueure de l'informatique mais j'apprends!
    Merci

Discussions similaires

  1. Comment enchaîner les mp3 comme un logiciel de DJ ?
    Par kyoden dans le forum Intégration
    Réponses: 8
    Dernier message: 16/01/2007, 16h54
  2. Réponses: 2
    Dernier message: 26/09/2006, 09h08
  3. Réponses: 3
    Dernier message: 22/05/2006, 17h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo