Partage
  • Partager sur Facebook
  • Partager sur Twitter

Deux potentiomètres branché l'un à l'autre?

Sujet résolu
    26 août 2020 à 21:48:32

    Salut!

    Très récemment je trainais dans une boutique d'occasion et ai fait l'acquision de pédales que l'on branche à sa console pour jouer à des jeux de voiture. Sa connectique a l'air d'impliquer un hub que je n'ai pas, mais je me suis dit qu'il y aurait toujours moyen de le faire marcher en coupant le cable pour brancher les fils sur un arduino qui se chargera d'envoyer les signaux à mon pc. Après tout, c'est juste deux potentiomètres sous forme de pédales de voiture.

    J'ai donc ouvert le bousin et je suis bien tombé sur deux potentiomètres. Mais pour réduire le nombre de fils de sortie, le constructeur a utilisé un petit subterfuge que mes maigres connaissances en électronique ne me permettent pas de comprendre.

    Si vous regardez donc ma photo, vous pouvez voir les deux potentiomètres, mais leurs pates du milieu sont reliées entre elles par un fil noir. J'ai beau réflechir au problème, je ne comprends pas pourquoi avoir fait ca ni comment ca a pu marcher avant. Avec un tel montage, le 2ème potentiomètre se retrouve dépendant de la tension envoyée par le 1er. Ce qui veut dire que si le curseur du 1er est positionné de facon à appliquer une résistance max, le 2ème se retrouve sans courant non? Autrement dit, si j'accelère, la pression appliquée sur la pédale de frein sera ignorée.

    Quelqu'un saurait-il m'expliquer ce que je ne comprends pas ici?

    Merci d'avance.

    • Partager sur Facebook
    • Partager sur Twitter
      27 août 2020 à 8:32:38

      Effectivement, ce n'est pas très classique comme montage mais ce n'est pas pour autant que ça ne marche pas.

      Pour que ça marche, il te suffit de brancher les 4 fils sur 4 pins de ton arduino.

      En mettant la pin du fils jaune à LOW et celle du fils vert à HIGH, tu vas mettre 0V sur le jaune et 5V sur le vert, ce qui revient à alimenter classiquement le potentiomètre de droite.

      La tension de celui-ci va alors sortir sur le fils noir, et traverser le potentiomètre de gauche pour ensuite retourner à l'arduino sur les fils blanc et rouge.

      Au final, le potentiomètre de gauche ne va être qu'une simple résistance en série sur la mesure du potentiomètre de droite et ne la perturbera donc pas, ou très peu.

      Tu pourras donc lire la valeur du potentiomètre de droite en lisant la valeur analogique sur le fils rouge, ou le fils blanc.

      *****

      Et pour lire la valeur du potentiomètre de gauche, tu fais l'inverse :

      BLANC = OUTPUT LOW

      ROUGE = OUTPUT  HIGH

      JAUNE = INPUT ANA

      *****

      Au final, ton programme devra passer son temps à changer le mode des pins pour alterner INPUT et OUTPUT mais ça marche ;)

      Il faudra quand même mettre un petit delay avant les mesures histoire de laisser un peu de temps de stabilisation.

      Attention à bien repasser en INPUT avant de basculer l'autre potentiomètre en OUTPUT pour éviter les court-circuit.

      -
      Edité par lorrio 27 août 2020 à 8:34:39

      • Partager sur Facebook
      • Partager sur Twitter
        27 août 2020 à 11:06:30

        Merci pour ces explications Iorrio, c'est déjà bien plus clair! :D

        "Au final, le potentiomètre de gauche ne va être qu'une simple résistance en série sur la mesure du potentiomètre de droite et ne la perturbera donc pas, ou très peu."

        Je suis pas sûr de comprendre pourquoi le potentiomètre de gauche ne perturbera pas la mesure de celui de droite. Si la tension arrive par le curseur et ressort par l'une des deux extrémités, alors elle sera forcément soumise à la résistance variable du potentiomètre de gauche non?

        À moins que je calcule la somme du courant qui arrive dans le fil rouge ET le fil blanc pour obtenir la tension envoyée par le premier potentiomètre?

        -
        Edité par Kromah 27 août 2020 à 11:06:43

        • Partager sur Facebook
        • Partager sur Twitter
          27 août 2020 à 14:36:58

          Un potentiomètre se comporte comme une résistance avec un curseur au mieux, ce qui revient à avoir 2 résistances en série (Ra et Rb) avec le curseur au point milieu de Ra et Rb.

          Avec ce que je t'ai dis, on a le schéma suivant :

          Fil Rouge            Fil jaune
          5V -----+            +----- INPUT
                  |            |
                  |            |
                  |            |
                 RAg          RAd
                  |            |
                  |  Fil Noir  |
                  +------------+
                  |            |
                  |            |
                 RBg          RBd
                  |            |
                  |            |
          0V -----+            +----- INPUT
          Fil Blanc            Fil vert

          Avec ce montage, les fils vert et jaune sont en INPUT, donc il n'y a pas de courant qui rentre et qui sort.

          De ce fait, il n'y a pas de courant dans le potentiomètre de droite.

          Et comme il n'y a pas de courant, la tension aux bornes de ses résistances est null, donc la tension du fil vert est la même que celle du vert jaune qui est la même que celle du fil noir.

          Le courant ne circule que dans le potentiomètre de gauche, ce qui génère une tension proportionnel à la position de celui-ci sur le fil noir.

          Et c'est cette tension que tu vas pouvoir lire sur le fils jaune (ou le fils vert), pour en connaitre la position.

          Bien sûre, cela ne fonctionne que si les 2 autres pins sont en INPUT.

          Si ce n'est pas le cas, les 2 potentiomètres vont se perturber l'un l'autre et tu ne liras rien.

          • Partager sur Facebook
          • Partager sur Twitter
            27 août 2020 à 16:06:24

            Je vois! Alors tout est clair maintenant. Je vais essayer et voir ce que ça donne.

            Merci Iorrio!

            • Partager sur Facebook
            • Partager sur Twitter
              28 août 2020 à 20:45:10

              Bon... Je suis de retour :'( J'espère que tu verras ce message Iorrio.

              Si j'ai bien compris ton explication dans la théorie, quand j'essaye de mettre ça en pratique j'ai exactement le résultat que je craignais: la lecture de l'un des potentiomètre dépend de l'état de l'autre, donc si l'un est fermé, l'autre envoie constamment 0...

              J'ai beau essayer différentes choses, je comprends pas ce qui ne va pas dans mon montage, peut-être tu saurais me dire?

              Pour chacun des potentiomètre, j'ai un fil d'arrivée qui part d'une pin digitale, et un fil de retour qui part sur une pin analogique.

              Exemple ici où je veux juste lire la valeur de celui de gauche:

              int red = 2;
              int white = 3;
              int yellow = A0;
              int green = A1;
              
              int val = 0;
              
              void setup() {
                Serial.begin(9600);
                pinMode(yellow, INPUT);
                pinMode(green, INPUT);
                pinMode(red, OUTPUT);
                pinMode(white, OUTPUT);
              }
              
              void loop() {
              
                digitalWrite(red, HIGH);
                digitalWrite(white, LOW);
                digitalWrite(yellow, LOW);
                digitalWrite(green, LOW);
                
              
                val = analogRead(yellow);
                
                Serial.println(val);
                
                delay(500);
              }

              Merci d'avance...

              • Partager sur Facebook
              • Partager sur Twitter
                29 août 2020 à 15:18:30

                Ton image de câblage ne correspond pas à ton affectation des pins dans le code, donc ce n'est pas étonnant que cela ne marche pas.

                Sur ton image, on voit :

                ROUGE = 2
                BLANC = A1
                JAUNE = A0
                VERT  = 3

                Tandis que sur ton code, on voit :

                int red = 2;
                int white = 3;
                int yellow = A0;
                int green = A1;

                ==========

                A noter que ton câblage est OK, c'est ce que j'aurais fais (ne le change pas, il est bon !!!)

                En revanche, c'est ton code qu'il faut modifier légèrement pour avoir la bonne attribution (tu as inversé les numéros des fils blanc et vert).

                Mettre un petit delay après la mise en OUTPUT ne ferait pas de mal histoire de laisser un peu de temps à la mesure de se stabiliser.



                -
                Edité par lorrio 29 août 2020 à 15:23:23

                • Partager sur Facebook
                • Partager sur Twitter
                  29 août 2020 à 17:35:42

                  Aïe désolé pour cette erreur d'inattention. J'ai essayé plein de différents montages et ça m'a induit en erreur.

                  Malheureusement c'est pas ce qui règle le problème. J'ai laissé le montage tel qu'on le voit sur la photo et j'ai modifié le code pour mapper correctement les fils:

                  int red = 2;
                  int white = A1;
                  int yellow = A0;
                  int green = 3;
                  
                  int val = 0;
                   
                  void setup() {
                    Serial.begin(9600);
                    pinMode(yellow, INPUT);
                    pinMode(green, INPUT);
                    pinMode(red, OUTPUT);
                    pinMode(white, OUTPUT);
                  }
                   
                  void loop() {
                   
                    digitalWrite(red, HIGH);
                    digitalWrite(white, LOW);
                    digitalWrite(yellow, LOW);
                    digitalWrite(green, LOW);
                     
                   
                    val = analogRead(yellow);
                     
                    Serial.println(val);
                     
                    delay(500);
                  }

                  Mais les valeurs que j'obtiens en console ne répondent pas aux états des potentiomètres, et j'obtiens une valeur qui oscille entre 1023 et 1016. À ce moment là je pense que le problème vient de mon code et pas du montage...

                  • Partager sur Facebook
                  • Partager sur Twitter
                    30 août 2020 à 11:35:12

                    Peut-être un faux contact quelque part (une valeur toujours au max, c'est peut-être un fils de GND mal branché).

                    Ou bien une des bornes du domino qui serre sur l'isolant d'un fil au lieux de serrer le fils lui même, d'où l'absence de contact.

                    A moins que ce soit un des potentiomètres qui ne marche plus...

                    As tu déjà essayé de couper le fils noir, alimenter tes potentiomètres normalement et mesurer la tension qu'ils donnent ?

                    -
                    Edité par lorrio 30 août 2020 à 11:42:38

                    • Partager sur Facebook
                    • Partager sur Twitter
                      30 août 2020 à 15:16:43

                      Oui effectivement,

                      j'ai démonté les potentiomètres pour refaire le montage sur une prototyping board et ça a l'air de fonctionner.

                      Je me rends compte que les deux potentiomètres sont faits avec un seuil de manœuvre minuscule, ce qui donne l’impression qu'ils sont super sensibles. o_O

                      Merci beaucoup pour ton aide! Espérons que tout fonctionne pour la suite maintenant!

                      • Partager sur Facebook
                      • Partager sur Twitter
                        30 août 2020 à 16:47:30

                        C'est assez étrange, s tu alimentes un potentiomètre en 5V, tu dois avoir une mesure qui varie de 0 à 5V sur le curseur, et donc théoriquement de 0 à 1023 avec un analogRead sur Arduino.

                        Il se peut que les extrémités soient difficiles voirs impossible à atteindre, ce qui laisserait une plage du genre 50 à 975 mais ça reste quand même une belle plage.

                        Si tu as une plage ultra réduite, c'est qu'il y a un problème.

                        Peut-être que le curseur du potentiomètre n'est pas la pin centrale comme ou pourrait s'y attendre.

                        Tu devrais essayer de mettre la pédale au milieu, et prendre un ohmètre pour mesurer la résistance entre chacune des pins (entre rouge/noir, entre rouge/blanc, et entre blanc/noir).

                        -
                        Edité par lorrio 30 août 2020 à 16:52:14

                        • Partager sur Facebook
                        • Partager sur Twitter
                          10 novembre 2020 à 1:10:00

                          Salut, je pense que ça sera beaucoup plus facile de couper le fil noir en deux et comme ça tu auras deux potentiomètres, comme ça tu pourras seulement utiliser deux pins analogique par exemple A0 et A1, et de rajouter une petite fonction de comparaison qui sert donner la priorité au freinage dans le cas où vous appuyez sur les deux pédales en même temps.

                          Bon tu peux faire ça de cette manière, c'est plus propre si tu ne veux pas changer de cable.

                          L'astuce ici c'est d'utiliser les mêmes fils pour aboutir à un fonctionnement indépendant des potentiomètres, comme indiquer dans l'image tu dois couper le fil noir, vert et jaune, puis les extrémitées des deux fils vert et jaune qui sont liés au potentiomètre tu les soudes avec les fils rouge (5V) et blanc (0V), ensuite pour les deux autres extrémitées tu les relies chacune avec le un fil noir.

                          Comme ça dans l'autre coté du cable le rouge et le blanc devienne l'alimentation et le jaune et le vert sont la sortie de chaque potentiomètre, je ne sais pas si c'est claire ou pas mais je serai disponible pour clarifier si nécessaire.

                          • Partager sur Facebook
                          • Partager sur Twitter
                          "C'est un coup du sort étrange : tout les hommes dont on a ouvert le crâne avaient un cerveau" . Wittgenstein.

                          Deux potentiomètres branché l'un à l'autre?

                          × 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