Alimentation et contrôle des servomoteurs avec Arduino: guide détaillé

La plupart des servos ont trois fils - rouge, noir et marron (parfois blanc). Le fil rouge est généralement le fil d'alimentation +, le fil noir est le fil de mise à la terre - et le fil marron est le fil de signal. Connectez le fil d'alimentation du servo à la broche 5V de l'Arduino. Le fil de terre doit être connecté à la broche GND de l'Arduino. Connectez le fil de signal du servo à la broche numérique 9 de l'Arduino. Connectez l'Arduino à votre ordinateur pour télécharger le code.

Programmation et bibliothèque Servo

Programmez l'Arduino pour contrôler le servo. Cela peut être fait en utilisant la bibliothèque Servo d'Arduino.

Explication du code: Le code commence par importer la bibliothèque Servo.h, qui permet de contrôler un servo avec l'Arduino. Ensuite, un nouvel objet Servo est créé avec le nom "servoMotor".

Dans la fonction setup(), la broche de signal du servo est connectée à la broche 9 de l'Arduino à l'aide de la fonction attach().

Dans la fonction loop(), d'abord une impulsion est envoyée au servo avec la fonction write() pour le mettre en position médiane (90 degrés). Ensuite, une pause d'une seconde est définie à l'aide de la fonction delay(). Ensuite, une nouvelle impulsion est envoyée au servo avec la fonction write() pour le faire tourner dans le sens contraire des aiguilles d'une montre (0 degré).

Le servomoteur (souvent abrégé en « servo », provenant du latin servus qui signifie « esclave ») est un moteur capable de maintenir une opposition à un effort statique et dont la position est vérifiée en continu et corrigée en fonction de la mesure. Un servomoteur est un système motorisé capable d'atteindre des positions prédéterminées, puis de les maintenir. De manière semblable aux moteurs à courant continu, les servomoteurs disposent d’un axe de rotation qui est en revanche entravé par un système de bridage. Cela ne veut pas dire qu’il ne tourne pas, mais cela signifie qu’il ne peut pas tourner au delà d’une certaine limite.

Par exemple, certains servomoteurs ne peuvent même pas faire tourner leur axe de rotation en leur faisant faire un tour complet. Dans l'univers Arduino, le servomoteur est essentiellement utilisé dans les applications robotiques. Le servomoteur possède trois fils de connexion pour pouvoir fonctionner. La génération de ces signaux peut se faire avec les instructions de base du langage Arduino. Il existe cependant une bibliothèque Servo intégrée d'office dans l'IDE Arduino. Servo monservo. monservo.write(angle) où angle représente l'angle de rotation du servomoteur.

L’utilisation d’une carte Arduino et de servomoteurs peut être une tâche intimidante pour les débutants. Cependant, en comprenant les principes de base de l’utilisation des alimentations avec une carte Arduino et des servomoteurs, vous serez en mesure de réaliser des projets complexes et intéressants.

Alimentation des servomoteurs et sécurité

La tension d’alimentation d’un servomoteur standard, tel que le Futaba S3003, doit être comprise entre 4V et 6V continus (variable selon les modèles), régulé ou non. Ce mode de fonctionnement permet l’utilisation de plusieurs dizaines de servomoteurs standards sans risque pour la carte Arduino dans la limite de Imax alimentation / I fonctionnement servomoteur. Par exemple, dans le cas d’un Futaba S3003, une alimentation de PC fournissant 20A peut théoriquement alimenter 20A/0,120A = plus d’une centaine de servomoteurs !!

Pour commander 20 servomoteurs, il faut théoriquement une alimentation pouvant fournir 20 x 0,120A = 2.40 Ampères. Le servomoteur est un système complexe qui mélange mécanique et électronique: un réducteur réduit la vitesse et augmente le couple en sortie. Le rapport de réduction détermine le couple et la vitesse de sortie selon l’entrée, et ces données varient selon les modèles.

Le couple du servomoteur est exprimé dans diverses unités (par exemple kg.cm). Pour comprendre, rappelons la formule C = F × r, qui donne la relation entre le couple (C) et la force (F) appliquée à une distance (r) du pivot. Plus le bras est long, plus le couple nécessaire augmente pour soulever une même charge.

Dans la pratique, les servomoteurs ont des débattements variables: la plupart des sorties se situent entre 0 et 180°, certains limites à 90° ou 360°, et certains modèles « servo-treuils » ou « servomoteurs à rotation continue » qui permettent des tours illimités. Ils sont largement utilisés dans les applications robotiques, le pilotage des gouvernes, et divers systèmes de contrôle de position.

