Comment contrôler un servomoteur avec Arduino Nano

Qu’est-ce qu’un servomoteur ?

Un servomoteur est un dispositif électromécanique qui intègre un moteur électrique, un mécanisme de rétroaction et un contrôleur dans le but d’obtenir un contrôle extrêmement précis de la position ou de la vitesse d’un axe de rotation.

Ces dispositifs sont reconnus pour leur capacité à pivoter vers un emplacement spécifique et à rester fermement dans cette position, ce qui les rend idéaux pour les applications exigeant un haut degré de précision. Ces applications incluent des domaines tels que la robotique, l’automatisation industrielle, l’impression 3D et l’électronique grand public.

En termes de compatibilité avec les cartes de développement, la plupart des servomoteurs sont parfaitement compatibles avec les plateformes populaires telles que Arduino. Cette compatibilité est due à l’existence de bibliothèques et de broches spécialement conçues dans Arduino qui permettent un contrôle efficace des servomoteurs.

Connecter directement les servomoteurs aux sorties PWM (Pulse width Modulation) d’une carte Arduino est un processus simple et, en outre, ils peuvent être programmés pour effectuer des mouvements précis et atteindre les positions souhaitées avec une grande précision.

En plus d’Arduino, il existe d’autres cartes et microcontrôleurs, tels que Raspberry Pi, qui prennent également en charge les servomoteurs. Cela offre aux concepteurs et aux passionnés une grande variété d’options pour obtenir un contrôle précis sur leurs projets, car ils peuvent choisir la plateforme qui correspond le mieux à leurs besoins et préférences.

Comment fonctionne un servomoteur

À l’intérieur d’un servomoteur se trouve un ensemble de composants fondamentaux conçus pour obtenir un contrôle de position ou de vitesse extrêmement précis.

Tout d’abord, l’élément central est le moteur électrique, généralement un moteur à courant continu (DC), qui fournit la puissance nécessaire pour générer le mouvement de rotation. Ce moteur est connecté à l’arbre du servomoteur et constitue la principale source de mouvement.

Le prochain élément clé est le mécanisme de rétroaction, qui est généralement un potentiomètre ou un encodeur. Ce mécanisme est relié à l’arbre du moteur et fournit des informations constantes et précises sur sa position actuelle.

Le contrôleur, qui agit comme le « cerveau » du servomoteur, reçoit des signaux de commande qui indiquent la position souhaitée pour l’arbre du moteur. Il compare continuellement cette position souhaitée avec la position réelle fournie par le mécanisme de rétroaction et détermine comment ajuster l’énergie fournie au moteur pour maintenir ou atteindre la position souhaitée.

En plus de ces composants, les servomoteurs intègrent souvent des engrenages et des arbres qui transmettent le mouvement du moteur, permettant des réglages fins et précis, ainsi qu’un boîtier qui protège et abrite tous ces éléments pour garantir un fonctionnement sûr et durable.

Ensemble, ces composants permettent au servomoteur de fonctionner avec une haute précision et d’être utilisé dans une grande variété d’applications nécessitant un contrôle de position ou de vitesse extrêmement précis, comme dans les secteurs de l’automatisation, de la robotique et de l’aviation.

Comment contrôler un servo avec Arduino Nano

Pour réaliser ce projet, assurez-vous de disposer du matériel suivant :

1 carte Arduino.
1 servomoteur.
1 planche à pain (breadboard).
Câbles de connexion.

Connexions physiques

Tout d’abord, placez l’Arduino Nano sur une planche à pain pour simplifier les connexions.

Ensuite, connectez le fil de signal du servomoteur (généralement orange) à l’une des broches de sortie PWM de l’Arduino Nano, telle que la broche 9, afin de permettre un contrôle précis du servomoteur.

Ensuite, connectez le fil d’alimentation du servomoteur (généralement rouge ou marron) à la broche 5 V de l’Arduino Nano, qui fournira l’alimentation nécessaire au servomoteur.

Connectez le fil de terre (noir) du servomoteur à la broche GND de l’Arduino Nano pour établir une référence commune.
Enfin, connectez l’Arduino Nano à votre ordinateur à l’aide d’un câble USB afin de pouvoir charger et exécuter vos programmes sur l’Arduino Nano.

Sketch pour effectuer un balayage angulaire de 180 degrés avec un servo

Chargez le sketch suivant sur votre Arduino et vous verrez comment la lame du servomoteur se déplace d’un côté à l’autre à un angle de 180 degrés.

#include <Servo.h> 
int servoPin = 9; 
Servo myservo; 
int angle = 0;

void setup(){ 
  myservo.attach(servoPin); 
} 
 
void loop(){ 
  for(angle = 0; angle < 180; angle++)  
  {                                  
    myservo.write(angle);               
    delay(20);                   
  } 
  for(angle = 180; angle > 0; angle--)    
  {                                
    myservo.write(angle);           
    delay(20);       
  } 
}

Sketch pour contrôler un servomoteur avec un potentiomètre

Pour ce projet, il est nécessaire d’ajouter un potentiomètre à la configuration précédente.

Placez le potentiomètre sur la maquette et connectez ses bornes à l’Arduino comme suit : connectez l’une des bornes du potentiomètre à la broche 5V de l’Arduino et l’autre borne à la broche GND. Ensuite, connectez la borne centrale du potentiomètre à l’une des broches analogiques, telle que la broche A1.

Une fois ces connexions terminées, téléchargez le code suivant sur votre Arduino. Ce code permettra au potentiomètre de contrôler la position du servomoteur proportionnellement à la position du potentiomètre. De cette façon, vous pouvez régler la position du servomoteur en tournant le potentiomètre.

#include <Servo.h>
int potPin=1;
int servoPin=9;
Servo myservo;
void setup() {
myservo.attach(servoPin);
}
void loop() {
int reading=analogRead(potPin);
int angle=reading/6;
myservo.write(angle);
}

Laisser un commentaire

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

Retour en haut