Branchement moteur DC [Résolu]

Bonjour,

J'ai un moteur (utilisé pour un tracker solaire) que je souhaiterais piloter via une carte Arduino.
J'ai pu récupérer la fiche technique suivante :

En revanche je n'y connais pas grand chose et je n'arrive pas à déterminer de quel type de moteur il s'agit.

  • Les pins 5 et 6 sont ils utilisés pour récupérer la position du moteur (incrémentale) ?
  • Pourquoi y a t-il une alimentation 24v sur le pin 2 et une sur le pin 4 ?
  • Sur quel pin vais-je pouvoir envoyer les impulsions et comment indiquer la direction ?

Si ça se trouve il me faut un composant intermédiaire...

Merci par avance !

Le lien marche pas

elgranjuego:
...
http://www.justbeamit.com/266ec

Si ça se trouve il me faut un composant intermédiaire...

bonsoir
lien HS
Et si ça trouve, il en faut plusieurs des composants intermediaires ! :grin:

Oups désolé pour le lien, voici la fiche technique :
http://download.mirelsol.org/dc_motor.pdf

elgranjuego:

  • Les pins 5 et 6 sont ils utilisés pour récupérer la position du moteur (incrémentale) ?
  • Pourquoi y a t-il une alimentation 24v sur le pin 2 et une sur le pin 4 ?
  • Sur quel pin vais-je pouvoir envoyer les impulsions et comment indiquer la direction ?
  • Oui c'est ça : la capture semble se faire via des capteurs à effet hall, la lecture des deux bits sur les pins 5 et 6 te permettant d'en déduire la position (à 90° près)
  • Il y une alim pour le moteur et une pour les capteurs. Ca permet d'éviter les perturbations et les tensions demandées ne sont pas les mêmes.
  • Qu'entends-tu par impulsion ? Je ne sais pas si tu as bien compris, mais tu commandes ton moteur via le 24V. Après c'est à toi en arrière-plan de suivre via les pin 5 et 6 la position de ton moteur et de l'arrêter quand il est à la bonne position. Pour la direction rien de plus simple : le + au - et le - au + :wink:

Sinon tu auras besoin d'une interface, type L298. Y'en a plein sur ebay pour 3euros. Pour les capteurs 4 résistances et c'est plié. Prévoir aussi une alim un peu costaude, ton moteur tirant jusqu'à 2A ...

Bonjour,

Merci beaucoup pour ces informations qui me permettent d'avancer.
J'ai cependant encore quelques interrogations :slight_smile:

  • Pour l'alim du moteur il me faut un transfo 24v / 2A c'est ça ?
  • Pour l'alim des capteurs est-ce qu'il faut impérativement du 12v ? Ou du 5v pourrait suffir ? Dans ce dernier cas je pourrais passer par le 5v de l'Arduino pour les alimenter ?

Merci par avance !

  • 2A c'est le mini, en plus un moteur ça a des courants d'appels plus importants. Je te conseille de voir plus gros, au moins ça chauffera pas trop.
  • C'est marqué dans la datasheet en bas à gauche : 5...12V :wink: donc oui 5V tu peux.

Merci Karma pour tes précieuses informations. Comme tu as pu le constater je suis complètement novice dans le domaine :slight_smile:
Dernière question : pourquoi faut-il 4 résistances ? Deux sur chaque entrée ? Quelle valeur choisir ?

Merci beaucoup !

Moi c'est B@tto, karma c'est pour plussoyer :wink:

Oué en fait deux suffiront pour les deux capteurs : http://www.scoop.it/t/pense-bete-arduino/p/2620487185/tech-un-senseur-a-effet-hall-us5881lua

:smiley: ok merci B@tto, je vais regarder tout ça et me lancer dans le grand bain en espérant ne pas cramer trop de composants.

Bonjour,

Alors j'ai donc acheté un composant L298N, plus exactement celui-ci :
http://download.mirelsol.org/l298n_236.pdf

  1. J'ai branché l'alim externe du moteur (24v DC / 3A) aux entrées +12v / GND. Je ne comprends pas par contre que ce soit marqué "12v" alors qu'on peut aller jusqu'à 35v...
  2. A l'heure actuelle sur "output A" (je ne me sers que d'un pour l'instant), je n'ai aucune tension... est-ce normal ?
  3. Faut-il que j'enlève le cavalier correspondant à A enable et le relier à ma sortie PWM Arduino et utiliser input 1 et input 2 en digital pour indiquer le sens de rotation ?

Merci d'avance !

