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 :

Augmenter la valeur d'une Variable avec un bouton poussoir ?


Sujet :

Arduino

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 80
    Par défaut Augmenter la valeur d'une Variable avec un bouton poussoir ?
    Bonjour,


    je voudrais faire augmenter le valeur d'une variable de +1 a chaque fois que j appuie sur le bouton poussoir. aller de 0 a 9 puis retour a 0.

    Comment faire ? (je débute)

    Merci d'avance.

  2. #2
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 661
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 661
    Par défaut
    Bonjour,

    Quelle carte ? Quelle(s) entrée(s) ?
    Tu peux initialiser une interruption sur une des entrées de ta carte et détecter les fronts montants ou descendants. Puis dans ta fonction d'interruption incrémenter une variable.
    AttachInterrupt

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 80
    Par défaut
    bonjour,

    je fais un petit exercice pour moi. en activant le bouton poussoir je veux augmenter de 0 a 9 un afficheur 7 segments.

    Les sorties : 4;5;6;7;8;9;10.
    L’entrée : 2 (const int BOUTON = 2)

    c'est claire comme ça ?

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 80
    Par défaut
    et la carte Arduino Uno

  5. #5
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 661
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 661
    Par défaut
    Citation Envoyé par didier.007 Voir le message
    je fais un petit exercice pour moi. en activant le bouton poussoir je veux augmenter de 0 a 9 un afficheur 7 segments.

    Les sorties : 4;5;6;7;8;9;10.
    L’entrée : 2 (const int BOUTON = 2)

    c'est claire comme ça ?
    pas du tout. Comment est câblé ton afficheur ? Ton afficheur comporte 7 led qui vont dessiner tes chiffres. Donc en fonction de telle ou telle valeur tu va devoir allumer ou éteindre certaines LED.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 80
    Par défaut
    J'ai déjà fait fonctionner l'afficheur.

    Ce que je n'arrive pas à faire, c'est trouver la ou les bonnes fonctions et bonnes variables et comment les organiser. Je pense que c'est le plus compliqué !

    Les segments sont câblés en sortie de 4 à 10 et mon bouton poussoir en entrée sur la pin 2.

  7. #7
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 661
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 661
    Par défaut
    Citation Envoyé par didier.007
    Les segments sont câblés en sortie de 4 à 10
    oui, je veux bien, mais quel segment est sur quelle sortie ?
    Ce que tu dois faire c'est activer telle ou telle sortie pour activer tel ou tel segment et au final former ton chiffre. C'est un afficheur à anode ou cathode commune ?

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 80
    Par défaut
    j avais bien compris ta question. j ai pris des notes sur la position des segments ,lors de mon premier montage, mais j'ai oublié de noter quelles pin connectait quel segment. Erreur de "jeunesse"!!!
    on dira que sortie 4 et le segment A jusqu a sortie 10 segment G !!
    je corrigerai bien après.
    merci pour ta patience, je pars au boulot.

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 80
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    pinMode(4,OUTPUT);//Broche de sortie du segment "segment en bas a gauche"
    pinMode(5,OUTPUT);//Broche de sortie du segment "segment central bas"
    pinMode(6,OUTPUT);//Broche de sortie du segment "segment en bas a droite"
    pinMode(7,OUTPUT);//Broche de sortie du segment "segment central millieu "
    pinMode(8,OUTPUT);//Broche de sortie du segment "segment en haut a gauche"
    pinMode(9,OUTPUT);//Broche de sortie du segment "segment central haut"
    pinMode(10,OUTPUT);//Broche de sortie du segment "segment en haut a droite"
    pinMode(BOUTON, INPUT);//Broche bouton poussoir precise "L'ENTREE pin 2" sur la carte
    ça te va ?

  10. #10
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 661
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 661
    Par défaut
    Voici ce que tu peux faire :
    Code c : 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
    /*
     *   Sorties afficheur
     *    --9--
     *    8   10
     *    --7--
     *    4    6
     *    --5--
     */
     
     
     
    int interruptPin = 2;
    volatile int compteur;
     
    void setup() 
    {
      int i;
      for (i=4; i<=10; i++)
        pinMode(i, OUTPUT);  // configuration des pins 4 à 10 en sortie
     
     // affichage de 0
     compteur = 0;
     digitalWrite(4, HIGH);
     digitalWrite(5, HIGH);
     digitalWrite(6, HIGH);
     
     digitalWrite(9, HIGH);
     digitalWrite(8, HIGH);
     digitalWrite(10, HIGH);
     
      // entrée  
      pinMode(interruptPin, INPUT);
      // création d'une interruption sur l'entrée
      attachInterrupt(digitalPinToInterrupt(interruptPin), afficheur, RISING);
    }
     
    void loop() 
    {
       // rien à faire entre 2 interruptions ??
    }
     
    // gestion de l'interruption
    void afficheur()
    {
      compteur++;
      if (compteur>9) 
        compteur = 0;
     
      switch (compteur)
      {
        case 0:       // activer/désactiver sorties pour avoir un "0"
          break;
        case 1:       // activer/désactiver sorties pour avoir un "1"
          break;
        case 2:       // activer/désactiver sorties pour avoir un "2"
          break;
        case 3:       // activer/désactiver sorties pour avoir un "3"
          break;
        case 4:       // activer/désactiver sorties pour avoir un "4"
          break;
        case 5:       // activer/désactiver sorties pour avoir un "5"
          break;
        case 6:       // activer/désactiver sorties pour avoir un "6"
          break;
        case 7:       // activer/désactiver sorties pour avoir un "7"
          break;
        case 8:       // activer/désactiver sorties pour avoir un "8"
          break;
        case 9:       // activer/désactiver sorties pour avoir un "9"
          break;
      } 
    }

    Je te laisse compléter le switch. Avec de l'astuce tu peux avoir un code assez court



    Citation Envoyé par didier.007
    c'est claire comme ça ?
    Citation Envoyé par didier.007
    ça te va ?
    Fais attention à la tournure de tes phrases, c'est assez agressif.

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 80
    Par défaut
    je regarde ca de plus près et je tiens au courant.
    je te remercie a nouveau pour ta patience.

  12. #12
    Membre du Club Avatar de bertrand0611001
    Homme Profil pro
    Comptable
    Inscrit en
    Juin 2016
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Comptable
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2016
    Messages : 9
    Par défaut
    Bonjour,

    Je suis débutant en ARDUINO, mais j'ai une question/suggestion pour ton interface :

    as tu pensé à l'encodeur rotatif ?
    https://skyduino.wordpress.com/2012/...deurs-rotatif/

    Bon courage dans ton projet

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 80
    Par défaut
    merci pour la réponse.

    c'est juste un exercice pour apprendre a programmer. je débute et ce n est pas facile... je lutte....!!!

  14. #14
    Membre du Club Avatar de bertrand0611001
    Homme Profil pro
    Comptable
    Inscrit en
    Juin 2016
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Comptable
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2016
    Messages : 9
    Par défaut
    pas de souci, entre débutants il faut s'entraider

    Ne lâche pas et n'hésite pas si tu as besoin

  15. #15
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 661
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 661
    Par défaut
    Le script fonctionne comme tu le souhaites ?

  16. #16
    Membre chevronné
    Avatar de BlackoOSX
    Homme Profil pro
    Étudiant à l'INSA HdF
    Inscrit en
    Septembre 2014
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant à l'INSA HdF
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2014
    Messages : 360
    Billets dans le blog
    3
    Par défaut
    Salut!
    Tu peux faire avec un type de code comme sa:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    void setup ()
    {<div style="margin-left:40px">pinMode(PinDuBouton, INPUT);</div> }
     
    void loop ()
    {<div style="margin-left:40px">int pinB = PinDuBouton;
    int VARIABLE = 0;
    int BR = digitalRead(pinB);
     
    if (BR == HIGH) {</div><div style="margin-left:80px">int VARIABLE = VARIABLE + 1;</div><div style="margin-left:40px">}</div> }
    }

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

Discussions similaires

  1. [Débutant] Lancement d'une fonction avec un bouton poussoir
    Par michelmich dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 09/10/2015, 10h27
  2. [2.x] comment voir la valeur d'une variable avec symfony
    Par adel25 dans le forum Symfony
    Réponses: 15
    Dernier message: 17/07/2013, 20h50
  3. Valeur d'une variable associée à plusieurs boutons
    Par ErwanLegrand dans le forum Langage
    Réponses: 3
    Dernier message: 03/08/2012, 18h27
  4. Changer la valeur d'une variable avec "onClick"
    Par Tryp' dans le forum Langage
    Réponses: 6
    Dernier message: 06/06/2009, 19h50
  5. changer la valeur d'une variable avec 2 bouton
    Par toutounesan_bg dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 03/08/2007, 11h51

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