Si vous cherchez à faire varier la vitesse d’un moteur, rien de tel qu’un ESC ! Car l’ESC (ou « Electronic Speed Controller », en anglais) est en fait un « variateur électronique de puissance ». Largement utilisé en modélisme, vous avez peut-être déjà entendu parlé de lui ! Mais savez-vous exactement comment le câbler au reste ? Et quel modèle choisir, parmi tous ceux proposés ? Ou plus simplement, comment piloter un ESC depuis un Arduino ? C’est justement ce que je vous propose de découvrir aujourd’hui !
Mais tout d’abord, nous alors revoir certaines bases, pour ceux qui ne seraient pas familiers avec les ESC ! Nous verrons ainsi leurs caractéristiques en détail, leurs différents types de connecteurs de raccordement, et quel modèle choisir, en pratique. Enfin, histoire de s’amuser, nous verrons ensemble un exemple de programme Arduino, permettant de piloter un moteur brushless, via un ESC, avec un simple potentiomètre 😉
Comme toujours : n’étant ni un expert en la matière, ni un pro du modélisme, gardez toujours à l’esprit que ce que je vous partage ici est seulement le fruit de mes connaissances, complété avec des recherches complémentaires sur le sujet. Il se peut donc que certaines choses soient incomplètes, ou qu’il y ait des petites erreurs ou imprécisions. Si tel est le cas, n’hésitez pas à m’en faire part en bas de page, au travers de la zone commentaire ! Merci à vous !
Qu’est-ce qu’un ESC exactement ?
Comme vu en intro, un ESC (acronyme de « Electronic Speed Control », en anglais) est tout simplement un variateur de vitesse électronique. Ce dispositif est donc, avant tout, un régulateur électronique de puissance, pour moteur électrique. Sa particularité, cependant, est de ne pouvoir que piloter des moteurs à courants alternatifs (de type brushless triphasés, par exemple), à partir d’une source en courant continu (batterie LiPo, par exemple).
Un contrôleur ESC se présente généralement sous la forme d’une « petite » boîte rectangulaire, dont plusieurs fils entrent et sortent de chaque côté. C’est à peu de choses près toujours fait de la même manière, à ceci près que parfois, vous trouverez quelques variantes (un ventilateur de refroidissement ajouté dessus, des condensateurs de puissance ou un régulateur de tension déportés à côté, …).
Les fils présents autour de l’ESC lui permettent de principalement de venir s’intercaler entre la batterie fournissant l’énergie électrique, et le moteur à piloter, comme visible ci-dessous (les fils véhiculant le plus de courant étant bien évidemment ceux de plus forte section) :
Mais ce que cette image nous dit aussi, c’est qu’un ESC permet de gérer de très forts courants électriques (ceux du moteur), tout en étant commandé par de tous petits courants (issus d’un récepteur radio, par exemple). Car oui, la plupart du temps, les ESC sont commandés par des récepteurs radio, tels qu’on en trouve couramment en modélisme (sur les avions, drones, voitures, bateaux, hélicos, …).
Bien entendu, un ESC peut également être commandé par tout autre dispositif « à bas courant », si tant est que le protocole de communication du variateur électronique est respecté (c’est d’ailleurs ce que nous verrons ensemble un peu plus bas, en commandant un ESC directement depuis un Arduino Nano !).
Les caractéristiques principales des ESC (courant max, BEC, type de batterie, connecteurs, …)
Nous allons voir ici toutes les caractéristiques principales de l’ESC, figurant la plupart du temps sur l’étiquette apposée par le fabricant, sur le corps du régulateur en lui-même. Bien sûr, si celles-ci sont absentes ou pas suffisamment de confiance, il vous faudra impérativement récupérer la documentation du variateur de puissance, afin de retrouver ces caractéristiques précises.
Le courant maximum supportable
La première indication que l’on trouve généralement sur un ESC, est son courant maximum admissible. C’est une valeur généralement écrite en « très gros », sur le contrôleur en lui-même. Cette valeur désigne un courant ; elle est donc exprimée en ampères (A).
Ce courant correspond en fait à ce que peut supporter l’ESC en continu (en permanence ou sans interruption, je veux dire). Par contre, cela n’empêche pas le régulateur de pouvoir « encaisser » quelques pics de courants, du moment que celles-ci restent brèves, et non prolongées. Bien sûr, cela sera différent d’un ESC à l’autre. C’est pourquoi vous devrez retrouver/vérifier les caractéristiques précises de votre ESC, pour savoir ce qu’il est capable de supporter en continu, et en pic (pointes de courant, brèves). Dans tous les cas, n’agissez pas au hasard, sinon gare aux surprises !
Au passage, même si le courant maximal admissible par un ESC n’est pas normalisé en soi, les valeurs qu’on trouve couramment dans le commerce vont de 5 ampères en 5 ampères (pour les « petites intensités »), puis de 30 en 30. C’est ainsi que, la majeure partie du temps, le courant MAX d’un ESC peut être égal à 20A, 25A, 30A, 35A, 40A, 45A, 50A, … voir 60A, 90A, 120A, … ou plus encore ! Cela étant dit, dites-vous que ce n’est pas une règle en soi, car vous pourrez peut-être trouver quelques valeurs « intermédiaires » (comme du 70A par exemple, pourquoi pas !).
Le BEC (ou UBEC)
La seconde indication, que l’on retrouve couramment inscrite sur les ESC, est le BEC (soit le « Battery Eliminator Circuit », en anglais). En fait, sous ce terme bizarre se cache tout simplement un dispositif permettant de fournir du courant à la partie commande, depuis l’ESC. Et donc, sans que la partie commande n’ait besoin de se repiquer sur la batterie, pour s’alimenter (d’où le terme de « circuit d’élimination de la batterie »).
Physiquement, le BEC est matérialisé par 3 petits fils de couleurs, sortant de l’ESC, et à destination de la partie commande. Ces fils sont de couleur :
- Rouge pour le +5V (d’où l’on peut tirer du courant, pour alimenter la partie commande). À noter que cette tension n’est pas forcément de 5 volts (mais est généralement comprise entre 5 et 6V).
- Noir ou marron pour la masse (le 0V, donc)
- Et blanc ou jaune pour le signal de communication avec l’ESC (signal PWM)
Aussi, pour connaître la tension et le courant pouvant être délivré par le BEC intégré à l’ESC, pour alimenter la « partie commande », il suffit pour cela de lire l’étiquette posée à même le corps de l’ESC (car c’est généralement spécifié dessus). Par exemple : si vous voyez écrit « BEC 5V/2A » sur votre ESC, alors vous saurez que cela signifie que le BEC de cet ESC sort une tension de 5V sur le « petit fil rouge », pour votre partie commande, et que sur cette tension, vous pourrez tirer jusqu’à 2A maximum dessus (ce qui suffit largement, normalement, pour la plupart des montages courants, en modélisme).
Par contre, je vous conseille de bien rester en dessous de ce que peut fournir votre ESC, en terme de courant, que ce soit au niveau de la sortie moteur, que du BEC pour alimenter votre partie commande. Car un refroidissement insuffisant de l’ESC ou un fonctionnement à ses limites pourrait rapidement l’amener à surchauffer, puis le conduire à sa destruction. C’est pourquoi, perso, j’évite de dépasser les 2/3 du courant que celui-ci peut fournir, dans la mesure du possible. Sinon, vous risquez fort de raccourcir la durée de vie de votre ESC, prématurément !
Maintenant, avoir un « BEC interne » à l’ESC peut être économique, mais pas forcément judicieux. Car si jamais votre ESC venait à « cramer », alors il y aurait fort à parier que votre BEC serait HS lui aussi. Et imaginez les répercutions que cela pourrait avoir sur un modèle réduit « volant », si vous perdiez toutes les commandes, en plus de celles du moteur ! Du coup, dans certains cas, il peut être intéressant d’avoir un « BEC externe » (pour « Universal » BEC, ou « UItimate » BEC), plutôt qu’un BEC intégré à l’ESC. Ainsi, dans le cas d’un avion, par exemple, vous pourriez manœuvrer le planage de l’avion pour le faire atterrir au mieux, malgré le moteur à l’arrêt. Cela étant dit, si votre ESC est bien dimensionné, et s’il est correctement refroidi, les chances qu’il crame sont théoriquement minces, fort heureusement !
Pour résumer, le BEC permet de fournir de l’énergie à la partie « commande » de votre modèle réduit. Ce BEC peut prendre différentes notations, selon s’il est intégré ou non à l’ESC, et suivant la façon dont il régule le courant. C’est ainsi qu’on retrouve les dénominations suivantes :
- Le « BEC » : lorsque celui-ci est intégré à l’ESC
- Le « UBEC » : lorsque celui-ci est hors de l’ESC (raccordé directement sur la batterie, en fait). On retrouve deux déclinaisons principales ici :
- Le « LBEC » (Linear BEC), doté d’un régulateur linéaire (ce qui génère pas mal de chaleur, mais qui à l’avantage d’être très économique à l’achat)
- Le « SBEC » (Switching BEC), doté d’un régulateur à découpage (dégageant moins de chaleur que le LBEC, mais souvent bien plus cher)
À noter que les termes UBEC et LBEC sont parfois confondus, et utilisés pour désigner la même chose. Pourquoi faire simple … 😉
La tension ou type de batterie acceptée
Bien évidemment, on ne pourra pas brancher n’importe quel format de batterie sur un ESC. Car ceux-ci sont prévus pour fonctionner dans une plage de tension donnée, uniquement. Mais rassurez-vous, car la plupart du temps, tout est indiqué sur l’étiquette apposée sur l’ESC en lui-même ! Et si jamais ce n’était pas le cas, demandez toutes les infos à la personne qui vous l’a vendu, ou mieux encore, essayez de retrouver le datasheet de cet ESC !
À noter que, généralement, la tension admissible en entrée n’est pas exprimée en volts, mais en « nombre de S » (c’est à dire un « nombre d’accus mis en série », dans la batterie à utiliser). Et que ce « nbre de S » est a interpréter en fonction du type de batterie que vous allez brancher dessus (lithium-ion, lithium-ion polymère, nickel-hydrure métallique, …).
Pour être plus explicite :
- Le « nombre de S » désigne, pour une batterie donnée, le nombre d’accus branchés en série, en interne de cette batterie. En sachant que :
- 1S veut dire qu’il y a 1 seul élément dans cette batterie (qu’un seul accu, donc)
- 2S veut dire qu’il y a 2 éléments branchés en série dedans (leur tension s’additionne)
- 3S pour trois accus en série, … et ainsi de suite !
- Et la technologie d’accus utilisable, qui est généralement du Li-ion, du Li-Po, ou du NiMH (en sachant qu’une mention « Li-xx » voudrait dire qu’on pourrait aussi bien brancher du Li-ion que du Li-Po)
Pour plus de clarté, rien de tel qu’un bon exemple, pour illustrer ! Alors… :
- S’il est écrit « Li-xx 2-3S » sur votre ESC
- Alors, cela veut dire que :
- Vous pourrez brancher dessus une batterie de type Li-Ion ou Li-Po (de par la présence de la mention « Li-xx »
- Et que cette batterie devra comporter 2 cellules minimum et 3 cellules maximum, en série (nota : si l’on se base sur une tension de cellule lithium à 3,7 volts, cela veut dire qu’on peut utiliser une batterie de 7,4V ou 11,1V, correspondant respectivement à du 2S et du 3S)
Autre exemple :
- S’il est écrit « 9-18 cell NiMH » sur votre ESC
- Alors cela voudra dire que :
- Vous pourrez brancher une batterie type NiMH dessus (Nickel-Métal Hydrure)
- Et que cette batterie devra comporter en interne entre 9 et 18 cellules en série (donc notée 9S à 18S, sur cet accu)
Les différents types de connecteurs, côté accu et côté moteur
Les ESC disposent de connecteurs tout autour d’eux. Ceux-ci concernent :
- L’alimentation de l’ESC en lui-même, qui servira à alimenter le moteur par la suite
- La sortie de l’ESC, pour alimenter le moteur, de manière contrôlée
- Et le connecteur de pilotage de l’ESC (pour contrôler la vitesse de rotation du moteur)
Ces connecteurs sont comme toujours de différents formats, comme on le constate souvent en modélisme. En effet, on retrouve :
- Les connecteurs en entrée d’ESC (alimentation depuis les accus), qui peuvent être de type :
- Connecteur XT, c’est-à-dire XT30, XT60, ou XT90 (le nombre placé derrière le « XT » indiquant le courant max admissible par ces connecteurs)
- Connecteur T-PLUG (ou T-dean), qui acceptent théoriquement jusqu’à 40A (beaucoup moins en pratique, notamment à cause des « copies » bon marché)
- Et plus rarement, les connecteurs EC (genre EC3, EC5, EC8), Tamiya, Traxxas, … et j’en passe !
- Les connecteurs en sortie d’ESC (vers le moteur) sont quant à eux généralement de type fiche banane (Ø3, 3.5, 4 mm, …) ; à noter que cette connectique peut être absente, lorsque les fils en sortie d’ESC sont directement soudés au fils du moteur
- Le connecteur BEC est pour sa part de type « JR », qui est en quelque sorte le format standard des servomoteurs les plus courants
Afin de pouvoir reconnaître ces connecteurs (ou tout du moins les plus courants), voici à quoi ils ressemblent, en image :
Nota : il faut bien comprendre que ce sont ici les connecteurs les plus courants, et non tous ceux qui existent exhaustivement sur le marché. Car il existe encore bien d’autres modèles, suivant les années !
La polarité des fils d’un ESC
Autre point important à aborder ici : la polarité des fils d’un ESC. Car, bien que ceux-ci soient de couleurs différentes, il n’y pas vraiment de standard, ni d’indication très claire. Du coup, lorsqu’on découvre les ESC pour la première fois, on peut se poser quelques questions (notamment au niveau des fils de sorties, qui sont parfois tous de la même couleur !).
Mais si je parle de polarité d’ESC ici, c’est également pour une autre raison. En effet, si jamais votre moteur ne tourne pas dans le bon sens, vous savez sûrement qu’il suffit généralement d’inverser la polarité de son alimentation, pour qu’un moteur tourne dans l’autre sens. Mais avec un ESC, doit-on alors inverser la polarité des fils d’alimentation, provenant de l’accu ?
Eh bien… la réponse est : SURTOUT PAS ! En effet, une des premières choses à savoir est qu’on doit toujours respecter la polarité d’entrée d’un ESC (l’alimentation positive sur le fil ROUGE, et la masse, sur le fil NOIR). Sans quoi, tout risque de partir en fumée ! Donc si jamais vous souhaitez inverser le sens de rotation de votre moteur, il faudra s’y prendre autrement 😉
En fait, pour inverser le sens de rotation d’un moteur, il suffit ici de permuter 2 des 3 fils de sortie d’un ESC. Car ce faisant, le signal triphasé alimentant le moteur se retrouvera « déphasé différemment », et engendrera toujours un sens de rotation différent du précédent. Du coup, pour faire tourner un moteur dans l’autre sens, il suffit simplement d’inverser 2 de ses 3 phases, donc 2 des fils entre eux.
En résumé :
- La polarité des fils d’entrée d’un ESC (alim côté accu) doit TOUJOURS être respectée (le + sur le rouge, et le – sur le noir)
- La polarité des fils de sortie d’un ESC (côté moteur) n’a pas d’importance, sauf à définir dans quel sens va tourner le moteur
Comment brancher un moteur brushless sur un ESC ?
Pour brancher un moteur brushless sur un ESC, rien de plus simple ! Car il suffit simplement de raccorder les fils entre eux (La Palisse n’aurait pas dit mieux !).
Et pour bien vous représenter cela, voici un exemple de branchement « accu → ESC → moteur brushless » :
En fait, il n’y a vraiment rien de bien compliqué ici ! Enfin… du moment où tous vos connecteurs sont de même format, au niveau de leur interconnections ! Car attention : certains accus peuvent par exemple avoir des connecteurs XT ou T-DEAN, et de même pour les ESC. Et bien évidemment, un T-DEAN ne peut pas se brancher sur un XT, et vice-versa ! Donc, faites bien attention au moment de vos achats, afin que tout soit parfaitement compatible, avec le reste !
Ah oui… et il faudra bien évidemment que tous vos éléments soient parfaitement bien « dimensionnés », avec le bon ampérage et tout ! C’est d’ailleurs ce que nous allons voir à présent.
Quel modèle d’ESC choisir ?
La question de « quel ESC choisir » revient souvent. Car on ne sait jamais vraiment trop quoi prendre, tellement il y a de choses à considérer. Mais parmi ces choses, il y en a une prépondérante. Il s’agit du courant max admissible, pour supporter le moteur à « plein régime ». C’est en fait la mention que l’on retrouve la plupart du temps écrite en « très gros », sur chaque ESC (par ex : 30A, 60A, …).
Du coup, pour choisir un modèle d’ESC, il faut tout d’abord savoir combien de courant va consommer votre moteur au maximum, avant tout. Et cela est fonction de plusieurs paramètres, dont, notamment :
- Le type d’hélice (propeller, en anglais), qui induira des frottements avec l’air, et fera donc s’élever l’intensité consommée par votre moteur
- La tension d’alimentation de votre moteur (8V, 12V, 16V, …)
- Et les caractéristiques propres à votre moteur (généralement communiquées par le fabricant)
Histoire d’être plus parlant, je vais vous prendre un exemple ! Imaginons ainsi que vous preniez :
- Un moteur A2212/10T 1400kV
- Avec une hélice 8060 (dont 8″ de diamètre, avec un pas de 6″)
- Et le tout alimenté par une batterie LiPo 3S, faisant 11,1 volts au nominal
Dans ce cas, pour connaitre le courant qui sera absorbé par le moteur, le plus simple est d’aller consulter la documentation du fabricant du moteur (si vous la trouvez, car ce n’est pas toujours évident). Dans le cas de cet exemple, voici ce que j’ai pu trouver sur le net, concernant le moteur que j’ai à mon niveau :
Ici, on voit que le fabricant spécifie une consommation de 20,6 ampères pour ce moteur, lorsque celui-ci est alimenté en 11,1 volts, et lorsqu’il est équipé d’une hélice faisant 8×6 (diamètre x pas, de l’hélice). Et attention, car comme vous pouvez le constater, une tension différente, ou une hélice différente, va fortement influencer le courant consommé par le moteur.
Aussi, il faudra toujours prendre un ESC dont le courant max admissible est « bien » supérieur au courant max consommé par le moteur branché dessus, histoire d’avoir une marge de sécurité, afin qu’il ne chauffe pas de trop. Dans notre exemple, où le moteur consomme jusqu’à 20,6 ampères, un ESC acceptant jusqu’à 30A est donc parfaitement adapté.
À présent, il faut bien comprendre que le courant maximum admissible d’un ESC n’est que l’une des caractéristiques à prendre en compte. En effet, il y en a d’autres, quand bien même celles-ci pourraient être considérées comme secondaires. Du coup, il ne faut donc pas oublier aussi que votre ESC soit :
- Adapté à votre accu (2S, 3S, 4S, … définissant la tension de l’accu, suivant le nombre d’éléments reliés en série, en interne)
- Adapté aux connectiques amont/aval, donc aussi bien côté accu (connecteur XT, T-PLUG, ou autre), que côté moteur (fiches bananes, par ex)
- Adapté au niveau du BEC (par ex : si vous avez besoin de 1A pour faire fonctionner votre récepteur et vos servos, alors un BEC 5V/2A pourrait convenir)
Nota : un autre moyen de déterminer le courant max absorbé par un moteur, est tout simplement … de le mesurer ! C’est ce que je vous propose de voir à l’occasion de l’exemple suivant, en utilisant une pince ampèremétrique DC (« spécial » courant continu, donc).
Exemple de code Arduino : pilotage d’un ESC à partir d’une sortie PWM !
À présent, voyons un exemple de pilotage d’ESC, à partir d’un simple Arduino ! Mais tout d’abord, il y a une chose à savoir, quant au signal à envoyer à l’ESC, pour faire varier la vitesse du moteur raccordé dessus.
En fait, le pilotage d’un ESC se fait de la même manière que celle d’un servomoteur. C’est-à-dire qu’il faut lui envoyer un signal de 50 Hz, de type 0/+5V, avec une « durée à l’état haut » (impulsion) comprise entre 1 et 2 ms, pour obtenir une vitesse comprise entre 0 et 100% de son potentiel.
Visuellement, voici quelle doit être la forme de ce signal, en image :
À noter que, comme évoqué juste avant, ce signal est de même type que celui servant au pilotage d’un servomoteur. C’est pourquoi nous pourrons nous servir de la librairie « Servo » disponible dans l’IDE Arduino, pour piloter un ESC. Du coup, il suffira d’inclure cette bibliothèque au début de notre programme arduino, en insérant la ligne habituelle : « #include <Servo.h> ». Ensuite, nous utiliserons la fonction « Servo.writeMicroseconds(xxx) » pour spécifier une valeur comprise entre 1 ms (soit 1000 µs), pour une vitesse moteur égale à 0%, et 2 ms (soit 2000 µs), pour une vitesse moteur égale à 100%.
Pour tester tout cela, je vous propose de partir du schéma suivant :
À noter que j’utilise ici :
- 1 x Arduino Nano v3
- 1 x potentiomètre linéaire de 10 kohms (WH148)
- 1 x batterie LiPo 2200 mAh 30C (branchement XT60 ou T-PLUG)
- 1 x ensemble ESC de 30A (branchement XT60 ou T-PLUG, également), avec moteur brushless type A2212 / 10T de 1400 kV (tournant donc à 1400 tours/minute, par volt d’alimentation), et hélice 8060 (donc diamètre de 8 pouces, et un pas de 6 pouces) → nota : attention de toujours prendre un connecteur de branchement compatible avec votre accu, suivant les dispos du fournisseur (XT60, T-PLUG, …)
- Le tout monté sur breadboard, et fils dupont pour les raccordements !
Dans le principe, le potentiomètre branché sur l’Arduino permettra de faire varier la vitesse du moteur de 0 à 100%, en transmettant un signal PWM approprié à l’ESC (sur la sortie D9), de fréquence 50 Hz, avec une durée d’impulsion comprise entre 1 et 2 ms (pour obtenir une plage de 0~100% en variation de vitesse moteur).
Au niveau du programme arduino en lui-même, voici ce qu’il contient :
/*
______ _ _///_ _ _ _
/ _ \ (_) | ___| | | | (_)
| [_| |__ ___ ___ _ ___ _ __ | |__ | | ___ ___| |_ _ __ ___ _ __ _ ___ _ _ ___
| ___/ _ \| __|| __| |/ _ \| '_ \_____| __|| |/ _ \/ _| _| '__/ \| '_ \| |/ \| | | |/ _ \
| | | ( ) |__ ||__ | | ( ) | | | |____| |__ | | __/| (_| |_| | | (_) | | | | | (_) | |_| | __/
\__| \__,_|___||___|_|\___/|_| [_| \____/|_|\___|\____\__\_| \___/|_| |_|_|\__ |\__,_|\___|
| |
\_|
Fichier : prgTestESC-1-arduino.ino
Description : Programme permettant de piloter un moteur brushless via un ESC
depuis un Arduino Nano, monté sur breadboard
Auteur : Jérôme TOMSKI (https://passionelectronique.fr/)
Créé le : 03.02.2022
*/
//*************************//
// Bibliothèques utilisées //
//*************************//
#include <Servo.h>
//**************************************************//
// Définition des entrées/sorties de l'Arduino Nano //
//**************************************************//
#define pinLecturePotentiometre A0 // [Entrée] Pour mesure de la tension du point milieu du potentiomètre de commande
#define pinPilotageESC 9 // [Sortie] On associe la ligne de pilotage de l'ESC à la broche D9 de l'arduino nano
// (on aurait très bien pu utiliser une autre pin, entre D2 et D13 compris, avec cette librairie)
//***************************************************//
// Définition de paramètres généraux de ce programme //
//***************************************************//
#define dureeMinimaleImpulsionCommandeESC 1000 // La durée minimale pour une impulsion est de 1000 µs, soit 1 ms (comme pour un servomoteur, en fait)
#define dureeMaximaleImpulsionCommandeESC 2000 // La durée maximale pour une impulsion est de 2000 µs, soit 2 ms (comme pour un servomoteur, idem donc)
//************************//
// Variables du programme //
//************************//
int valPinLecturePotentiometre; // Variable 16 bits où sera stockée la lecture 10 bits (0..1023) de l'ADC, du potentiomètre
int dureeImpulsionCommandeESC; // Valeur exprimée en microseconde, qui contiendra la durée de l'impulsion à envoyer à l'ESC
// Instanciation de la librairie "servo", pour piloter le module ESC
Servo moduleESC;
// ========================
// Initialisation programme
// ========================
void setup() {
// Configuration des pins de sortie de l'Arduino Nano
pinMode(pinPilotageESC, OUTPUT);
// Associe l'objet ESC à la broche de commande de l'ESC, avec précision des durées d'impulsion mini/maxi
moduleESC.attach(pinPilotageESC, dureeMinimaleImpulsionCommandeESC, dureeMaximaleImpulsionCommandeESC);
}
// =================
// Boucle principale
// =================
void loop() {
// Lecture de la tension retournée par le potentiomètre (valeur comprise entre 0 et 1023)
valPinLecturePotentiometre = analogRead(pinLecturePotentiometre);
// Conversion de cette valeur 0..1023, en une valeur comprise entre duréeMin et duréeMax de l'impulsion à produire
dureeImpulsionCommandeESC = map(valPinLecturePotentiometre, 0, 1023, dureeMinimaleImpulsionCommandeESC, dureeMaximaleImpulsionCommandeESC);
// Envoi du signal de commande à l'ESC
moduleESC.writeMicroseconds(dureeImpulsionCommandeESC);
// … et rebouclage à l'infini !
delay(100);
}
Afin d’éviter toute mésaventure, je vous conseille avant tout de :
- programmer l’arduino seul, sans quoi que ce soit raccordé à lui
- puis embrocher l’arduino sur la breadboard (une fois son cordon USB d’alimentation/programmation retiré)
- régler le potentiomètre de commande sur sa valeur minimale (pour qu’il délivre du 0 volt, sur l’entrée A0 de l’arduino nano)
- vérifier votre câblage scrupuleusement, avant tout mise sous tension
- et enfin, brancher votre accu LiPo sur l’ESC, pour alimenter le tout
Au passage : soyez extrêmement prudent lorsque vous manipulez des accumulateurs Li-Po, des ESC, ou des moteurs électriques (surtout avec hélice !). Car vous pourriez vous blesser sévèrement, si vous ne faites pas attention à ce que vous faites. Aussi, assurez-vous de :
– l’absence de tout court-circuit ou mauvais câblage, au niveau de vos branchements
– que tout soit bien dimensionné (ESC, câbles, connecteurs, …)
– que tout soit bien aéré, pour éviter tout échauffement excessif
– que votre batterie ne soit pas endommagée ou anormale (gonflée, par exemple)
– que votre moteur soit solidement fixé, sur un support non mobile
– et que l’hélice ne risque pas d’heurter quoi que ce soit, en tournant.
Et de manière plus généralement, faites très attention à vous, car les accidents sont vite arrivés …
Du reste, si tout est bien câblé et que vos éléments sont tous en état (batterie bien chargée, par exemple), vous devriez voir le moteur tourner, à une vitesse proportionnelle à la valeur de votre potentiomètre, présente sur l’entrée analogique de l’Arduino.
Le saviez-vous ? l’ordre de branchement des fils du moteur, en sortie de l’ESC, n’a aucune incidence électrique, si ce n’est sur le sens de rotation moteur en lui-même. N’ayez donc pas peur de le brancher comme bon vous semble. Et si jamais votre moteur venait à tourner dans le « mauvais » sens, alors il vous suffira de permuter 2 des 3 fils qui l’alimentent, pour inverser son sens de rotation.
Ah oui… pour revenir à la question du dimensionnement des ESC, vu précédemment, nous avons vu que tout dépend du courant max consommé par le moteur, lorsqu’il est à « plein régime ». Et un moyen simple de trouver la valeur de ce courant, est simplement de le mesurer ! Pour cela, il suffit de prendre un ESC « largement surdimensionné », de brancher le moteur dessus, et de faire un relevé d’intensité lorsque le moteur tourne à fond.
Pour arriver à faire ce relevé, il vous faudra une pince ampèremétrique DC, qui est « spécialement » conçue pour faire des mesures en courant continu (ATTENTION : la plupart des pinces ampèremétriques ne peuvent pas le faire, car elles se limitent à du courant AC, donc alternatif). À noter que l’hélice devra être montée sur le moteur, afin de bien simuler la charge de celui-ci, pour s’approcher au mieux de la réalité.
Voici le montage à réaliser, pour mesurer ce courant passant au travers de l’ESC :
Voici les valeurs que j’ai obtenu de mon côté, en faisant tourner le moteur à fond (à gauche le courant maximum mesuré, et à droite, la tension de la batterie à vide, avant essais) :
Instruments utilisés ici :
→ une pince ampèremétrique « spécial » courant continu, modèle HT208D de chez Kaiweets, permettant de faire des mesures en courant continu DC (attention, ce n’est généralement pas le cas des pinces ampèremétriques « classiques », qui ne mesurent que des courants alternatifs AC).
→ un voltmètre numérique KM601 de chez Kaiweets, pour mesurer la tension de l’accu 3S (faisant 11,1 volts au nominal)
Au final, on constate que le moteur équipé de son hélice consomme 13,61 ampères au moment de mes essais (branché sur un accu LiPo faisant 11,16 volts à vide). Bien évidemment, on est éloigné des 20,6 ampères donnés par le fabricant, mais c’est parfaitement justifié. Car la tension de l’accu LiPo chute forcément sous l’effet du courant. En fait, il aurait fallu que j’utilise une alimentation stabilisée délivrant 12 volts, quelle que soit la charge, afin de vérifier le courant max annoncé par le fabricant, pour ce moteur (et il y aurait fort à parier que j’aurai pu mesurer près de 20A de conso !).
Dans tous les cas, on s’aperçoit que notre ESC de 30 A convient parfaitement pour ce moteur, quand bien même celui-ci consommerait jusqu’à 20 A ! Car on dispose d’une marge de sécurité confortable, qui évitera toute surchauffe exagérée de l’ESC, en plein fonctionnement 😉
Que faire si le moteur ne tourne pas dans le bon sens ?
Pour ceux qui n’auraient pas lu tout ce qui précède en détail, voici ce qu’il faut de faire, si votre moteur ne tourne pas dans le bon sens.
La première idée qu’on pourrait avoir, serait d’inverser les fils d’alimentation de l’ESC (le rouge et le noir, autrement dit le + et le -, provenant de l’accu). Et c’est justement ce qu’il ne faudra JAMAIS FAIRE ! Sinon, tout pourrait bien partir en fumée !
Du coup, comment s’y prendre pour faire tourner le moteur « dans le bon sens », si celui-ci tourne « à l’envers », une fois alimenté. En fait, c’est assez simple ! Car il suffit de permuter non pas les 2 fils l’alimentation de l’ESC, mais tout simplement 2 des 3 fils de sortie de l’ESC. Car ces fils de sortie permettent d’alimenter le moteur électrique « à tour de rôle », en quelque sorte, de manière triphasée. Et il suffit donc d’inverser deux de ces trois fils, pour inverser le sens de rotation d’un moteur.
En effet, si vous permutez 2 des 3 sorties de l’ESC (autrement dit : 2 des 3 phases), vous inversez ainsi le sens de rotation du champ magnétique interne au moteur, et par conséquent, son sens de rotation effectif. C’est de cette manière que vous pourrez faire tourner votre hélice dans le sens que vous voudrez (donc n’ayez pas peur « d’inverser » des fils en sortie, car mise à part le changement de sens de rotation moteur, cela n’engendrera pas le moindre défaut électrique, ici !).
La sécurité anti-démarrage moteur des contrôleurs ESC
Les ESC sont généralement munis de bon nombre de dispositifs de sécurité, et en voilà un que vous devriez connaître : la sécurité anti-démarrage moteur. C’est ainsi que j’appellerai la sécurité interne à l’ESC, permettant d’interdire la mise en route du moteur raccordé dessus, si jamais le signal de commande n’était pas « à zéro », au démarrage.
En fait, cela permet d’éviter que le moteur ne se mette à tourner d’un seul coup, au moment où vous branchez votre batterie sur l’ESC (si jamais vous aviez oublié de couper la « manette des gaz », par exemple). En effet, imaginez ce qui pourrait se produire si, au moment où vous branchez votre accu, le moteur venait à tourner à fond … !
Du coup, pour éviter tout démarrage inattendu, le contrôleur ESC vérifie tout d’abord la présence d’un signal de commande « au repos ». Du coup, 2 cas de figure peuvent se présenter ici :
- si le signal de commande de l’ESC était au repos (soit une impulsion de 1 ms, à fréquence 50 Hz), alors le moteur sera déverrouillé au bout d’une seconde ou deux, et sera « prêt à servir »
- si le signal de commande de l’ESC n’était pas au repos (soit une impulsion de durée supérieure à 1 ms), alors le moteur restera verrouillé, tant que le signal ne reviendra pas « à zéro »
Ce dispositif est en fait « tout bête », mais permet d’éviter bien des surprises ! Et surtout, cela permet d’éviter de se blesser lors de la mise sous tension de l’ESC, si jamais la commande du moteur n’était pas à zéro !
Conseils et liens utiles
Parmi tous les conseils complémentaires que je pourrais vous donner, je dirais que :
- il faut que l’ESC soit le plus aéré possible, car il va chauffer (et parfois même, assez fortement) ; du coup, évitez de l’enfermer dans une « boîte hermétique », sinon, tout risque de fondre… ou pire !
- dans la mesure du possible, toujours opter pour un ESC « surdimensionné », afin de justement limiter tout échauffement ; bien entendu, ne pas prendre quelque chose de complètement surdimensionné, sinon cela vous reviendra plus cher pour rien, et aura certainement un rendement « médiocre ». Le compromis reste presque donc toujours le meilleur 😉
- faites bien attention à ne pas laisser des fils « volants » autour du moteur, sinon ceux-ci pourraient bien être endommagés par l’hélice, suivant comment ils sont positionnés (car ils peuvent être aspirés ou malmenés, avec le flux d’air)
- soyez toujours prudents en ce qui concerne les batteries, les ESC (qui peuvent fortement s’échauffer), et les moteurs (dont les hélices peuvent couper) ; car la moindre erreur peut coûter cher, alors soyez toujours d’une extrême vigilance, et agissez toujours avec discernement, avant tout
Nota : il existe des cartes de programmation pour paramétrer les ESC, sur certains modèles. Perso, je n’en ai jamais eu entre les mains, mais cela existe. En fait, ces cartes permettent de spécifier à l’ESC plusieurs paramètres, dont : le freinage moteur, le type de batterie/nombre d’éléments utilisé, la protection moteur, le mode de démarrage soft/medium/full, … et bien d’autres choses encore !
Enfin, voici en récap la liste des principaux composants et appareils utilisés dans mes essais, si cela vous intéresse :
- Une batterie LiPo 2200 mAh 3S (11,1 volts) 30C (branchement T-DEAN ou XT60)
- Un ensemble ESC 30A + moteur A2212/10T 1400kV + hélice 8060, et pour rappel : toujours bien faire attention à la compatibilité des connecteurs de raccordement entre accu et ESC (XT60, T-DEAN, …), à moins de vouloir jouer du fer à souder !
- Une pince ampèremétrique Kaiweets HT208D, « spécial » mesure de courants continus (le prix est un peu plus élevé qu’avec les pinces ampérométriques « classiques », qui sont limitées à de la mesure de courants alternatifs, la plupart du temps)
Conclusion
Voilà tout ce qu’il est bon de savoir au sujet des ESC, selon moi, pour faire vos premiers pas avec ! Une fois fait, n’hésitez pas ensuite à parcourir les forums parlant modélisme, pour avoir des précisions complémentaires sur tout ça, au besoin.
Sur ce : soyez prudents, encore et toujours, et amusez-vous bien !
À bientôt.
Jérôme.
À découvrir aussi : découverte du Transistor Mosfet (théorie et pratique !)
(*) Mis à jour le 16/09/2024
Beau travail !!
Merci de partager ces connaissances.
La programmation des variateurs est un sujet bien mystérieux, mais on trouve des infos à suivre.
Fabien
Bonjour,
Merci pour cet article super simple et bien détaillé, j’ai compris bien des choses en le lisant. Il me reste à expérimenter ces nouvelles notions 🙂
Bien à vous
Stéphane
Bonjour,
Une application intéressante qui associe l’arduino au modèlisme. Ce montage peut-être utilisé pour d’autres applications utilisant la variation de vitesse. Ceci dit, sujet très bien expliqué qui suscite l’intéret à la mise en oeuvre concrète et aux tests pratiques.
Jean-Lou
Super Jérôme
Article de qualité, j’ai un projet sui se rapproche de ton article donc pour moi il est très précieux 👍
Article de qualité. Merci
Bonjour et merci beaucoup pour ces explications simples, complètes et rare a trouver dans ce monde complexe !
Que ce passerait-il si l’on branchait une batterie avec plus de cellules que ceux notés sur l’ESC ?
Merci encore ^^
Salut Didier !
Si tu mets une batterie comportant plus de cellules que le nombre indiqué sur l’ESC, tu t’exposerais à endommager ton ESC et/ou ton moteur. Car cela induirait notamment un échauffement accru de ces composants, qui emmènerait tôt ou tard à leur destruction !
Donc à éviter … à tout prix !
Jérôme.
Merci pour cette excellent article
Bonjour, est il possible de brancher directement un potentiomètre sur les fils de commande, ou somme nous obligés de passer par l’intermédiaire d’une carte arduino ou autre ?
Salut Martin !
Non, on ne peut malheureusement pas brancher un potentiomètre directement sur un ESC. Car ce dernier ne se pilote pas avec un niveau de tension donné, mais bien à partir d’un signal PWM donné.
Après, bien évidemment, tout ce qui peut produire un signal PWM d’amplitude, de fréquence, et de rapport cyclique adéquat, peut convenir. Tu peux donner remplacer l’Arduino, que j’ai pris en exemple ici, par n’importe quoi d’autre, produisant le même type de signal !
Bonne journée à toi 😉
Jérôme.
Bonjour,
Merci pour toutes ces explications c’est clair et précis.
J’ai juste un question : est ce que je peux utiliser le même fichier de programmation avec mon Arduino UNO, qu’avec le NANO ?
Merci, bonne journée.
Salut Alexandre !
Oui, aucun soucis. Car on retrouve les sorties D2 à D13 utilisables pour piloter des servos avec cette librairie, aussi bien sur le NANO qu’un UNO.
Bonne journée à toi 😉
Jérôme.
Super article.
P’tite question : du coup le récepteur est alimenté par l’ESC ?
Salut !
Si tu veux, mais ce n’est pas obligé.
En fait, tu as 3 choix possibles :
Voilà. Bonne soirée à toi 😉
Jérôme.
Bonjour Jérôme,
Ton article est très intéressant, cependant je ne suis pas très bricoleur en électronique et je souhaiterai trouver un boitier complet, tout prêt, comprenant l’électronique et le potentiomètre prêt à être branché sur l’ESC.
Est ce que tu sais si cela existe? et ou?
Merci pour ta réponse
Pierre
Salut Pierre !
Tu as les testeurs de Servo (exemple de produit « tout-prêt », avec une photo te montrant le branchement). Je pense que cela pourrait correspondre à ce que tu recherches ! À voir 😉
Bon courage à toi,
Jérôme.
Que dire ? MERCI
Bonjour Jérôme,
L’ampérage délivré au moteur par exemple 60 Amp, c’est 60 Amp par fils ou l’ensemble des fils, se qui donnerais 20 amp par fils ?
Merci beaucoup
Salut !
Alors, avant tout, 60A n’est ce que délivre un ESC, mais ce qu’il peut supporter au maximum (c’est le moteur que tu vas brancher dessus qui va consommer de 0 à plusieurs ampères, sur l’ESC).
Sinon, pour répondre à ta question, ces 60 ampères sont théoriquement le courant max admissible pour « chaque fil » de l’ESC (entrée/sorties). En sachant qu’on fonctionne de manière triphasée côté moteur, et donc, par séquences/alternances au niveau des enroulements du moteur.
Espérant avoir bien répondu à ta question 😉
Jérôme.
Bonsoir
Merci beaucoup pour toutes ces explications c’est clair
J’ai apprécié l’article
Cordialement
John Kamasendwe
Merci pour toutes ces infos
C’est concis et précis
Bonjour,
Merci, super article qui détaille bien le fonctionnement de ces ESC.
Cependant, attention au début : « Sa particularité, cependant, est de ne pouvoir que piloter des moteurs à courants continus (de type brushless triphasés, par exemple). », les moteurs brushless sont des moteurs synchrones donc des moteurs avec une alimentation triphasée qui est alternative.
Killian
Oups, merci ! C’est bon, j’ai corrigé l’erreur !
Un grand merci à toi !!!
Bonne soirée,
Jérôme.
Bonsoir
Votre article expliquant le fonctionnement des ESC est très clair.
Juste 2 petites remarques concernant l’Arduino :
– On peut penser en lisant l’article qu’il est nécessaire d’utiliser une sortie PWM. Non ! Avec le script proposé, il est en fait possible d’utiliser n’importe quelle sortie digitale.
– Dans les chronogrammes, la durée indiquée entre les impulsions est de 20ms, ce qui est effectivement le « standard » pour commander les servo-moteurs et donc les ESC. Or dans la boucle loop vous avez placé un delay(100), ce qui provoquera une durée de 100ms entre les impulsions. Mais cela ne devrait pas empêcher le moteur de tourner !
Cordialement
Bonsoir à toi !
Alors : oui et non, sauf erreur de ma part, bien sûr !
Car :
– oui, la librairie utilisée ici (servo.h, native sous Arduino IDE) permet effectivement d’utiliser les broches D2 à D13 comprises, pour piloter des servos (hors alimentation de ces derniers, car l’arduino ne saurait fournir un tel courant d’alim)
– et non, les 100ms n’influent en rien sur le signal PWM envoyé à l’ESC, car ces 100ms sont une pause qui définissent le rythme de mise à jour du signal PWM. En clair : une fois toutes les 100 millisecondes, on relit l’état du potentiomètre, et on ajuste le rapport cyclique du signal PWM en conséquence avec la fonction « writeMicroseconds(xxx) » (qui a un nom trompeur ici, je l’avoue, car on pourrait croire que cela envoie juste une impulsion de xxx µs et puis plus rien, alors que c’est bien un signal cyclique perpétuel, ayant un état haut de cette durée, qui est généré)
Voilà ! Très bonne soirée à toi,
Jérôme.
Ooops !!
Ne tenez pas compte de mon message précédent J’ai lu trop vite et je n’avais pas vu que vous utilisiez la bibliothèque servo.h.
Mille excuses !!
JC
Ah ok, pas de soucis !!
Excellente soirée à toi !
Jérôme.
Salut Jérôme et à tous ! Je trouve enfin le mode de fonctionnement de ces alimentations de brushless !!
Merci !!! Pas facile de trouver cette info dans tout ce qui existe sur internet !!! …
Super ! Merci pour tous vos programmes et schéma
Bonjour Jérôme,
Article très intéressant et très pédagogique qui m’a permis de débroussailler un sujet relatif au fonctionnement d’un générateur de son de moteur basé sur arduino pour un véhicule RC. Je disposais d’un moteur DC relié via un L293D et je ne voyais comment faire fonctionner ce générateur qui attendait un signal identique à celui d’un servo. Chose résolue maintenant, merci !
Par contre je reviens sur le post de KJC concernant les broches de l’arduino fonctionnant avec les servos. Pourquoi uniquement la D9 ou la D10. Dans la doc arduino sur le site https://www.arduino.cc/reference/en/libraries/servo/, il est dit que l’on peut brancher jusqu’à 12 servos (donc entre la D2 et la D13) mais que la bibliothèque désactive la commande analogWrite() (PWM) sur les broches D9 et D10. Dons mon cas le générateur de son fonctionne aussi bien sur la D9 que sur la D7. Je n’ai pas encore essayé ton programme avec un couple ESC/moteur mais la restriction dont tu parles sur la D9 et D10 est elle liée uniquement à ce couple ?
Merci encore !
Frédéric
Salut Frédéric !
Oui, tu as parfaitement raison ! J’ai effectivement écrit une bêtise à ce niveau, bien vu ! Du coup c’est bon, c’est corrigé, merci 🙂
Car en effet, l’utilisation de la librairie Servo.h est un cas particulier, qui permet de générer des signaux PWM même sur les broches qui ne pourraient pas le faire nativement. On peut donc, comme tu le soulignes, utiliser les broches D2 à D13 pour émettre des signaux PWM, avec cette bibliothèque là !
Voilà ! Excellente journée à toi, et encore merci de ton retour !
Jérôme.
Afin de filtrer au maximum les messages de type "spam" ou "inappropriés", chaque commentaire est soumis à modération, et validé manuellement. Du coup, il se peut que certains commentaires ne soient pas publiés, ou sinon, avec un peu de retard. Par ailleurs, j'ai malheureusement plus de messages à traiter que de temps pour y répondre ; c'est pourquoi je ne pourrais pas répondre à tout le monde. Désolé …