J'ai le même mais pas testé encore. Logiquement même s'il y a marqué 12V il est sensé accepter plus (je m'étais fait la même remarque).

Si tu n'as rien piloté encore (donc pas de 5V sur les INx) c'est normal, voici le schéma du branchement : lien

Si tu "n'enclenches" rien pas de tension car ce sont les transi internes reliés au GND qui sont actifs. Si tu mets les deux pin à l'état haut, les deux pins seront à 24V (si alim en 24V évidemment).

Les pins ENABLE permettent de forcer l'arrêt des moteurs : pas de 5V à ENx => moteur x à l'arrêt quel que soit les niveaux des INx

Salut merci pour ta réponse,

Donc si je laisse le cavalier sur ENA et que je mets IN1 et IN2 à l'état haut (IN1 en PWM avec une valeur entre 0 et 254), le moteur devrait tourner c'est bien ça ?
Autre chose : si j'enlève le cavalier "5V" dans la carte et que je branche mon alim 24v DC la carte ne s'allume pas. Si par contre j'amène du 5V sur l'entrée 5V logique, alors la carte s'allume. Si je laisse le cavalier 5V alors la carte s'allume et j'ai du 5V en sortie sur l'entrée logique.
J'avoue que je suis un peu embrouillé avec cette histoire. J'ai lu quelque part que pour que la carte sorte un voltage supérieur à 12v, il fallait justement retirer le cavalier et alimenter le 5V logique...

A+

Effectivement j'avais juste survoler la doc et il y a un régulateur 5V intégré d'où le "12V" (c'est expliqué page 3) : si on branche plus que 12V, alors il faut apporter le 5V car le regulateur ne supportera pas et virer le cavalier qui relie le regulateur à l'entrée 12V. Le 5V permet de faire fonctionner la partie logique du L298. Si tu as 5V sur le "input 5V" c'est normal puisque la sortie du régulateur est logiquement relié à 5V input. D'ailleurs il est possible d'alimenter l'arduino par ce biais.

Relis mon précédent post : si tu mets IN1 et IN2 à HIGH le moteur sera au même potentiel (VCC) donc il ne va pas tourner. C'est soit IN1 high IN2 low ou bien IN1 low et IN2 high pour tourner dans l'autre sens.

Ok pigé pour la différence de potentiel. Par contre si je veux faire varier la vitesse, je dois brancher IN1 sur une sortie PWM, IN2 étant elle simplement sur une sortie logique ?

C'est un servo avec un encodeur !
Pas un servo de modèle réduit, un vrai industriel.
Ca se commande en courant avec une boucle de régulation PID .
On peut l'utiliser en tout ou rien mais en veillant à limiter le courant.
Chez Microchip, il y a une note d'application décrivant la mise en oeuvre d'un servo avec un pic.

Avec un L298 on peut utiliser la sortie "current sense" pour piloter un PWM via une entrée analogique.

alienboats:
C'est un servo avec un encodeur !
Pas un servo de modèle réduit, un vrai industriel.
Ca se commande en courant avec une boucle de régulation PID .
On peut l'utiliser en tout ou rien mais en veillant à limiter le courant.
Chez Microchip, il y a une note d'application décrivant la mise en oeuvre d'un servo avec un pic.
http://ww1.microchip.com/downloads/en/AppNotes/00532c.pdf
Avec un L298 on peut utiliser la sortie "current sense" pour piloter un PWM via une entrée analogique.
http://www.st.com/internet/analog/product/63147.jsp

Sauf mauvaise interprétation de ma part je suis pas d'accord : un servo a une réponse linéaire, la c'est du +/- 45°C. Et à 3 rpm, la régulation PID ça sera pas la peine !

elgranjuego:
Ok pigé pour la différence de potentiel. Par contre si je veux faire varier la vitesse, je dois brancher IN1 sur une sortie PWM, IN2 étant elle simplement sur une sortie logique ?

Tout dépendra du sens de rotation !

Basiquement, un servo c'est un moteur et un encodeur.
L'encodeur permet de connaitre :

  • le sens de rotation (dès fois qu'on se gourre dans la commande)
  • la vitesse
  • l'accélération
  • la position (en comptant les pulses)
    L'encodeur est relié au moteur en direct, avant démultiplication donc pour une sortie à 3 tr/mn on aura plusieurs centaines d'impulsions.
    Pour pouvoir positionner quoi que ce soit il faut au minimum compter les tours soit avec une phase de l'encodeur si on est sur du sens de rotation, soit avec les deux pour compter en + et en -. Il faut aussi connaitre le rapport de réduction ou la règle liant les tours moteurs à la position du dispositif asservi. Il faut aussi pouvoir définir une référence (le zero).

On peut commander le moteur avec une tension fixe, sans régulation de courant.
Il y a deux risques :

  • au démarrage, une pointe de courant due à l'inertie du système.
  • à l'arrêt, une pointe de courant liée à l'inductance du moteur (les diodes de roue libre sont là pour ça) et à l'inertie du système (le moteur se transforme en générateur)

Avec un L298, il faut éviter les surchauffes. A moins de 2A pas de pb si le radiateur est suffisant et bien ventilé.

On peut choisir de moduler soit par les entrées EN soit par ABCD . les documents ST décrivent les avantages et les inconvénients de chaque solution.

Bonjour,

Bon grâce à vos explications, j'ai réussi à avancer et j'arrive à faire tourner mon moteur, merci :).
En revanche j'ai encore une inconnue... bizarrement je n'ai pas de tension en sortie de mes 2 bornes de mon L298N... mais entre une des sorties et la masse commune... Comment est-ce possible ?

Merci !

Bon finalement j'ai réussi à cramer ma carte L298 :slight_smile:
Finalement je suis parti sur une légèrement différente mais avec les mêmes fonctions. En revanche pour celle-ci la doc est claire et sans ambiguité :
http://www.seeedstudio.com/depot/datasheet/L298%20Dual%20H-Bridge%20Motor%20Driver%20datasheet.pdf

Pour une tension de 24v en entrée :

  1. Enlever le cavalier d'alimentation logique 5v
  2. Alimenter l'entrée 5v logique depuis la sortie 5v de l'Arduino
  3. Brancher l'alim 24 v à l'entrée du bornier de la carte L298
  4. Mettre évidemment une masse commune
  5. Brancher le moteur sur le bornier