Accueil / Actualités / Nouvelles de l'industrie / Moteur BLDC avec Arduino : guide de câblage, de code et de contrôle
Nouvelles de l'industrie
Notre empreinte s’étend sur le monde entier.
Nous fournissons des produits et services de qualité aux clients du monde entier.

Moteur BLDC avec Arduino : guide de câblage, de code et de contrôle

Comment un ESC permet à Arduino de contrôler un moteur BLDC

Un Arduino ne peut pas piloter directement les trois phases d'un moteur BLDC - il n'a pas la capacité de courant ni la logique de commutation intégrée. Ce travail incombe à l'ESC (Electronic Speed Controller), qui se trouve entre l'Arduino et le moteur, convertissant un simple signal PWM en une commutation triphasée temporisée qui fait réellement tourner le rotor.

Du point de vue de l'Arduino, un ESC ressemble exactement à un servo RC standard. Il s'attend à une impulsion comprise entre environ 1 000 et 2 000 microsecondes, répétée toutes les 20 millisecondes, où la largeur d'impulsion correspond à la position du papillon. C'est pourquoi le même Bibliothèque d'asservissements utilisé pour les servos de loisirs fonctionne pour le contrôle ESC - l'Arduino ne parle pas du tout au moteur, il parle au microcontrôleur intégré de l'ESC, qui gère la commutation réelle.

Câblage d'un Arduino à un moteur BLDC via ESC

Les trois fils du moteur de gros calibre se connectent directement du moteur BLDC aux sorties triphasées de l'ESC - l'ordre des connecteurs n'a pas d'importance pour la direction à ce stade, car l'échange de deux fils inverse simplement la rotation. L'alimentation du moteur (généralement une batterie LiPo adaptée à la tension nominale du moteur) se connecte aux fils d'entrée du ESC, et non à l'Arduino.

Le côté signal est plus simple : un seul fil PWM reliant une broche numérique Arduino à l'entrée de signal de l'ESC, plus une masse partagée entre l'Arduino et l'ESC. La plupart des ESC incluent un BEC (Battery Eliminator Circuit) sur ce connecteur de signal, qui fournit un 5 V régulé à l'Arduino - ce qui signifie qu'une alimentation séparée pour la carte n'est généralement pas nécessaire tant que la sortie BEC de l'ESC est conçue pour la consommation de courant de l'Arduino.

Code Arduino pour le contrôle de vitesse de base

Avec le câblage en place, le code lui-même est court. La bibliothèque Servo traite l'ESC comme un servomoteur et la vitesse est cartographiée sur la même plage 0-180 que la bibliothèque utilise pour l'angle :

  • Fixez la broche du signal ESC à l'aide ESC.attach(9, 1000, 2000) , en définissant explicitement la plage de largeur d'impulsion
  • Lire un potentiomètre sur une broche analogique pour le contrôle manuel de la vitesse
  • Cartographiez la lecture analogique 0-1023 jusqu'à la plage 0-180 attendue par l'ESC.
  • Écrivez cette valeur mappée avec ESC.write (vitesse) à l'intérieur de la boucle principale

Ce modèle fonctionne parce que le format du signal sous-jacent est identique à celui d'un servo amateur, comme documenté dans le Référence de la bibliothèque Arduino Servo , ce qui explique la synchronisation des impulsions et les restrictions de broches sur lesquelles s'appuie la bibliothèque.

Armement et calibrage de l'ESC

La plupart des ESC ne font pas tourner le moteur immédiatement après la mise sous tension : ils s'attendent d'abord à une séquence d'armement, généralement déclenchée en maintenant le signal de l'accélérateur au minimum pendant une seconde ou deux après le démarrage. Sauter cette étape est la raison la plus courante pour laquelle un moteur semble démarrer brièvement à la mise sous tension, puis s'arrêter : le contrôleur attend un signal de bas régime valide avant d'accepter les commandes.

