Aller au contenu

Utilisation d’un servomoteur dans un projet Arduino

Utilisation d’un servomoteur dans un projet Arduino

Nous vous présentons un projet plus avancé que le tutoriel sur le projet contrôlant les LEDs

Objectif : Diriger un servomoteur à l’aide d’un potentiomètre avec Arduino, apprendre à contrôler un servomoteur.

Difficulté : 1/5

Temps d'exécution : 15 min

Matériel nécessaire :



Le montage du servomoteur sur la carte Arduino

montage servomoteur avec arduino

1. Connectez le 5V(+) et le Ground(-) de votre carte Arduino à votre breadboard.

2. Placez un potentiomètre en connectant un côté au +, l’autre au -. Un potentiomètre est un diviseur de tension : il permet de changer la tension entre la broche centrale et la broche +, qui est observable sur l’entrée analogique. Connectez la broche centrale à A0. Ceci contrôlera la position du servomoteur.

3. Le servomoteur a 3 fils : rouge pour l’alimentation, noir pour le Ground, et blanc pour la transmission d’infos. Ajoutez 3 entêtes mâles aux sorties femelles, et branchez les sur la platine : 5V pour le rouge, Ground pour le noir, et la broche 9 pour le blanc.

4. Lorsque le servomoteur démarre, il peut y avoir une baisse de tension dans la carte. Vous devez réguler ces changements en plaçant un condensateur 100uf entre le fil rouge et le noir. Soyez sûr de connecter la cathode (côté avec une bande noire) au Ground pour éviter tout problème.

Contrôlez le servomoteur grâce au programme

Voici ce programme :

1. Pour utiliser la librairie du servomoteur, vous devez d’abord l’importer. Ceci permet l’ajout de nouvelles fonctionnalités spécifique au servomoteurs à celles du codage Arduino de base.

#include

2. Pour se référer au servomoteur, il faut nommer une instance de la librairie importée. C’est ce qu’on appelle l’objet. Ici, l’objet est un Servo, et on le nomme myServo. Chaque fois qu’on fera appel au servomoteur dans notre code, on l’appellera myServo.

Servo myServo;

3. Définissez une constante pour placer le potentiomètre (potPin est ici placé en A0) et ajoutez 2 variables qui seront utilisées pour l’angle de rotation du servomoteur et la valeur du potentiomètre.

int const potPin = A0;
int potVal;
int angle;

4. Dans le setup(), attachez le servomoteur à la carte, en définissant son emplacement (9). Ajoutez une connexion sérielle pour vérifier les valeurs du potentiomètre.

void setup(){
myServo.attach(9);
Serial.begin(9600);
}

5. Dans la boucle, lisez et affichez la valeur au moniteur de série.

void loop(){
potVal = analogRead(potPin);
Serial.print(« potVal:  »);
Serial.print(potVal);

6. Pour créer une valeur utilisable par le servomoteur, il vous faut convertir les données. Dans notre cas, il faut convertir les données entre 0 et 1023 entre 0 et 179. La fonction map() est utile pour cela. Elle a besoin de la valeur à échelonner (potVal, des minimum et maximum de l’entrée, et des minimum et maximum de sortie. On stocke cette valeur dans la variable angle, et on l’envoie.

angle = map(potVal, 0, 1023, 0, 179);
Serial.print(« , angle:  »);
Serial.println(angle);

7. Commandez maintenant le servomoteur, en lui indiquant qu’il doit s’actionner selon l’angle calculé.

myServo.write(angle);
delay(15);
}

Lorsque tout est prêt, tournez légèrement le potentiomètre : vous verrez alors le servomoteur s’actionner !

Intégrer ce type de programme dans un projet robotique

Bravo ! Vous venez de réaliser un projet Arduino assez complexe, qui pourrait être intégré à un projet robotique plus complet. Diriger un servomoteur de la sorte pourrait permettre d’actionner le bras d’un robot par exemple !

1 Commentaires

  • Avatar
    imane
    mars 12, 2019

    merci beaucoup, c'est bien expliqué. j'ai seulement une question au lieu d'utilisé un potentiomè tre je veux utilisé une application pour commander un robot à distance

Cet article vous a plu ? Laissez-nous un commentaire !

Tous les champs sont obligatoires

Nom:
E-mail: (ne sera pas publié)
Commentaire:
Recopier le code
ok