interface de puissance pour moteur pas a pas

bonjour, je viens d'arriver sur le système Arduino depuis peu, et malgrès le forum si riche et plein de savoir j'ai eu quelques difficultés à trouver ce que je cherchais :) Je travaille dans l'éléctrochimie, et je viens de faire l'acquisition d'un moteur pas à pas (Stepper motor 39BYGL215A) qui a un déplacement linéaire d'une carte arduino UNO et d'un microprocesseur ATMEGA 328 je souhaiterais pouvoir le controler mon moteur avec Arduino, de controler le nombre de pas et de l'arreter à tout moment à un nombre de pas précis. j'ai lu sur plusieurs site qu'il était nécéssaire de mettre une interface moteur de puissance double driver pour contrôler ce moteur, j'ai du mal à comprendre pourquoi le microprocesseur + la carte Arduino ne sont pas suffisant. Si quelqu'un peut m'aider à comprendre, et comment mettre en place cette interface de puissance ce serait vraiment sympa. Merci beaucoup ;)

mathieu-qc: cette interface de puissance

Hey hey, tu as dit le mot ;)

Ton moteur necessite 400 mA/phase : c'est déjà plus que le régulateur peut fournir !! Et je parle pas de l'Atmega qui avec ses 20 mA/pin est dépassé depuis longtemps ;)

Il faut donc une interface pour piloter ces courants, l'Arduino servant de "maître d'orchestre"

Le plus simple dans ton cas est de prendre un module à base de L298 (il y'en a plein sur ebay, deal extreme ...) pour moins de 5€ la plupart du temps. Un coup de librairie Stepper et ça rouleras ;) Enfin ça tournera xD

et donc ce controleur de courant va permettre d'alimenter mon moteur en 400mA à défaut de la carte arduino qui ne peut me fournir que 20mA par pin ! Ok super, mais pourquoi ce n'est pas possible de mettre un montage amplificateur basique ?

C'est un amplificateur optimisé pour le pilotage de moteurs.

Le L298 à l’intérieur ça ressemble à ça :

Un moteur pas à pas est plus complexe à gérer qu'un moteur à courant continu, pour le faire tourner il faut faire des pas successifs (d'où son nom) en alimentant l'une après l'autre chaque bobine alors que le moteur à courant continu tu le fous sur une pile et il tourne ...

Un bon article sur le sujet : http://ralphy.perso.libertysurf.fr/Formulaire/PasaPas.htm

Ok ça marche
je veux réaliser un déplacement micrométrique avec mon moteur pas a pas linéaire
(http://dlnmh9ip6v2uc.cloudfront.net/datasheets/Robotics/39BYGL.pdf)
j’ai donc besoin d’une grande précision dans la commande de mon moteur, est il nécéssaire de coupler mon controleur de puissance L298 avec le L297 pour avoir une plus grande précision de commande ?

Comme je suis en plein dans ma CNC, je peux te dire ça : la perte de précision liée à la gestion "pure" du moteur est souvent très inférieure à celles engendrées par le reste de la mécanique.

Si on prend la datasheet de ton moteur, la précision est de 0,01 mm/pas. Le jour où tu en seras à te casser la tête pour augmenter la précision de ton moteur tu m'appelleras xD

Le L297 a principalement deux fonctions : simplifier la rotation (tu n'as plus qu'à rentrer une horloge en entrée pour faire des pas) et surveiller le courant.

Mon conseil : si tu n'es pas pressé par le temps, prend un simple module L298 (3-4€, au pire la perte n'est pas bien grande ...). S'il ne te satisfait pas, passe à plus puissant. Mais dans l’immédiat, vu la taille de ton moteur et ton (ne le prend pas mal) expérience dans le domaine, un L298 devrait largement te satisfaire et au pire te servir de tremplin pour la suite et t'aider à comprendre pas mal de chose avant de les compliquer ;)

Ok c’est bon j’ai acheté le L298,
c’est vraiment nécéssaire de protéger les transistors avec des diodes ou je peux brancher les 4 fils de mon moteur en sortie du L298 ?
j’ai tenté un montage avec 4 diodes de ce type la

