Partage
  • Partager sur Facebook
  • Partager sur Twitter

Nombre appuis sur BP et compteur

    4 février 2019 à 12:10:39

    Bonjour,

    J'ai reprit ce programme qui est censé compter un nombre x d'appuis sur un BP et allumer une LED au bout de 3 appuis. Le souci c'est qu'il ne l'allume pas forcément au bout de 3 appuis...mais au bout de 2 ou 4... Sauriez-vous me relever l'erreur dans mon code ?

    Merci.

    int compteur = 0 ;
    int newcompteur = 0 ;
    int led = 3;
    int bouton = 2;
    static int etatprec = HIGH ; void setup() { pinMode (2, INPUT_PULLUP) ; pinMode (3, OUTPUT) ; digitalWrite(3, LOW) ; } void loop() { if (bouton == HIGH && etatprec == HIGH) { newcompteur = compteur +1 ; compteur = newcompteur ; delay(100) ; } bouton = etatprec ; if (compteur == 3) { digitalWrite(3, HIGH) ;
    } }
    • Partager sur Facebook
    • Partager sur Twitter
      4 février 2019 à 13:47:38

      ton problème est dans la détection de front :

      int compteur = 0;
      int led = 3;
      int bouton = 2;
      
      int state = LOW, oldState = LOW;
      
      void setup()
      {
      	pinMode ( 2, INPUT_PULLUP ) ;
      	pinMode ( 3, OUTPUT ) ;
      
      	digitalWrite ( 3, LOW ) ;
      }
      
      void loop()
      {
      	state = digitalRead ( bouton ); // faut faire une lecture pour avoir le status
      
      	if ( ( state == HIGH ) && // il faut quie l'etat courant soit haut pour un front montant
      		( oldState == LOW ) ) // mais if faut que l'ancien et le nouveu soit different pour voir un front
      	{
      		compteur++; // faison simple, une incrémentation est ... mieux
      	}
      
      	oldState = state; // c'est l'etat courant qu'on copie dans l'ancien
      	
      	if ( compteur == 3 ) // ça c'est bon
      	{
      		digitalWrite ( 3, HIGH ) ;
      	}
      }

      mais ce serait certainement mieux en interruption :D

      -
      Edité par ox223252 4 février 2019 à 13:52:47

      • Partager sur Facebook
      • Partager sur Twitter

      la connaissance est une chose qui ne nous appauvrit pas quand on la partage.

      Mon GitHub

        4 février 2019 à 17:33:50

        Merci beaucoup pour ta réponse !
        • Partager sur Facebook
        • Partager sur Twitter

        Nombre appuis sur BP et compteur

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown