Partage
  • Partager sur Facebook
  • Partager sur Twitter

Question pour Afficheur 7 Segment

    27 octobre 2020 à 23:24:28

    Bonsoir à tous.

    Voila je suis totalement novice en électronique et j'aurais bien besoin d'un petit coup de main :)

    Cela fait plusieurs semaine que j'ai beau cherché (ou mal chercher) et je ne trouve pas mon bonheur.

    Pour un projet, je souhaite utilisé 3 Afficheur 7 segments qui sont à Anode Commune, un arduino Uno et 3 registre 74Hc595. Je souhaite lui faire faire un 350-0.

    J'ai réussi à tout câbler et j'arrive t'en bien que mal à coder de façon à sortir quelques choses mais mon problème est que je n'arrive pas à trouver un moyen pour contrôler l'affichage car dans un premier temps j'aimerais utiliser un bouton pour faire défiler le counter.

    J'espère être assez clair.

    Merci d'avance

    • Partager sur Facebook
    • Partager sur Twitter
      28 octobre 2020 à 2:42:48

      Je suis encore plus novice que toi.
      Le 74HC595 est un shift register. Et tu l'as cablé en ring counter, je suppose?
      Vois-tu passer quelque chose sur ton affichage?
      Qui fait reculer le compteur? Le programme ou seulement les circuits?
      Je chercherais du côté des bascules (flip-flop ou latch, gated ou pas).
      L'idée étant que le signal soit envoyé au compteur seulement à chaque transition bouton-élevé - bouton-enfoncé couplé à l'horloge.
      La sortie serait renvoyée vers l'entrée et empêcherais un autre cycle d'horloge de se rendre à la sortie.
      Seul un nouvel appui sur le bouton déverrouille pour un seul cycle d'horloge.
      • Partager sur Facebook
      • Partager sur Twitter

      Le Tout est souvent plus grand que la somme de ses parties.

        28 octobre 2020 à 6:50:37

        Merci pour ta réponse rapide :-) 

        Certains mots sont encore du chinois pour moi mais je vois ou tu veux en venir et oui c'est ce que je cherche à obtenir. Je veux que le compteur m'affiche 350 et quand j'appuie sur un bouton paff 349 et ainsi de suite ^^

        Avec le programme le compteur défile bien de 350 à 0 mais celui ci ne s'arrête pas bien sûr, normal vu qu'il n'a aucun arrêt.

        • Partager sur Facebook
        • Partager sur Twitter
          28 octobre 2020 à 16:56:30

          J'ai regardé rapidement les bascules JK avec verrouillage par l'horloge.
          Je pense qu'une bascule JK avec front montant suivi d'une autre avec front descendant pourraient fonctionner.
          Je vais regarder ça si j'ai un peu de temps.
          Il me semble qu'il y a quelque chose de plus simple.
          Le problème est que le bouton peut rester enfoncé pendant plusieurs cycles, même si tu as un diviseur de fréquence.
          • Partager sur Facebook
          • Partager sur Twitter

          Le Tout est souvent plus grand que la somme de ses parties.

            28 octobre 2020 à 21:21:38

            Bonsoir,

            Vous pouvez piloter vos afficheurs avec un CD4511, c'est très simple à faire surtout avec un Arduino !!

            Téléchargez la datasheet du composant, tout y est expliqué.

            Cordialement

            Jc

            • Partager sur Facebook
            • Partager sur Twitter
              28 octobre 2020 à 22:11:30

              Jean-ClaudeGHYSELINCK a écrit:

              Bonsoir,

              Vous pouvez piloter vos afficheurs avec un CD4511, c'est très simple à faire surtout avec un Arduino !!

              Téléchargez la datasheet du composant, tout y est expliqué.

              Cordialement

              Jc

              Le problème, c'est que le 4511 ne peut commander que des cathodes communes.

              Voir plutôt du côté des 7447 en version TTL ou CMOS

              • Partager sur Facebook
              • Partager sur Twitter
                28 octobre 2020 à 22:31:28

                @PierroLeFou, Vraiment merci j'en demande pas autant si tu me trouve des solution je prends ! ^^

                Les autres, merci aussi, mais je marche au exemple, si vous en avez je prends. La ça ne m'aide pas vraiment, je sais que pour vous ça parait simple ^^.

                Pour le CD4511 en effet je l'avais bien vu, mais les afficheurs que je souhaite utilisé je ne l'ai est trouvé qu'en Anode.

                • Partager sur Facebook
                • Partager sur Twitter
                  28 octobre 2020 à 23:43:47

                  Tape "arduino + 7447" dans ton moteur de recherche
                  • Partager sur Facebook
                  • Partager sur Twitter
                    29 octobre 2020 à 0:25:52

                    @zoup: content de te voir dans le décor ...
                    J'ai fait une recherche pour arduino 7447
                    https://forum.arduino.cc/index.php?topic=59267.0
                    Une question que je me pose en tant que programmeur:
                    Ne peut-on pas régler le problème par programmation?
                    Par exemple, si le programme peut lire une information au clavier et attendre qu'une touche soit tapée.
                    Il envoie l'information appropriée à l'affichage pour le décompte suivant.
                    PS je ne programme pas sur l'Arduino.
                    • Partager sur Facebook
                    • Partager sur Twitter

                    Le Tout est souvent plus grand que la somme de ses parties.

                      29 octobre 2020 à 6:58:35

                      Il faut encore un croire en l'humanité ! Ou peut être pas en vrai.. sérieux zoup tu pense que c pas se que j'ai fais déjà? J'ai pas approfondi la question. Pourquoi répondre sur un forum si c pour troll ? Vous vous faite si chier que ça dans vos vie ? 

                      Bref je m'écarte du sujet.

                      @PierroLeFou, j'ai look ton lien je testerai se soir mais il me semble que sur sont schéma c des afficheurs à Cathode mais je testerais quand mm. Mais merci vraiment je retrouve foi en l'humanité, enfin un peu ^^

                      Étant programmeur Cn je sais qu'on peut tout faire mais le mode de l'électronique et nouveau, voir complexe pour moi 

                      • Partager sur Facebook
                      • Partager sur Twitter
                        29 octobre 2020 à 12:07:54

                        VéreliusR a écrit:

                        Il faut encore un croire en l'humanité ! Ou peut être pas en vrai.. sérieux zoup tu pense que c pas se que j'ai fais déjà? J'ai pas approfondi la question. Pourquoi répondre sur un forum si c pour troll ? Vous vous faite si chier que ça dans vos vie ? 

                        Je te signale que j'avais évoqué l'utilisation du 7447, et que tu n'avais pas donné suite, ce qui n'est pas très poli.

                        Gentiment, je te propose d'aller voir ce qui est possible de faire à ce sujet, et partant de là j'aurais pu t'aider à la suite de questions précises.

                        Vu ta réaction, je vais donc éviter de perdre mon temps plus longtemps.

                        • Partager sur Facebook
                        • Partager sur Twitter
                          29 octobre 2020 à 17:26:18

                          @VéreliusR:
                          Je connais suffisamment zoup pour savoir qu'il s'y connait en électronique.
                          Tu aurais tort de négliger ses conseils.
                          • Partager sur Facebook
                          • Partager sur Twitter

                          Le Tout est souvent plus grand que la somme de ses parties.

                            29 octobre 2020 à 17:43:09

                            Il me semble pourtant t'avoir répondu.

                            Il fallait commencer par ça au lieu de répondre "Tape "arduino+7447" mais on va pas blablater plus.

                            Edit : C'est à lui de voir, recentrons nous sur le sujet svp

                            -
                            Edité par VéreliusR 29 octobre 2020 à 17:44:29

                            • Partager sur Facebook
                            • Partager sur Twitter
                              29 octobre 2020 à 22:35:19

                              Comme sont câblés tous les composants ? 

                              Parce je ne vois pas l'intérêt des décodeurs BCD alors qu'il y a déjà 3 registres à décalages qui peuvent contrôler directement les afficheurs 7 segments avec juste 3 ou 4 sorties de l'arduino (même si ça oblige à limiter le courant de chaque segment à moins de 10mA, contrairement à des registres à décalages de puissance , ex: TPIC6B595, ou des drivers de leds, ex: TLC591x, à décalage eux aussi).

                              • Partager sur Facebook
                              • Partager sur Twitter
                                29 octobre 2020 à 22:45:30

                                Je vous joint le schéma, il est vrai que j'aurais pu le faire avant x)

                                -
                                Edité par VéreliusR 29 octobre 2020 à 22:46:16

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  30 octobre 2020 à 1:25:49

                                  Au minimum, les broches 14, 11 et 12 du registre doivent être connectées à l'arduino. La broche 11, Shift Register Clock, en jaune, ne semble pas connectée.

                                  Il faudrait également que tu montres le code arduino que tu as déjà écrit.

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    30 octobre 2020 à 7:22:41

                                    Effectivement la il n'est pas connecté mais normalement il est relié à la sorti 2 de l'Arduino.

                                    Le code simple sert pour compter de 399 à 0. J'ai essayé avec un interrupteur ça bloque bien l'affichage (ex 321)' mais quand je relance ce n'est pas le bon chiffre ensuite.( si il c passer 10 sec j'aurais 311)

                                    Si je remplace i,j et k entre [ ] je peux obtenir un chiffre fix mais je ne suis pas arrivé à le contrôler comme je voulais 

                                    int ENTREE = 4;
                                    int SORTIE = 3;
                                    int DECAL = 2;
                                    
                                    
                                    int Chiffre [10] {1,79,18,6,76,36,32,15,0,4};
                                    
                                    
                                    void setup() {
                                      
                                      pinMode(ENTREE, OUTPUT);
                                      pinMode(SORTIE, OUTPUT);
                                      pinMode(DECAL, OUTPUT);
                                    
                                    }
                                    
                                    void loop() { 
                                    {
                                    for (int k = 3; k >= 0; k--){  
                                    for (int j = 9; j >= 0; j--){  
                                    for (int i = 9; i >= 0; i--){
                                     
                                      digitalWrite(SORTIE,HIGH);
                                      shiftOut(ENTREE, DECAL, LSBFIRST,Chiffre[i]);//i
                                      shiftOut(ENTREE, DECAL, LSBFIRST,Chiffre[j]);//j
                                      shiftOut(ENTREE, DECAL, LSBFIRST,Chiffre[k]);//k
                                      
                                      digitalWrite(SORTIE, LOW);
                                      delay(500);
                                    			}
                                    			}
                                    			}
                                      
                                    }	
                                    }
                                    
                                    



                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      1 novembre 2020 à 11:41:47

                                      Pour pouvoir attendre l'appui sur un bouton, il faut utiliser millis() à la place de delay() et supprimer les boucles. Il y a un début d'explication dans ce cours.

                                      Tu peux également remplacer ton compteur par une seule variable globale et en extraire les chiffres avec l'opérateur modulo et des divisions successives.

                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        1 novembre 2020 à 17:47:02

                                        Ha bon! Il existe une fonction pour attendre une touche du clavier?
                                        C'est ce que je voulais dire.
                                        Pour le compteur et les modulo:
                                        centaines = compteur / 100;
                                        dizaines = (compteur / 10) % 10;
                                        unites = compteur % 10;
                                        • Partager sur Facebook
                                        • Partager sur Twitter

                                        Le Tout est souvent plus grand que la somme de ses parties.

                                          1 novembre 2020 à 19:46:24

                                          PierrotLeFou a écrit:

                                          Ha bon! Il existe une fonction pour attendre une touche du clavier?

                                          Si tu préfères: Avec delay(500) dans la boucle qui gère le compteur, une lecture des broches connectées aux boutons avec digitalRead ne peut se faire que toutes les 500ms, ce qui peut faire rater la détection d'un appui. En utilisant millis() pour gérer le temps, il sera possible de lire l'état des boutons dans l'intervalle entre les changements de valeur du compteur.

                                          Mais il existe des bibliothèques pour gérer les boutons comme Bounce2, qui sont également généralement incompatibles avec l'utilisation de delay().

                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            1 novembre 2020 à 22:29:06

                                            J'essaye mais je nage x) dsl
                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              8 novembre 2020 à 13:39:30

                                              zoup a écrit:

                                              Le problème, c'est que le 4511 ne peut commander que des cathodes communes.

                                              Voir plutôt du côté des 7447 en version TTL ou CMOS


                                              Bonjour, je ne viens que sporadiquement sur le forum. Mais on peut piloter avec le CD4511, indifféremment anode ou cathode commune.

                                              Il est vrai, cependant qu'il faille ajouter un composant supplémentaire, en anode commune.

                                              Bien cordialement

                                              Jc

                                              -
                                              Edité par Jean-ClaudeGHYSELINCK 8 novembre 2020 à 13:43:47

                                              • Partager sur Facebook
                                              • Partager sur Twitter

                                              Question pour Afficheur 7 Segment

                                              × 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