[Programmation] Problème bouton poussoir + débitmètre Arduino [Résolu] - Page 3
Répondre à la discussion
Page 3 sur 3 PremièrePremière 3
Affichage des résultats 61 à 63 sur 63

Problème bouton poussoir + débitmètre Arduino [Résolu]



  1. #61
    invite82939336

    Re : Problème bouton poussoir + débitmètre Arduino


    ------

    Je viens d'essayé ce code tout simple et le relais s'éteint bien quand le débitmètre arrive à 10 impulsions.

    Code:
    #define relais_EV 13 //le relais de l'électrovanne est connecté à la broche 3 de la carte Adruino
    
    const int debitmetre = 3; //le débit mètre est connecté à la broche 2 de la carte Arduino
    
    int etat_debitmetre; //variable qui enregistre l'état du débit mètre
    int Nb_impulsion; //variable qui enregistre le nombre d'impulsions du débitmètre
    int memoire_debitmetre = HIGH; //état relâché par défaut
    
    
    void setup() {
    pinMode(relais_EV, OUTPUT); //le relais de l'électrovanne est une sortie
    digitalWrite(relais_EV, HIGH); //on initialise le relais de l'électrovanne comme "éteint"
    pinMode(debitmetre, INPUT); //le débit mètre est une entrée
    
    Nb_impulsion = 0;
    }
    
    void loop() {
     etat_debitmetre = digitalRead(debitmetre); 
     
      if((etat_debitmetre != memoire_debitmetre) && (etat_debitmetre == HIGH)) // Si le bouton a un état différent de celui 
       {                                                                      // enregistré ET que cet état est "appuyé"
        Nb_impulsion++;                                                       // Alors j'incrémente la varible de +1
       }
       
       memoire_debitmetre = etat_debitmetre; // on enregistre l'état du bouton pour le tour suivant
       
      if(Nb_impulsion >= 100) // Si le nombre d'impulsions est supérieur ou égale à 10
       {
        digitalWrite(relais_EV, LOW); // Alors le relais s'éteint 
       }
            
    }

    -----

  2. #62
    invite82939336

    Re : Problème bouton poussoir + débitmètre Arduino

    C'est bon ca maaarcheeee!
    Trop content, il m'aura fait suer ce code.

    Voici ce foutu code fonctionnel comme je voulais.

    Code:
    #define relais_EV 13 //le relais de l'électrovanne est connecté à la broche 3 de la carte Adruino
    
    const int bouton_NO = 4; //le bouton NO est connecté à la broche 4 de la carte Adruino
    const int debitmetre = 3; //le débit mètre est connecté à la broche 2 de la carte Arduino
    
    int etat_bouton_NO; //variable qui enregistre l'état du bouton
    int etat_debitmetre; //variable qui enregistre l'état du débit mètre
    int Nb_impulsion; //variable qui enregistre le nombre d'impulsions du débitmètre
    int memoire_BP = HIGH; //état relâché par défaut
    int memoire_debitmetre = HIGH; //état relâché par défaut
    int valeur_bouton; // variable memoire du bouton NO
    
    void setup() {
    pinMode(bouton_NO, INPUT); //le bouton est une entrée  
    pinMode(relais_EV, OUTPUT); //le relais de l'électrovanne est une sortie
    digitalWrite(relais_EV, HIGH); //on initialise le relais de l'électrovanne comme "éteint"
    pinMode(debitmetre, INPUT); //le débit mètre est une entrée
    
    Nb_impulsion = 0; // Variable Nb_impulsion est égale à 0
    valeur_bouton = 0 ; // Variable valeur_bouton est égale à 0
    }
    
    void loop() {
     etat_bouton_NO = digitalRead(bouton_NO); // lecture de l'état du bouton
     etat_debitmetre = digitalRead(debitmetre); // lecture de l'état du bouton 
          
    {
     if((etat_bouton_NO != memoire_BP) && (etat_bouton_NO == LOW))  // Si le bouton a un état différent de celui enregistré ET
       {                                                            // que cet état est "appuyé"
        valeur_bouton = 1;                                          // Alors la valirable valeur_bouton ce met à "1"
       } 
    
     memoire_BP = etat_bouton_NO;  // on enregistre l'état du bouton pour le tour suivant
     
    
      if((etat_debitmetre != memoire_debitmetre) && (etat_debitmetre == HIGH)) // Si le bouton a un état différent de celui 
       {                                                                      // enregistré ET que cet état est "appuyé"
        Nb_impulsion++;                                                       // Alors j'incrémente la varible de +1
       }
       
       memoire_debitmetre = etat_debitmetre; // on enregistre l'état du bouton pour le tour suivant
    }
      
    {
      if(valeur_bouton == 1) // Si la variable valeur_bouton est à "1"
       {
        digitalWrite(relais_EV, LOW); // Alors le relais est alimenté
       }
      
      if(Nb_impulsion >= 10) // Si le nombre d'impulsions est supérieur ou égale à 10
       {
        digitalWrite(relais_EV, HIGH); // Alors le relais s'éteint
       valeur_bouton = 0; // Remise à "0" de la variable valeur_bouton
       Nb_impulsion = 0;  // Remise à "0" de la variable Nb_impulsion
       }
    }
        
             }
    Le problème c'est que j'avais pas remis à "0" la variable valeur_bouton et Nb_impulsion et du coup la boucle ne pouvez pas repartir vu que les impulsions étaient déjà comptabilisé.

    En tout cas merci à tous d'avoir passé du temps pour mon code est de m'avoir apprit encore pleins de choses.... c'est un super forum parce-qu'il y a des gens super!

  3. #63
    izentrop

    Re : Problème bouton poussoir + débitmètre Arduino

    Quand on débute on assimile pas toujours que le loop est lu à chaque cycle d'horloge, c'est pour ça qu'il faut mémoriser les états. Pour éviter d'envoyer l'ordre au relais à chaque cycle, tu pourrais ajouter une variable état_relais.
    Pour l'état du bouton, tu devrais pouvoir utiliser qu'une seule variable il me semble
    Je débute aussi. Pour l'instant je n'ai qu'un montage à mon actif en arduino, une trappe poullailler bien pratique.
    Dernière modification par izentrop ; 15/11/2015 à 21h54.

Page 3 sur 3 PremièrePremière 3

Discussions similaires

  1. arduino, servomoteur et bouton poussoir
    Par invite6170f95c dans le forum Électronique
    Réponses: 68
    Dernier message: 22/07/2015, 13h53
  2. besoin d'aide bouton poussoir avec l'arduino mega
    Par invite7f6bf7c8 dans le forum Électronique
    Réponses: 11
    Dernier message: 20/10/2014, 21h32
  3. Problème bouton poussoir Arduino
    Par invitee61d2fc4 dans le forum Électronique
    Réponses: 8
    Dernier message: 27/04/2014, 18h07
  4. Bouton poussoir farçeur (énervant) [résolu]
    Par invite424deccd dans le forum Bricolage et décoration
    Réponses: 29
    Dernier message: 10/09/2012, 18h53
  5. Bouton poussoir et minuterie ? [résolu]
    Par crobe dans le forum Bricolage et décoration
    Réponses: 15
    Dernier message: 03/04/2011, 15h42
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...