Partage
  • Partager sur Facebook
  • Partager sur Twitter

pb programme

    23 décembre 2012 à 14:55:26

    Bonjours à tous,

    je suis actuellement en train de travailler sur une sorte de gestion de parking.
    J'ai fait un montage électrique avec 2 boutons poussoirs, un décodeur BCD et un afficheur 7 segment.
    Je voudrai que lorsque j'appuie sur le BP1 l'afficheur s'incrémente et lorsque j'appuie sur le BP2 il se décrémente.
    Le problème c'est que sa ne marche pas et je n'arrive pas a savoir d’où viens le problème. Le problème peut venir que du programme. Si vous pouvez m'aider se serai sympas. Merci.

    voici mon code :

    const int c = 31;
    const int b = 35;
    const int d = 39;
    const int a = 43;
    const int bp1 = 26;
    const int bp2 = 24;
    int info_bp1;
    int info_bp2;
    int compteur = 0;
    
    void setup()
    {
      pinMode(c, OUTPUT);
      pinMode(b, OUTPUT);
      pinMode(d, OUTPUT);
      pinMode(a, OUTPUT);
      pinMode(bp1, INPUT);
      pinMode(bp2, INPUT);
      
      digitalWrite(bp1, LOW);
      digitalWrite(bp2, LOW);
    }
    
    void loop()
    {
      info_bp1 = digitalRead(bp1);
      
      if(info_bp1 == HIGH)
      {
        compteur = compteur++;
      }
      
      info_bp2 = digitalRead(bp2);
      
      if(info_bp2 == HIGH)
      {
        compteur = compteur--;
      }
      
      if(compteur <= 0)
      {
        compteur = 0;
      }
      
      affiche(compteur);
    }
    
    void affiche(int valeur)
    {
        if(valeur == 0)
      {
         digitalWrite(a, LOW);
         digitalWrite(b, LOW);
         digitalWrite(c, LOW);
         digitalWrite(d, LOW);
      }
        
      if(valeur == 1)
      {
         digitalWrite(a, HIGH);
         digitalWrite(b, LOW);
         digitalWrite(c, LOW);
         digitalWrite(d, LOW);
      }
      
      if(valeur == 2)
     {
        digitalWrite(a, LOW);
        digitalWrite(b, HIGH);
        digitalWrite(c, LOW);
        digitalWrite(d, LOW);
     }
     
     if(valeur == 3)
     {
        digitalWrite(a, HIGH);
        digitalWrite(b, HIGH);
        digitalWrite(c, LOW);
        digitalWrite(d, LOW);
     }
     
    }
    
    • Partager sur Facebook
    • Partager sur Twitter
      23 décembre 2012 à 15:23:18

      Salut,
      quand tu dit "sa ne marche pas", tu entend quoi par là ? ça ne compile pas ?
      Là comme ça, je vois deux problèmes :
      - compteur = compteur++; (ou --), tu peut faire directe : compteur++;
      - Tant que tu appuie sur le bouton, sa s’incrémente/décrémente, or à la vitesse où vas ton programme ça va aller super vite, il faut que tu lui dise d'incrémenter/décrémenter qu'une fois par appuie.
      • Partager sur Facebook
      • Partager sur Twitter
      2b||!2b   sqrt(4b²)
        23 décembre 2012 à 15:35:55

        merci de ta réponse,

        sa se compile bien mais le problème c'est que sa m'affiche pas les valeurs attendues
        • Partager sur Facebook
        • Partager sur Twitter
          24 décembre 2012 à 0:00:54

          Tu as essayé de voir le TP "ZParking" du tuto Arduino ? ca devrait pouvoir t'aiguiller je pense car ca reprend ce genre de problèmatique
          • Partager sur Facebook
          • Partager sur Twitter

          Retrouvez moi sur mon blog et ma chaine Youtube !

            24 décembre 2012 à 14:24:54

            oui j'ai regarder le code qu'il y avais sur le cour pour m'aider mais sans succes, mais mon code est t-il faux pour se que je souhaite faire ?
            • Partager sur Facebook
            • Partager sur Twitter
              27 décembre 2012 à 13:45:25

              je rejoins ce que dit diode, il faut que tu implémentes le système vu en cours pour réagir sur un changement d'état et non pas sur un état fixe. Car la ton programme va aller à une telle vitesse que ca va changer de valeur sans que tu t'en rendes compte.

              Je te conseil de retourner voir le cours sur les boutons et ensuite celui de la correction du TP zParking
              • Partager sur Facebook
              • Partager sur Twitter

              Retrouvez moi sur mon blog et ma chaine Youtube !

              pb programme

              × 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