L'étalonnage définit la compréhension de l'ESC de la largeur d'impulsion minimale et maximale pour qu'elle corresponde à ce que l'Arduino envoie réellement. Alimentez l'ESC avec le signal d'accélérateur déjà au maximum, attendez les bips de confirmation, puis descendez au minimum et attendez à nouveau - cela apprend à l'ESC les points finaux exacts produits par votre code, plutôt que de vous fier aux paramètres d'usine qui peuvent ne pas correspondre à la plage cartographiée de votre potentiomètre.

BLDC avec ou sans capteur : pourquoi cela change la configuration de votre Arduino

Tout ce qui précède suppose un moteur BLDC sans capteur associé à un ESC disponible dans le commerce - la configuration la plus courante pour les amateurs et la raison pour laquelle la plupart des didacticiels l'utilisent par défaut. L'ESC détecte la position du rotor à partir de la force contre-électromotrice générée dans la phase non alimentée, ce qui fonctionne bien une fois que le moteur tourne, mais signifie que le moteur a besoin d'une brève rampe de démarrage en boucle ouverte avant que l'ESC puisse se verrouiller sur la synchronisation BEMF.

Un moteur BLDC détecté ajoute trois capteurs à effet Hall qui signalent directement la position du rotor, même à zéro tr/min. Cela élimine la rampe de démarrage et donne un contrôle plus fluide à basse vitesse, mais cela signifie également que l'ESC ou le contrôleur doit avoir des entrées de capteur Hall - un ESC sans capteur simple n'a aucun câblage pour eux. Si un projet nécessite un couple précis à basse vitesse ou des démarrages et arrêts fréquents, l'achat dès le départ d'un moteur détecté et d'un contrôleur compatible Hall évite de retravailler la configuration de contrôle ultérieurement.

R5 Fast response Brushless DC Motor Controller

Du prototype Arduino au contrôle moteur de production

Un ESC piloté par PWM est le bon outil pour prouver un concept : il est bon marché, bien documenté et ne nécessite aucun logiciel de configuration. Mais il a aussi de réelles limites : pas de retour de courant vers l'Arduino, une logique de protection minimale et une résolution de contrôle liée à une fenêtre d'impulsion de 1 000 à 2 000 microsecondes qui ne s'adapte pas bien une fois que le contrôle du couple, la régulation de la vitesse en boucle fermée ou le rapport de défauts deviennent des exigences.

Lorsqu'un projet passe du stade du prototypage à celui d'un produit opérationnel, l'étape suivante habituelle est un contrôleur qui communique via un bus numérique plutôt que via une seule ligne PWM. une interface de débogage UART-TTL utilisée pour configurer les contrôleurs de moteurs de production joue ici un rôle similaire à celui du moniteur série Arduino : il vous permet de lire les paramètres et d'ajuster le comportement directement plutôt que de deviner uniquement à partir des largeurs d'impulsion.

Pour les équipes qui ne disposent plus d'ESC de loisir, un point d'entrée dans les contrôleurs de moteur BLDC programmables par bus CAN d'APT offre le type de limitation de courant configurable et de diagnostics qu'un ESC de base n'expose tout simplement pas. Les applications nécessitant une réponse plus stricte (bras robotiques, mécanismes actionnés, tout ce dont la charge évolue rapidement) sont mieux servies par un contrôleur BLDC à réponse rapide conçu pour les applications en boucle fermée en temps réel plutôt qu'un ESC de loisir en boucle ouverte.

Étant donné que les spécifications du contrôleur et du moteur doivent s'aligner sur la compatibilité de la tension, du courant et du capteur Hall, cela vaut la peine d'être examiné. conseils d'appairage du contrôleur et du moteur pour faire correspondre l'électronique d'entraînement aux spécifications du moteur avant de vous engager sur du matériel pour une exécution en production. Cela vaut également la peine de comprendre comment les couches logicielles remodèlent le contrôle moteur moderne , puisque le réglage au niveau du micrologiciel est de plus en plus ce qui sépare un bon contrôleur de production d'un contrôleur simplement adéquat.



Vous êtes intéressé par une coopération ou vous avez des questions ?
  • Soumettre la demande {$config.cms_name}