Partage
  • Partager sur Facebook
  • Partager sur Twitter

Alimenter arduino + moteur 12v avec 1 batterie

    24 octobre 2016 à 13:23:30

    Bonjour,

    Je suis totalement débutant en électronique et avec arduino. J'ai besoin de votre aide parce que je ne trouve pas la réponse sur internet...

    Je veux commander un moteur pap 12v avec une arduino. Ma seule source est la batterie de ma voiture (12v) (pas sur le poste radio, ni sur l'allume cigare). De là j'ai quelques questions :

    -comment feriez-vous ?

    -est-ce que quelqu'un a déjà branché une arduino sur une batterie de voiture ? Parce que j'ai lu des post qui disent d'utiliser des filtres basse bas et des diodes zener mais étant débutant en électronique je ne comprends pas le montage qu'il faudrait faire...

    -l'arduino sort seulement quelques mA et 5V, or mon moteur a besoin de 12v et 1.7A... Ca me pose problème parce que :
                   - si je branche mon arduino à ma batterie de voiture je n'ai ni la tension ni l'intensité en sortie de mon arduino pour alimenter correctement mon moteur.
                   - si je branche mon moteur sur la batterie de voiture j'ai la tension et l'intensité souhaitée mais ma carte arduino n'est pas alimentée ^^

    Merci d'avance.

    Benoît
             

    • Partager sur Facebook
    • Partager sur Twitter
      25 octobre 2016 à 10:00:38

      Alors, prenons les questions dans l'ordre :)

      -----

      L'arduino dispose d'une prise Jack supportant de 7 à 15V donc tu peux parfaitement l'alimenter en 12V depuis une batterie.

      Mais le problème des voitures, c'est que la tension de la batterie 12V est très perturbée (chute de tensions, pics d'énergie...) à cause de tous les gros éléments qu'il y a dessus (démarreur, alternateurs, pompes...)

      En branchant directement ton arduino sur cette tension 12V, il va se prendre toutes ces perturbations, ce qui risque de provoquer des reset intempestif et/ou des comportements aléatoire.

      C'est pour cette raison qu'il est conseiller d'ajouter des protections avec filtre passe bas et diodes.

      -----

      Que ce soit un moteur de 5mA ou un moteur de 1.7A, l'arduino ne peut pas le piloter directement à cause de l'effet inductif.

      Il est impératif d'ajouter une interface de puissance entre le moteur et l'arduino.

      Pour de petits moteurs, cela peut-être un L293D mais dans ton cas, cela ne conviendra pas.

      Afin que l'on puisse te guider au mieux, il faudrait que tu nous donnes la référence ou la datasheet de ton moteur.

      Si tu n'as ni l'un ni l'autre, il faudrait au moins que tu nous donnes le nombre de fils que possède ton moteur (4 ou 6 ?)

      • Partager sur Facebook
      • Partager sur Twitter
        25 octobre 2016 à 18:47:31

        Alors :)

        Mon moteur est un pap bipolaire (4 fils), on peut le trouver sur le lien suivant : http://www.robotshop.com/eu/fr/moteur-pas-a-pas-bipolaire-nema-17-12v-17a-667oz-in.html

        Sinon entre mon arduino et mon moteur je comptais mettre un Shield Motor V3 : http://www.mon-club-elec.fr/pmwiki_mon_club_elec/pmwiki.php?n=MAIN.MATERIELArduinoShieldArduinoMotroShieldV3L298
        La datasheet est sur ce lien : http://www.selectronic.fr/media/pdf/1380-38-fiche-technique.pdf  (j'espère que c'est bien une datasheet ^^)
        D'après ce que j'ai compris il peut sortir 2A donc ça devrait aller. (Comme je n'y connais pas grand chose j'ai préféré prendre un composant tout fait plutôt que de réaliser moi même mon double pont en h...)

        J'espère en fait pouvoir alimenter mon shield avec ma batterie et que celui-ci alimente à la fois l'arduino et mon moteur en 12V (parce que les 5V en sortie de l'arduino ne conviendront pas pour mon moteur).

        Merci d'avance ;)

        Benoît

        • Partager sur Facebook
        • Partager sur Twitter
          26 octobre 2016 à 8:08:03

          Effectivement, pour piloter un moteur pas à pas avec 4 fils, il faut un double pont en H.

          Le shield que tu propose te permettra de piloter ce moteur ;)

          Si tu regardes en bas de la photo du shield, tu verras un bornier bleu avec 6 points : 4 correspondent aux sorties des 2 ponts en H, 2 correspondent à l'alimentation du shield pour le moteur.

          L'alimentation du shield est donc totalement indépendante de l'alimentation de l'arduino.

          Tu peux ainsi alimenter ton shield en 12V directement depuis la batterie et ton arduino en 12V (prise Jack) depuis la batterie avec un filtre.

          • Partager sur Facebook
          • Partager sur Twitter
            26 octobre 2016 à 11:02:09

            Super ! J'étais pas sûr qu'il puisse le piloter parce que je ne comprends pas la caractéristique 1.65V/A... Merci pour l'info ;)

            Si j'ai bien compris je fais 2 branchements sur ma batterie. Un branchement qui alimente le shield et un autre qui alimente l'arduino. Je suppose que sur ces 2 branchements je dois mettre des filtres (1 entre la batterie et l'arduino et 1 entre la batterie et le shield) pour éviter les pics de tension ? J'ai fait un petit schéma en bas en espérant qu'il soit clair (je n'ai pas représenté les branchements entre l'arduino et le shield) ^^ J'ai bien compris ce que tu m'as dit ?

            Sinon pour éviter de mettre 2 filtres j'ai lu des commentaires d'Eskimon sur le site suivant ( http://eskimon.fr/285-arduino-601-le-moteur-courant-continu ), en bas de page le 28/02/2014 à 9h53 et le 03/04/2014 à 16h33 pour faciliter la recherche ;) Il me semble comprendre que je peux alimenter seulement le shield et qu'il alimente ensuite l'arduino. Est-ce que je comprends ce que j'ai envie de comprendre ou tu comprends la même chose que moi ^^ ?

            Merci d'avance ! ;)

            Benoît

            • Partager sur Facebook
            • Partager sur Twitter
              26 octobre 2016 à 16:52:46

              Sur la description de ton shield, il y a écrit : dispose d'un capteur analogique d'intensité intégré (+++) (0V + 1,65V/A) pour chaque phase/moteur

              Il s'agit d'un capteur de courant qui va te donner une tension proportionnelle au courant qui passe dans le moteur.

              Si le moteur consomme 1A, la tension du capteur sera de 1.65V.

              Tu peux ensuite mesurer cette tension avec une pin analogique de ton arduino si tu le souhaites.

              Cela permet à l'arduino de connaitre ce que consomme le moteur et agir en conséquence :

              - si le moteur ne consomme rien, c'est qu'il y a un problème, très certainement un fil coupé quelque part

              - si le moteur consomme trop, c'est qu'il y a aussi un problème, très certainement un court-circuit ou un blocage du moteur

              Mais tu n'es pas du tout obligé d'utiliser ce capteur de courant ;)

              D'ailleurs, il me semble qu'il est désactivé par défaut sur le shield car très peu de personne s'en serve.

              ----------

              La tension de la batterie est très perturbée, ce qui peut gêner un micro processeur, d'où l'importance de mettre un filtre.

              En revanche, un moteur n'a pas besoin d'une tension parfaite pour fonctionner donc le filtre pour le shield moteur n'est pas obligatoire.

              -
              Edité par lorrio 26 octobre 2016 à 18:38:22

              • Partager sur Facebook
              • Partager sur Twitter
                26 octobre 2016 à 18:17:46

                Ok, tout s'explique ^^

                Merci beaucoup pour ces explications claires ;)

                A bientôt,

                Benoît

                • Partager sur Facebook
                • Partager sur Twitter
                  9 décembre 2016 à 17:08:57

                  Rebonjour,

                  J'espère que tu seras prévenu que j'ai relancé la discussion ^^

                  Je pensais pouvoir trouver facilement une méthode sur le sujet mais finalement non, je ne sais pas comment dimensionner le filtre passe bas ... Circuit RC, RLC ? Quelle fréquence de coupure choisir ? Et ne connaissant pas les pics de tension, d'intensité de la batterie je ne vois pas trop comment dimensionner les dipôles :/ (pour être honnête même si je les connaissais je ne saurais pas non plus ^^).

                  Est-ce que par "hasard" tu pourrais m'aider ? Ou quelqu'un d'autre d'ailleurs ;)

                  Merci d'avance !

                  • Partager sur Facebook
                  • Partager sur Twitter
                    9 décembre 2016 à 21:08:03

                    Là, je dois avouer que je ne sais pas trop quoi répondre...

                    Une self de quelques dizaines de uH et un condensateur Low ESR de quelques centaines de uF serait probablement un bon point de départ pour un premier essais.

                    Tu pourrais aussi ajouter une diode en série (du genre la très classique 1N4001) pour contrer les micro coupure de tension.

                    Une diode transil 12V en parallèle du condensateur peut aussi aider à supprimer les micro pics de tension.

                    Bat+ ---- Diode ---- Self ----+---------+---------- Vin Arduino
                                                  |         |
                                               Transil  Condensateur
                                                  |         |
                    Bat- -------------------------+---------+---------- GND Arduino
                    
                      



                    • Partager sur Facebook
                    • Partager sur Twitter
                      14 décembre 2016 à 9:50:59

                      Salut,

                      Excuse moi du temps de réponse, j'étais la tête dans le codage arduino j'ai complètement zappé le forum... :/

                      Merci pour ton aide ! Je vais essayer de dimensionner tout ça de manière plus formelle, je reviendrai expliquer la solution sur le forum ;)

                      A bientôt

                      • Partager sur Facebook
                      • Partager sur Twitter
                        6 janvier 2017 à 10:41:28

                        Salut :)

                        Bon dsl j'ai encore besoin de ton aide ^^

                        Du coup avant de faire ça avec une batterie de voiture je l'ai fait sur un bureau, verdict ça ne marche pas très bien...

                        1/ J'ai commencé par alimenter mon Arduino par le port USB et mon Shield avec une "alim" qui sort 12VDC 5A (je n'ai pas connecté la broche Vin entre l'arduino et le shield) (lien de l'alim : http://www.robotshop.com/en/12v-5a-universal-wall-adapter-w--cable.html)
                        Problème : le moteur ne tourne pas correctement, il fait quelques pas dans un sens puis dans l'autre, alors que je lui demande juste de faire un tour :/

                        2/ J'ai ensuite alimenté mon Arduino par le port USB et alimenté mon Shield par la broche Vin reliée à l'Arduino.
                        Le moteur tourne correctement à certaines vitesses de rotation (typiquement 10/20 rpm côté moteur) mais tourne mal à d'autres (1/2 rpm) et ne tourne pas du tout à 500rpm... Forcément c'est dans cette dernière plage que je veux l'utiliser.

                        Du coup je pense (intuitivement) que l'Arduino ne peut pas fournir la fréquence d'alimentation que demande le moteur, qu'en penses-tu ?

                        Et surtout, je voudrais alimenter mon shield par un autre moyen que l'arduino car j'ai besoin de couple en sortie moteur et l'intensité de l'arduino ne suffira pas du tout... Sais-tu pourquoi ça ne marche pas actuellement (1/) ?

                        Merci d'avance !

                        • Partager sur Facebook
                        • Partager sur Twitter
                          6 janvier 2017 à 10:47:56

                          Quand tu alimentais ton arduino par USB et ton shield par l'alimentation, as tu pensé à relier le GND de l'arduino au "moins" de l'alimentation ?

                          Si tu n'as pas fait cette liaison, c'est tout à fait normal que cela ne fonctionne pas.

                          • Partager sur Facebook
                          • Partager sur Twitter
                            6 janvier 2017 à 16:24:08

                            Alors là pas du tout, je pensais que les alimentations devaient être "découplées". Malheureusement j'ai testé ça ne marche toujours pas :/

                            Je te mets en pièce jointe le schéma de câblage, des fois que cela puisse t'aider (et m'aider par la même occasion ^^). L'autre composant c'est juste un module RF qui me permet de commander mon moteur à distance ;)

                            PS : maintenant c'est encore plus bizarre, je n'ai pas touché au code et il ne s'exécute plus comme avant, une idée ?

                            Merci encore pour ton aide !

                            • Partager sur Facebook
                            • Partager sur Twitter
                              6 janvier 2017 à 22:28:39

                              Sans un minimum de détails, on ne peut pas deviner le problème... Montres nous ton câblage et ton code.
                              • Partager sur Facebook
                              • Partager sur Twitter
                                9 janvier 2017 à 14:14:36

                                J'ai oublié de mettre le câblage... Je te mets des images ci-dessous du câblage (le shield est connecté à l'arduino mais pour une question de compréhension je l'ai mis à côté) et mon code (je suis vraiment dsl pour la qualité mais ne pouvant pas mettre de pièces jointes...). Pour le code en haut à gauche le "paramétrage", en haut à droite le "setup" et en bas la "boucle".

                                Le but est :
                                - on appuie sur le bouton A : le moteur tourne vite pendant 150 pas puis lentement pendant 50 pas
                                - on appuie sur le bouton B : le moteur tourne lentement en sens inverse pendant 50 pas puis vite pendant 150 pas
                                Et la séquence doit être ABABABABA en commençant par A

                                J'espère que tu auras le courage de le comprendre ;)

                                Le problème de code qui est survenu est que lorsque j'appuie sur le bouton A les 2 boucles se lancent (montée et descente)... alors que le code fonctionnait 10mn avant.

                                Merci d'avance !

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  9 janvier 2017 à 19:42:35

                                  C'est impossible de lire un code sur une photo d'une telle qualité.

                                  Il y a un bouton spécial pour insérer du code de façon à ce qu'il apparaisse correctement sur le site.

                                  Pour cela, il te suffit de cliquer sur le bouton en forme de </> au dessus de l'éditeur de message puis faire un copié/collé de ton code.

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    10 janvier 2017 à 19:27:35

                                    Bonsoir :)

                                    Excuse moi pour la piètre qualité de ma photo et du temps de réponse, j'ai fait des tests toute la journée pour ne pas te poser des questions inutiles...

                                    Finalement j'en arrive à la conclusion que mon moteur fonctionne (je l'ai testé avec un montage L298 + L297 existant), mon code fonctionne (je l'ai testé avec une alimentation de labo où je fixais la tension à 12v avec une limitation de courant à 1.5A). Mon problème vient donc de l'alimentation que j'ai choisie (la 12v-5a dont je t'avais mis le lien : http://www.robotshop.com/en/12v-5a-universal-wall-adapter-w--cable.html).

                                    Le problème c'est que je n'ai pas 300/500€ à mettre dans une telle alimentation de labo... Je me suis donc un peu renseigné pour utiliser directement une batterie de voiture. Mon nouveau problème est le suivant : en fait les phases de mon moteur ont une résistance de 1.6 Ohms, si j'impose 12v, ça me crée un courant énorme dans le moteur pap même si je ne lui demande pas de tourner (je ne m'attendais pas à ça mais si j'ai bien compris ça se passe comme ça avec les pap) :/ il va donc chauffer et se détruire... Aurais-tu une idée de solution ? On m'a parlé de LM7805, LM317 et L200 pour imposer une tension tout en limitant le courant, est-ce que c'est une bonne idée de ton point de vue ?

                                    Merci d'avance !

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      10 janvier 2017 à 22:13:10

                                      Le LM7805 et le LM317 sont des régulateurs linéaire donc ils vont tout simplement dissiper l’excédant de tension en chaleur.

                                      Par exemple, si tu demandes au LM7805 de sortir 1A régulé sous 5V alors que celui-ci reçoit du 12V, il va devoir dissiper en challeur les 7V de trop, donc il va devoir évacuer une puissance P = U*I = 7*1 = 7 Watt

                                      Au final, ce sera le régulateur qui va devenir un véritable grille pain...

                                      Il serait plus judicieux d'avoir un régulateur à découpage si tu veux t'en servir pour abaisser la tension d'alimentation du moteur pas à pas.

                                      Une autre solution serait de remplacer le shield moteur par un driver spécialement prévu pour les moteurs pas à pas qui va faire une régulation en courant plutôt que d'injecter bêtement la tension d'alimentation.

                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        28 novembre 2019 à 14:57:55

                                        Bonjour je suis de meme en plein projet Arduino et j'aimerai alimenter mon moteur shield a l'aide d'une batterie 12v de 5200mah le problème c'est que je ne sais pas quel filtre mettre entre ma batterie et mon moteur shield pour ne pas tout re cramer. Etant donné que je viens de cramer tout recement mon moteur shield ,merci d'avance pour votre aide.
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          28 novembre 2019 à 21:28:46

                                          Il n'y a normalement aucune raison de cramer un motor shield en l'alimentant en direct avec une batterie 12V.

                                          Tu l'as peut-être cramé à cause d'un moteur trop gros, qui consomme trop de courant.

                                          Quel moteur utilises tu ?

                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            29 novembre 2019 à 22:39:52

                                            J'avais deja verifier avant et mon moteur ne dépasse pas les 600ma ,et j'ai vues plusieurs personnes parler de mettre un filtre entre la batterie et le shield. De plus j'ai pris la precaution d'installer un interrupteur afin d'éviter tout arc électrique au démarrage mais je me demande si il ne faut pas mettre une bobine de lissage afin d'éviter tout pic de courant lors de l'allumage de mon moteur shield. Mais je ne sais pas si c'est vraiment ce qu'il faut faire et si oui quel type de bobine choisir.
                                            • Partager sur Facebook
                                            • Partager sur Twitter

                                            Alimenter arduino + moteur 12v avec 1 batterie

                                            × 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