Variation de vitesse de moteur continu avec un arduino

PWM
Share Button

Le besoin de faire varier la vitesse de rotation d’un moteur continu est fréquente dans des projets de robotique. Il existe plusieurs solutions, je verrais ici un montage à base de pont de darlington.Dans le cadre d’un projet de robotique, j’ai besoin de faire varier la vitesse de rotation de 4 moteurs à courant continu. Nous allons utiliser un montage à base de pont de Darlington et utiliser les sortie PWM (pulse width modulation).Pour ce projet, j’ai besoin de commander de manière indépendante 4 moteurs à courant continu (le projet sera décrit dans un autre article qui sera accessible sur cette page, en attendant c’est une surprise).Bien entendu, il est très facile d’utiliser cet article pour n’avoir d’un seul moteur.

Matériels utilisés

Pour cet article, j’ai utilisé les éléments suivants :

Description des différents composants

Je ne vais pas rentrer dans les détails pour chaques éléments

L’arduino

Il s’agit du microcontrôleur qui pilotera les moteurs. Nous allons utiliser les sortie PWM pour faire varier la vitesse des moteurs. Les broches de l’arduino pouvant utilisées le PWM sont : 3, 5, 6, 9, 10 et 11 (donc nous avons la possibilité de commander jusqu’à 6 moteurs.

Le PWM (pulse width modulation)

La modulation de la largeur d’impulsion (MLI ou PWM), est une technique pour obtenir des effets d’allure analogique avec des broches numériques. Le contrôle numérique est utilisé pour créer une onde carrée, un signal basculant entre un niveau HAUT et BAS, 0V et 5V. Cette succession de niveaux HAUT/BAS peut simuler des tensions entre le niveau HAUT (5 Volts) et le niveau BAS (0 Volts) en faisant varier la proportion du temps où le signal est HAUT sur la proportion de temps où le signal est BAS. La durée du temps du niveau HAUT est appelé largeur d’impulsion, ou encore “duty cycle” (cycle de travail en français). Pour obtenir une variation analogique, il suffit de changer ou de modifier cette largeur d’impulsion. En répétant la succession de niveaux HAUT/BAS assez rapidement avec une LED par exemple, le résultat est semblable à celui que l’on obtiendrait en contrôlant la luminosité de la LED avec une tension régulière entre 0 et 5V. (source : mon-club-elec.fr).

pwm

pwm

Les moteurs à courant continu

Les moteurs courant continu sont des convertisseurs de puissance :Soit ils convertissent l’énergie électrique absorbée en énergie mécanique lorsqu’ils sont capables de fournir une puissance mécanique suffisante pour démarrer puis entraîner une charge en mouvement. On dit alors qu’ils ont un fonctionnement en moteur.Soit ils convertissent l’énergie mécanique reçue en énergie électrique lorsqu’ils subissent l’action d’une charge entraînante. On dit alors qu’ils ont un fonctionnement en générateur.

  • En mode « moteur », l’énergie électrique est convertie en énergie mécanique.
  • En mode « générateur » ou « dynamo », l’énergie mécanique est convertie en une énergie électrique capable de se comporter comme un frein.

Je vous invite à aller visiter le site eskimon.fr.

Les diodes

Dans notre cas, les diodes serviront de protection à notre montage (diode de roue libre). Lorsque le moteur décélérera, il fonctionnera en tant que générateur, un courant sera donc induit, pour protéger le circuit en évacuant ce courant, la diode laissera passer ce courant.

Les condensateurs

Les condensateurs dans notre montage aura pour but de supprimer les parasites qui seront créés par la commande en modulation de largeur d’impulsion (PWM) et ce afin de protéger notre circuit et la diode lors des chamgements rapides sur les états créés par la PWM.

Le circuit intégré de pont de Darlington (ULN2004)

L’arduino n’est pas capable de fournir une intensité suffisante pour faire fonctionner les moteurs (dans mon cas, les 4 moteurs alimentés sous 5V consomment 0.2A), nous allons donc passer par ce montage qui permettra de fournir l’énergie nécessaire.Je vous passe un lien de sa documentation : datasheet.Nous avons 7 entrées/sorties disponibles.Nous aurions très bien pu utiliser un L293D pour remplacer l’ULN2004 mais les résultats que j’ai obtenu ne me satisfaisaient pas.

Le potentiomètre

Dans notre cas, il permettra de régler la vitesse de rotation en faisant varier la tension au borne d’une entrée analogique (voir le site d’eskimon.fr pour plus de détails).

Le montage de contrôle de variation de la vitesse des moteurs à courant continu

Ces petits rappels fait, voici le câblage :

commande de la variation de vitesse de moteur à courant continu

commande de la variation de vitesse de moteur à courant continu

En regardant de plus près le câblage des moteurs, on voit qu’ils sont mis de telle sorte que deux tournent dans le sens horaire et deux autres dans le sens anti-horaire (besoin indispensable pour mon futur projet).Il est important de bien relier les masses.Il peut y avoir une seule alimentation, il faut juste s’assurer qu’elle ne soit pas trop importante en tension pour ne pas abîmée l’arduino (max 12V).Mes moteurs peuvent être alimenté avec une tension max de 9V, en ne leur appliquant une tension maximale de 5V, je limite simplement la vitesse de rotation maximum.

Le code arduino

Maintenant, voici le code à téléverser dans votre arduino :

Ne vous reste plus qu’à câbler avec ou sans modifications et à tester.

Share Button

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *