Commande servomoteur avec arduino

Commande servomoteur avec arduino

Potentiomètre arduino pour le servomoteur

Le schéma d’assemblage d’un servomoteur contrôlé avec arduino est très simple. Les câbles dont dispose le servo sont très simples, un câble de couleur rouge, pour le positif, celui-ci a l’habitude d’être alimenté entre 4,8v jusqu’au 7v. Parce que si nous n’avons pas beaucoup de dispositifs connectés à notre arduino, nous pourrons l’alimenter avec le sans ningun problème. Câble de couleur noire, comme c’est normal le négatif du servo, si nous alimentons notre servo avec une alimentation externe à l’arduino nous ne devons pas oublier de joindre toutes les masses du projet, pour homogénéiser celui-ci. Et enfin c’est le câble de couleur jaune, c’est celui de contrôle du servo. Ce câble de contrôle, nous allons le connecter à n’importe quelle broche PWD de notre arduino.

Pour programmer le servo avec notre arduino il n’a pas une plus grande complexité. L’IDE Arduino dispose lui-même d’une bibliothèque pour le contrôle de ces dispositifs. Il suffit d’aller dans “Programme” -> “Inclure la bibliothèque” -> “Servo” ou d’écrire directement dans notre code.

Fiche technique du servomoteur arduino

En effet ! Aujourd’hui, nous allons aborder le contrôle des servomoteurs à l’aide d’Arduino de la manière la plus simple, la plus efficace et la plus rapide à laquelle je puisse penser, qui consiste simplement à en connecter un directement à la carte, à déverser le code que je vais vous donner, et à voir l’effet qu’il produit, puis à introduire des modifications pour nous aider à comprendre l’algorithme original.

Tout d’abord, qu’est-ce qu’un servo ? Un servomoteur est un dispositif alimenté en courant continu qui peut contrôler très précisément sa position (de 0º à 180º) ou sa vitesse (en tours par minute, tr/min, dans le sens des aiguilles d’une montre ou dans le sens inverse).

  Telecommande 433 mhz arduino

(Note au navigateur). Bien que les servos ne soient pas des moteurs CC normaux, ils ont également des besoins en courant assez élevés. Les servomoteurs de position ne posent pas tant de problèmes, mais les servomoteurs de vitesse vous poseront des problèmes dès que vous voudrez en commander deux ou plus en même temps, car leur consommation “occulte” le microcontrôleur et celui-ci a tendance à se bloquer. La solution est de les alimenter avec une alimentation externe, différente de celle qui alimente notre carte Arduino, en s’assurant, bien sûr, que les masses sont communes. Voici un exemple :

Comment connecter un servomoteur

Ils disposent généralement d’un mécanisme d’engrenage qui leur confère un très bon couple et une très bonne précision, car ils effectuent le contrôle de précision en interne, alors que dans d’autres moteurs, il est nécessaire de le faire en externe. Cependant, ils offrent une vitesse inférieure à celle des moteurs à courant continu.

Dans l’IDE Arduino, il existe deux exemples par défaut, Knob et Sweep, mais utilisons d’abord un exemple plus simple et plus visuel pour comprendre leur fonctionnement. Ouvrez un sketch vide et copiez le code suivant :

Essayez maintenant d’augmenter le temps, en passant de 15 à 150 par exemple. De cette façon, vous verrez plus clairement comment les servos fonctionnent, où ils commencent lentement jusqu’à ce qu’ils prennent de la vitesse, puis ils ralentissent jusqu’à ce qu’ils atteignent la position désirée.

Ce qui est curieux dans ce sketch, c’est que, si nous utilisons un servo à rotation continue, nous pouvons changer le sens de rotation en fonction du sens du potentiomètre. En fait, nous pouvons faire coïncider le sens de rotation, car nous pouvons le modifier en échangeant simplement la polarisation des broches positive et négative du potentiomètre. De plus, à un point précis du potentiomètre, nous pouvons arrêter le servo.

  Comment faire une boucle IF sur Arduino?

Servomoteur arduino tinkercad

Sur le marché, il existe différents modèles de servomoteurs, la principale différence entre eux étant le couple. Ce point est bon à savoir pour bien choisir le bon servomoteur. Il est préférable de choisir un servo avec un couple plus élevé que celui requis, car la consommation de courant est proportionnelle à la charge. En revanche, si nous soumettons un servomoteur à des charges supérieures à son couple, nous risquons d’endommager les parties mécaniques (engrenages) et électriques du servomoteur, et nous pouvons même générer du bruit dans l’alimentation.

La bibliothèque Servo supporte jusqu’à 12 moteurs sur la plupart des cartes Arduino et 48 sur l’Arduino Mega. Sur les cartes non-MEGA, l’utilisation de la bibliothèque désactive la fonctionnalité PWM sur les broches 9 et 10. Sur l’Arduino Mega, jusqu’à 12 servos peuvent être utilisés sans interférer avec la fonctionnalité PWM, mais l’utilisation de 12 à 23 moteurs désactivera le PWM sur les broches 11 et 12.

*L’alimentation du moteur peut être la même que celle de l’Arduino, à condition que l’alimentation supporte la puissance du servo et soit de 5V. L’USB 5V ne supporte qu’un seul servo SG90, plus de servos ou d’autres servos doivent utiliser une alimentation externe.