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 :

Trois BP et 4 LED


Sujet :

Arduino

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mars 2017
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2017
    Messages : 41
    Points : 26
    Points
    26
    Par défaut Trois BP et 4 LED
    Bonjour,

    Sujet: J'ai 4 LED et 3 boutons poussoir. Pour qu'une LED s'allume, il faut appuyer sur les 3 boutons en même temps.

    Problème: La LED s'allume déjà lorsque j'appuie sur le bouton1 et non lorsque j'appuie simultanément sur bouton1 && bouton2 && bouton3.

    Je n'arrive pas à résoudre ce problème... Que pensez-vous de mon code ?

    Merci.


    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
     
     
    int led1 = 2;
    int led2 = 3;
    int led3 = 4;
    int led4 = 5;
     
    int bouton1 = 6;
    int bouton2 = 7;
    int bouton3 = 8;
     
    int led = 0;
    int newled = 0;
     
    static int etatprec=HIGH;
     
    void setup() {
     
    pinMode(2, OUTPUT);
    pinMode(3, OUTPUT);
    pinMode(4, OUTPUT);
    pinMode(5, OUTPUT);
    pinMode(6, INPUT_PULLUP);
    pinMode(7, INPUT_PULLUP);
    pinMode(8, INPUT_PULLUP);
     
    digitalWrite(2, LOW);
    digitalWrite(3, LOW);
    digitalWrite(4, LOW);
    digitalWrite(5, LOW);
     
    }
     
    void loop() {
     
    int etat = digitalRead(6) && digitalRead(7) && digitalRead(8);
     
    if (etat == LOW && etatprec==HIGH)
     
      {
    newled = led + 1;
     
    led = newled;
      }
    etatprec=etat;
     
     
    if (led == 1) {
     
    digitalWrite(2, HIGH);
    digitalWrite(3, LOW);
    digitalWrite(4, LOW);
    digitalWrite(5, LOW); 
     
      }
     
     
     
    if (led == 2) {
     
    digitalWrite(2, HIGH);
    digitalWrite(3, HIGH);
    digitalWrite(4, LOW);
    digitalWrite(5, LOW); 
     
      }
     
    if (led == 3) {
     
    digitalWrite(2, HIGH);
    digitalWrite(3, HIGH);
    digitalWrite(4, HIGH);
    digitalWrite(5, LOW); 
     
      }
     
      if (led == 3) {
     
    digitalWrite(2, HIGH);
    digitalWrite(3, HIGH);
    digitalWrite(4, HIGH);
    digitalWrite(5, HIGH); 
     
      }
     
    }

  2. #2
    Membre émérite
    Avatar de jpbbricole
    Homme Profil pro
    Retraité des réseaux informatiques
    Inscrit en
    Février 2013
    Messages
    1 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Retraité des réseaux informatiques
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2013
    Messages : 1 012
    Points : 2 341
    Points
    2 341
    Par défaut
    Bonsoir ochey54
    Citation Envoyé par ochey54 Voir le message
    Bonjour,
    Que pensez-vous de mon code ?
    Je corrigerai juste un petit bout du programme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     void loop() {
         int etat = HIGH;
         if(digitalRead(6)==LOW && digitalRead(7)==LOW && digitalRead(8)==LOW)
         {
             etat = LOW; // Tout les boutons pressés
         }
     
         if (etat == LOW && etatprec==HIGH)
    Je n'ai pas essayé Attention aux rebonds des contacts!.

    Cordialement
    jpbbricole
    L'expérience est la seule chose qu'il ne faut acheter que d'occasion!

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mars 2017
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2017
    Messages : 41
    Points : 26
    Points
    26
    Par défaut
    jpbbricole ==> Comme toujours, tu es excellent car celà fonctionne ! Merci beaucoup pour ton aide précieuse.

    Bonne soirée.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 20/10/2010, 13h19
  2. [REPORT9i] Lancer dans un pdf trois report
    Par cosmos38240 dans le forum Reports
    Réponses: 5
    Dernier message: 29/09/2004, 10h25
  3. Réponses: 2
    Dernier message: 14/06/2004, 15h18
  4. trois champ a un :)
    Par yogz dans le forum Langage SQL
    Réponses: 4
    Dernier message: 14/06/2004, 13h32
  5. jointure sur TROIS tables
    Par caribou_belle dans le forum Langage SQL
    Réponses: 8
    Dernier message: 01/03/2004, 11h20

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