Comment piloter le servo avec PWM et la bibliothèque Servo

La consigne envoyée au servomoteur n’est autre qu’un signal électronique de type PWM. Le signal doit avoir une fréquence fixe de valeur 50Hz et une durée d’état HAUT (pulse width) définie par des valeurs entre 1 ms et 2 ms selon le modèle de servo. La Bibliothèque Servo fait partie des bibliothèques livrées avec l’IDE Arduino et ne nécessite donc pas d’installation séparée.

La bibliothèque permet de commander un ou plusieurs servos. Une Arduino peut alimenter un seul servomoteur sur la broche 5V, car les servos consomment beaucoup de courant et dépasseraient rapidement les capacités de l’alimentation et de la broche 5V de l’Arduino selon le modèle utilisé. Pour piloter plusieurs servos, il est nécessaire d’utiliser une alimentation séparée ou des circuits dédiés et de partager la masse (GND) avec l’Arduino.

Pour créer et manipuler des servos dans le code, on déclare une variable de type Servo et on utilise la méthode attach() pour associer le servo à une broche. La méthode write(angle) déplace l’axe à l’angle désiré. Par défaut, l’angle médian est souvent 90°, et la plage typique est 0° à 180°, mais certains servos supportent d’autres débattements selon leur conception et leur câblage.

La fréquence PWM standard Arduino n’est pas exactement de 50 Hz par défaut pour toutes les fonctions analogWrite(), mais des solutions existent pour générer le signal PWM approprié, soit via des bibliothèques, soit par réglages sur les timers. La bibliothèque Servo gère ces détails et permet d’anticiper les besoins PWM sans s’en soucier.

Techniques et conseils pratiques

  • Utilisez une alimentation externe pour plusieurs servomoteurs et connectez-les à l’Arduino, mais partagez la masse (GND) entre l’alimentation et l’Arduino.
  • Vérifiez le courant maximal supporté par votre carte et votre alimentation pour éviter les instabilités ou les dommages.
  • Préférez des servos compatibles 4,8 V à 6 V lorsqu’un système est alimenté par une source régulée ou un pack de batterie adapté.
  • Testez les angles et les délais dans le code pour calibrer avec précision les positions souhaitées lors de vos projets robotiques ou mécaniques.

Pour illustrer le fonctionnement, voici une image montrant le circuit type avec un servo et sa connexion à une carte Arduino, où la masse est partagée et le signal est envoyé sur une broche Numérique.

Schéma de connexion servo Arduino

En pratique, on peut créer des projets simples comme un bras robotisé ou des directions de roues, ou des applications plus complexes comme le pilotage de gouvernes sur un petit véhicule télécommandé. Le choix du modèle de servo et de l’alimentation dépendra de la charge à déplacer et du nombre de servos à contrôler simultanément.

Éléments historiques et conceptuels

Le servomoteur est un moteur à courant continu associé à une électronique de commande qui assure le positionnement précis et le maintien de la position. Le nom vient du latin servus, signifiant esclave, reflétant le rôle de l’élément servo dans l’ensemble du système de commande. Les servomoteurs se distinguent par leur capacité à atteindre des positions angulaires prédéterminées et à les maintenir malgré les perturbations.

Dans l’ingénierie et la modélisation, les servomoteurs servent à orienter des mécanismes comme les roues, les gouvernes ou les safrans. Leur couple dépend du diamètre du bras et de la longueur du levier, ce qui explique pourquoi la position et la charge utile influent directement sur les performances.

  1. Comprendre les trois fils et leur fonction (Alimentation, Terre, Signal).
  2. Connecter correctement les fils et partager la masse lorsqu’on utilise des alimentations externes.
  3. Utiliser la bibliothèque Servo pour simplifier le contrôle et la gestion du PWM.
  4. Évaluer le courant nécessaire et dimensionner l’alimentation pour éviter les surcharges.
  5. Calibrer les angles et les limites de débattement en fonction du modèle de servo.

En pratique, l’utilisation de la bibliothèque Servo et la connaissance des limites du matériel permettent de réaliser des projets complexes et intéressants, tout en restant dans des marges de sécurité et de stabilité adaptées à l’électronique embarquée.

Le Servomoteur Expliqué

tags: #alimentation #servomoteur #arduino