Partage
  • Partager sur Facebook
  • Partager sur Twitter

Arduino : Pilotage d'un moteur pas à pas bipolaire

    10 septembre 2017 à 17:36:46

    Bonjour,

    Je suis un débutant dans le monde de l’électronique et des cartes Arduino. C'est pour ça que j'ai acquis l'ouvrage de Simon Monk "Mouvement, lumière et son avec ARDUINO et RASPBERRY PI". Je souhaite piloter un moteur pas à pas. Pour cela, (oui, j'ai fait du copié-collé !) j'ai voulu réaliser le montage du livre. Pour cela j'ai acquis : une Arduino Uno, un circuit L293D, un condensateur 100nF et un 16 V 100µF, ainsi qu'un moteur pas-à*pas bipolaire 12V. J'ai ensuite réalisé le montage suivant :

    Puis j'ai réalisé le code suivant :

    #include <Stepper.h>    // (1)
    
    const int in1Pin = 10;
    const int in2Pin = 9;
    const int in3Pin = 8;
    const int in4Pin = 11;
    
    Stepper motor(200, in1Pin, in2Pin, in3Pin, in4Pin);     // (2)
    
    void setup() {       // (3)
      pinMode(in1Pin, OUTPUT);
      pinMode(in2Pin, OUTPUT);
      pinMode(in3Pin, OUTPUT);
      pinMode(in4Pin, OUTPUT);
      while (!Serial);
      Serial.begin(9600);
      Serial.println("Command letter followed by number");
      Serial.println("p20 - set the motor speed to 20");
      Serial.println("f100 - forward 100 steps");
      Serial.println("r100 - reverse 100 steps");
      motor.setSpeed(20);       // (4)
    }
    
    void loop() {        // (5)
        if (Serial.available()) {
        char command = Serial.read();
        int param = Serial.parseInt();
        if (command == 'p') {
          motor.setSpeed(param);
        }
        else if (command == 'f') {
          motor.step(param);
        }
        else if (command == 'r') {
          motor.step(-param);
        }   
      } 
    }

    Cependant quand je lance des commandes sur le logiciel, le moteur "bourdonne" et ne tourne pas. J'ai beau intervertir les fils connectés aux broche 3 et 6 du L293D (comme indiqué), cela ne change pas.

    Merci de votre aide !

    • Partager sur Facebook
    • Partager sur Twitter
      10 septembre 2017 à 21:30:55

      Bonsoir

      le schéma est incorrect :

      • court-circuit de la sortie 11 de l'Arduino avec le +5V branché sur la même broche 10, alors que le 5V devrait être sur la broche 9
      • le fil gris du moteur est raccordé à la broche 12 au lieu de 11

      Si ça été vraiment monté comme ça je crains que la sortie 11 de l'Arduino soit endommagée.

      • Partager sur Facebook
      • Partager sur Twitter
        12 septembre 2017 à 10:11:49

        Il y a aussi le fait qu'un moteur 12V risque de ne pas pouvoir tourner avec seulement 6V que peuvent fournir 4 piles.
        • Partager sur Facebook
        • Partager sur Twitter
          16 septembre 2017 à 13:23:44

          Merci pour vos réponses !

          Le schéma que j'ai réalisé est bien erroné, mon montage correspond à celui-ci avec les bons branchements :

          Cependant quand j'ai vérifié mon montage j'ai remarqué que le fil branché sur la broche 12 n'était pas relié, mais cela n'a rien changé... (faux espoir ^^).

          Concernant le fait que le moteur pas à pas soit de 12v, l'auteur indique que l'on peut utiliser une batterie 6 V pour l’alimentation : "le couple sera inférieur mais le moteur tournera parfaitement".
          Merci de votre aide !

          • Partager sur Facebook
          • Partager sur Twitter
            24 septembre 2017 à 17:59:45

            virgiledaunay a écrit:

            Cependant quand je lance des commandes sur le logiciel, le moteur "bourdonne" et ne tourne pas. J'ai beau intervertir les fils connectés aux broches 3 et 6 du L293D (comme indiqué), cela ne change pas.

            Es tu sûr que les fils du moteur que tu as connectés sur 3 et 6 correspondent à la même bobine, et que la puce est dans le bon sens, avec l'ergot vers le haut de l'image ?

            • Partager sur Facebook
            • Partager sur Twitter
              30 septembre 2017 à 12:29:55

              Pour l'ergot, il est effectivement en haut. Mais pour le moteur, de référence, Adafruit 324, je ne suis plus sûr de rien... Comment on peut s'assurer que les fils 3 et 6 correspondent à la même bobine : il faut faire les 24 possibilités ?

              Merci pour ta réponse !

              • Partager sur Facebook
              • Partager sur Twitter
                30 septembre 2017 à 13:19:03

                Avec un multimètre en position Ohmmètre c'est facile, sinon il suffit d'avoir une pile et une ampoule (ou un voyant LED = LED + résistance) de tension adaptée, si l'on met en série les 2 fils correspondant à la bobine avec la pile et le voyant, celui-ci devrait s'allumer (moins fort qu'en direct sur la pile).

                On pourra alors vérifier la même chose avec les 2 fils restants.

                • Partager sur Facebook
                • Partager sur Twitter
                  5 mars 2018 à 19:21:15

                  Merci pour vos réponses et pardonnez moi de répondre avec 6 mois de retard... --'

                  Bref je m'y remet !

                  J'ai effectivement pu reconnaitre les 2 fils par bobine mais cela ne résout pas le problème puisque il s'agit bien de la même bobine (pour les fils gris et verts et pour les fils jaune et bleu)

                  Est-ce que cela peut être dû à un élément défectueux comme la L293D par exemple ?

                  J'ai de plus remarqué quand j'enlève un des fils du moteur, cela ne change pas grand chose au "bourdonnement" du moteur, pourtant les connexions semblent bien être réalisés...

                  (Je suis perdu...)

                  • Partager sur Facebook
                  • Partager sur Twitter
                    7 mars 2018 à 21:07:04

                    Bonsoir,

                    Drofca a écrit:

                    J'ai effectivement pu reconnaitre les 2 fils par bobine mais cela ne résout pas le problème puisque il s'agit bien de la même bobine (pour les fils gris et verts et pour les fils jaune et bleu)

                    Fil jaune et bleu ??? pour le moteur. Je vois jaune et rouge !!

                    Drofca a écrit:

                    (Je suis perdu...)

                    Il faut envoyer une consigne de vitesse très basse et vérifier à l'aide d'un voltmètre (référence à 0V) le changement de tension sur chacune des entrées du L296D, puis sur chacune des sorties. On pourra alors identifier celle(s) qui manque(nt).





                    • Partager sur Facebook
                    • Partager sur Twitter
                      11 mars 2018 à 17:16:05

                      Merci Beaucoup pour votre réponse !

                      Désolé du temps mis pour répondre mais j'ai un petit problème de voltmètre ^^

                      Oooh la, c'est bien le rouge et le jaune... (Qu'est ce qui m'arrive ! :D)

                      le temps qu'il arrive et pour m'assurer que je réalise bien les mesures, le voltmètre je le place en dérivation et je connecte directement les fils sur la "patte" de la L296D ?

                      • Partager sur Facebook
                      • Partager sur Twitter
                        18 avril 2018 à 15:14:15

                        bonjour

                        J'ai eu le même problème un moteur qui grogne et fait du sens avant et sens arrière. J'ai résolu le problème en diminuant le nombre de pas par tour dans la commande/

                        Stepper motor(200, in1Pin, in2Pin, in3Pin, in4Pin);

                        200 est une valeur trop grande commencez avec 50 et augmentez là jusqu’au grognement et vous aurez la valeur maxi a ne pas dépasser. Cette valeur varie suivant les moteurs.

                        A+

                        • Partager sur Facebook
                        • Partager sur Twitter

                        Arduino : Pilotage d'un moteur pas à pas bipolaire

                        × 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