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 :

Changer état LED


Sujet :

Arduino

  1. #1
    Membre averti
    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
    Par défaut Changer état LED
    Bonjour,

    J'ai un petit problème avec ce bout de code:

    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
    if (clignotementVE2) {
      Millisactuel6 = millis();
       if (((unsigned long)(Millisactuel6- Millisprecedent6) >= Intervaldeclignotement6)) {
       mcp1.digitalWrite(6, !mcp1.digitalRead(6)); ///////////////////////LED VE2 //////////////////////////////
       Millisprecedent6 = Millisactuel6; 
      }
     } else {
      mcp1.digitalWrite(6, HIGH);
        }
     
     int lecturebouton8 = mcp2.digitalRead(0); ///////////////////////BP VE2 //////////////////////////
     delay(10); 
     
     if ((lecturebouton8==LOW)){
      clignotementVE2=false;
       }
    Grâce à ce code, la LED VE2 clignote en continu. Lorsque je presse et relâche "BP VE2" elle ne clignote plus et reste fixe continuellement, même lorsque je ré-appui sur le BP.

    Jusque là ==> OK, tout va bien.

    Cependant j'aimerai rajouter un BP qui me permettrai de la repasser dans son état initial "clignotant" lorsque j'appuie dessus. Le souci c'est que ça ne fonctionne pas..... Elle reste continuellement allumé même lorsque je presse le BP qui est censé la réinitialiser...

    Comment faire ?

    Merci.

  2. #2
    Membre Expert
    Avatar de jpbbricole
    Homme Profil pro
    Retraité des réseaux informatiques
    Inscrit en
    Février 2013
    Messages
    1 017
    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 017
    Par défaut
    Bonsoir ochey54

    Où est le code du 2ème bouton?
    Mets le code complet.

    Cordialement
    jpbbricole

  3. #3
    Membre averti
    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
    Par défaut
    Bonsoir jpbbricoleur,

    Je joint le code. Celui d'origine est plus grand mais je ne fais que conserver les lignes les plus importantes pour rendre la lecture plus fluide:

    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
     
    #include <Wire.h>
    #include "Adafruit_MCP23017.h"
     
    Adafruit_MCP23017 mcp1;
    Adafruit_MCP23017 mcp2;
     
     
    bool clignotementV2 = true; 
    const unsigned long Intervaldeclignotement2 = 80; 
    unsigned long Millisactuel2; 
    unsigned long Millisprecedent2;
     
     
    void setup() {
     
    Serial.begin(9600);
     
    mcp.begin();
    mcp1.begin(1);
    mcp2.begin(4);
     
    mcp1.pinMode(6,OUTPUT);
    mcp1.digitalWrite(6, LOW);
     
    mcp2.pinMode(0,INPUT);
    mcp2.pinMode(1,INPUT);
    mcp2.pullUp(1, HIGH);
    mcp2.pullUp(0, HIGH);
     
    }
     
     
    void loop() {
     
     
    if (clignotementVE2) {
      Millisactuel6 = millis();
       if (((unsigned long)(Millisactuel6- Millisprecedent6) >= Intervaldeclignotement6)) {
       mcp1.digitalWrite(6, !mcp1.digitalRead(6)); ///////////////////////LED VE2 //////////////////////////////
       Millisprecedent6 = Millisactuel6; 
      }
     } else {
      mcp1.digitalWrite(6, HIGH);
        }
     
     int lectureboutonLEDV2 = mcp2.digitalRead(0); ///////////////////////BP VE2 //////////////////////////
     delay(10); 
     
     if ((lectureboutonLEDV2==LOW)){
      clignotementVE2=false;
       }
     
     
    int BP = mcp2.digitalRead(1); /////BP REMISE AU DEBUT///////////////
     
    if (BP == LOW) {
     
    int clignotementV2 = true; 
     
    }
     
    }

  4. #4
    Membre Expert
    Avatar de jpbbricole
    Homme Profil pro
    Retraité des réseaux informatiques
    Inscrit en
    Février 2013
    Messages
    1 017
    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 017
    Par défaut
    Re Bonsoir ochey54

    dans ta condition du 2ème bouton tu as créé une nouvelle variable et de plus locale au if(, donc visible nulle part ailleurs!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    	 if (BP == LOW) {
    		 
    		 int clignotementV2 = true;
    		 
    	 }
    Alors que tu utilises une autre variable pour faire clignoter!

    Si tu fais ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    	 if (BP == LOW) {
    		 
    		 clignotementVE2 = true;
    		 
    	 }
    !!! Attention pas de int !!! c'est déjà fait tout en haut.

    Ça devrait fonctionner (pas essayé)

    Cordialement
    jpbbricole

  5. #5
    Membre averti
    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
    Par défaut
    Merci pour ta réponse. Effectivement, cette erreur corrigée m'a permis de résoudre en parti le problème...

    Mon projet m'oblige à écrire de longues lignes et met en jeu tellement de paramètres qu'il est assez difficile (pour moi) de le rendre facilement cohérent pour mon système...

    Encore merci pour ton aide précieuse.

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

Discussions similaires

  1. Syntaxe pour changer état d'un input
    Par leroidje dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 08/06/2009, 18h01
  2. Réponses: 9
    Dernier message: 11/04/2006, 16h56
  3. Réponses: 5
    Dernier message: 06/01/2006, 15h57
  4. changer le lien de la barre d'état sous firefox
    Par lipao17 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 15/12/2005, 14h39
  5. Réponses: 2
    Dernier message: 17/10/2002, 16h16

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