Tu as acheté le composant seul ou un petit module dans ce genre :

non je n'ai acheté que le composant L298,

Désolé d'être négatif mais il est difficile d'utiliser un L298 seul. Son empreinte ne permet pas de l'implanter sur une plaque pastillée au pas de 2,54. Il lui faut quelques composants périphériques (diodes, résistances, ...) Le commander en direct est très pénible alors qu'associé à un L297 cela devient enfantin. On trouve sur le net une multitude de schemas d'application, de cartes à faire ou toutes faites.

A vrai dire, si on pense puissance et plusieurs axes il y a :

http://www.geckodrive.com/geckodrive-step-motor-drives.html

avec les copies chinoises.

Dans le p.8 j'ai vu qu'en protégeant les transistors avec des diode, on pouvait facilement revenir au "kit" du L298.. http://www.st.com/st-web-ui/static/active/en/resource/technical/document/datasheet/CD00000240.pdf?s_searchtype=keyword

Le schemà de la page 8 montre parfaitement comment mettre en oeuvre le L298 Les diodes servent entre autre à assurer la recirculation du courant. Voir : http://www.st.com/web/en/resource/technical/document/application_note/CD00003774.pdf

Ce circuit a surtout la capacité de réguler le courant dans les enroulements. Ce qui permet des vitesses de pas plus importantes. Avec un système à vis cela devient très important car cela conditionne la vitesse de déplacement. Le couple otimum de la plupart des moteurs pas à pas est obtenu en dessous de 1000 steps/sec . Avec une vis au pas de 2mm cela correspond à 1cm/sec max.

je ne suis pas vraiment intéréssé par des vitesses élevés, je cherche surtout un système de pilotage de précision pour mon moteur stepper j'ai réaliser ce montage la avec une carte arduino uno, un controleur L298 et un moteur stepper 39BYGL215A après avoir rentré le code de la librairie Arduino, je n'obtiens rien du tout.. j'ai vérifié un par un diode et condo, mes soudures.. tout est Ok, je ne comprends pas

j'ai pris des diodes 1N4005, je ne sais pas si c'est ça qui empeche mon circuit de fonctionner normalement..

Avec des PàP, la précision est déterminée par la mécanique. La vitesse conditionne la productivité. Plus on va vite, moins on a de couple et plus on a de risque d'erreur de positionnement.

Sinon :

Les diodes sont mal branchées si on se réfère à la doc ST . Mais si il n'y a pas de régulation de courant il y a peut être un espoir que ça fonctionne :cold_sweat:.

Les diodes type 1N400X ne conviennent absolument pas : - trop lentes - 1A max.

Il faut des diodes schottky rapides et capables de supporter qq A.

Le GND logique du L298 doit être relié au GND de l'arduino. Les résistances Rsense ne servent à rien si il n'y a pas de régulation de courant. Tel que, ce montage a pour effet que le GND du L298 va se trouver à un niveau imprévisible par rapport au GND de l'Arduino. Dans ce cas, les sorties Sense A et Sense B doivent être reliée au GND moteur et non au GND logique.

A ma connaissance, il n'y a pas library Arduino capable de commander en direct un L298. A moins que ?

Faudrait aussi voir le code!

je me disais bien qu'il y avait un problème avec les diodes 1N4005, je ne comprends pas pourquoi 1A ne suffit pas pour mon utilisation vu que mon moteur fonctionne a 400mA pense tu que 1N582X suffiront, et que mon circuit en dessous est adapté ? et dans mon circuit je n'ai qu'un seul GND, j'ai mis le GND moteur, au GND de l'arduino c'est juste mon schéma qui est mal fait Pour le code, je me suis aidé de ce site web la : http://www.mon-club-elec.fr/pmwiki_mon_club_elec/pmwiki.php?n=MAIN.ArduinoExpertMoteursPAPTestSimple

salut, est ce que ce circuit fonctionne parfaitement avec les diodes 1N4005 ?