Contrôler un moteur Brushless

Les moteurs Brushless sont de plus en plus fréquemment utilisés en raison de leurs performances nettement supérieures à celles des moteurs à courant continu « classiques ».

Mais contrairement à ces derniers, leur commande est plus complexe, étant donné qu’il s’agit de moteurs synchrones : il faut générer 3 signaux de fréquence multiple de la fréquence de rotation, et déphasés de 120° :

Voir/Télécharger l’application sur Geogebra

Il est possible de les contrôler à l’aide d’un Arduino de manière plus où moins complexe …

Utilisation d’un ESC

C’est la méthode la plus simple, car un ESC (Electronic Speed Control) est un circuit électronique dédié au contrôle de moteurs électriques.

Ils possèdent un microcontrôleur (parfois paramétrable), un circuit de puissance (régulation, pont en H, …) et dans le cas des moteurs brushless, un dispositif d’acquisition. Ils permettent de gérer :

  • la vitesse angulaire
  • la direction
  • le freinage

Ils sont couramment utilisés dans les systèmes radio-commandés et par conséquent possèdent une interface de commande de type servomoteur.

Câblage

Les ESC possèdent une interface de commande de type servomoteur à 3 fils (voir contrôle d’un servomoteur). Les deux fils d’alimentation (noir/marron et rouge) sont sensés être utiliser pour alimenter les autres composant reliés au même système, généralement reliés au même récepteur d’une radiocommande.

Le connecteur rouge de l’ESC ne doit être connecté au 5V de l’Arduino que si la tension fournie par l’ESC est compatible avec ce dernier ! (souvent, les ESC fournissent 3.3V seulement : un Arduino UNO devra par conséquent posséder sa propre source d’énergie).

sources : http://robotic-controls.com/learn/projects/dji-esc-and-brushless-motor

Programmation

#include <Servo.h>

Servo esc;   // Création de l'objet permettant le contrôle de l'ESC

int val = 0; // 

void setup() {
   esc.attach(9); // On attache l'ESC au port numérique 9 (port PWM obligatoire)
   delay(15);
   Serial.begin(9600);

   // Initialisation de l'ESC
   //  (certains ESC ont besoin d'une "procédure d'initialisation"
   //   pour devenir opérationnels - voir notice)
   esc.write(0);
   delay(1000);
   esc.write(180);
   delay(1000);
   esc.write(0);

   // Quelques informations pour l'utilisateur
   Serial.println("Saisir un nombre entre 0 et 179");
   Serial.println("(0 = arret - 179 = vitesse maxi");
   Serial.println(" demarrage a partir de 20)");
   }

void loop() {
   if (Serial.available() > 0) {
      val = Serial.parseInt();   // lecture de la valeur passée par le port série
      Serial.println(val);
      esc.write(val);            // 
      delay(15);
      }
   }

ATTENTION : certains ESC ne sont opérationnels qu’après une procédure d’initialisation … bien lire leur mode d’emploi !

 

Contrôle par pont en H

Contrôle en vitesse

 

 

Contrôle en position

Dans leur très grande majorité, les ESC sont prévus pour une obtenir une rotation continue. Mais pour certaines applications on peut avoir besoin de réaliser un asservissement en position.

La solution suivante permet de réaliser le contrôle d’un moteur brushless comparable à celui d’un moteur pas à pas.

sources : http://www.instructables.com/id/DIY-Brushless-Gimbal-with-Arduino/?ALLSTEPS

http://www.instructables.com/id/Brushless-Gimbal-with-Arduino/?ALLSTEPS

Vous aimerez aussi...

11 réponses

  1. Manani Mouloud dit :

    Votre site est tres interressant je voudrais connaitre comment controler un brushless pour gerer la position et la vitesse avec arduino et pont en h

    • cfaury dit :

      Bonjour
      Les solutions pour faire un contrôle de bas niveau sur un moteur Brushless sont décrites dans les liens en bas de l’article.
      Quand j’aurai un peu de temps, je ferai un résumé et une adaptation particulière …

  2. VictorM dit :

    Super, un article très intéressant !
    Si le contrôle d’un moteur brushless est assimilable au contrôle d’un servomoteur, comment faire reculer le moteur ?

    Merci

  3. abida dit :

    bonjour
    je veux savoir est ce que obligatoire d’alimenter le ESC par une batterie LiPo
    merci

    • cfaury dit :

      Bonjour
      Absolument pas. On peut utiliser n’importe quelle alimentation, pourvu de respecter les tensions admissibles par l’ESC.

  4. florent bonnard dit :

    Bonjour
    J’ai récupéré des moteurs de drone parrot 2.0.
    Il y a 5 entrées sur le contrôleur puis 3 fils qui entrent dans le moteur.
    connaissez vous les branchements et tension sur ce moteur ?
    merci

Laisser un commentaire

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