Skip to main content

Aujourd’hui, nous allons apprendre ensemble à contrôler un servomoteur de modélisme  à l’aide d’un arduino.

Le matériel nécessaire :

  • Un arduino
  • Un servomoteur
  • Des fils de connexions

 

Câblage du servomoteur à l’arduino.

Les servomoteurs ont 3 fils de connexions :

  • Le + (Généralement rouge)
  • Le – (La masse, généralement noire ou marron)
  • Le fil de l’impulsion de commande (Généralement blanc ou jaune)

Pour relier le servomoteur à l’arduino, vous devez brancher :

  • Le fil + sur le + de votre alimentation externe
  • Le fil noir (la masse), sur le 0V (ou GND « ground » en anglais)
  • Le fil de l’impulsion de commande sur une entrée numérique « digital » PWM

Voici un schéma de branchement :

Montage d'un ServoMoteur

Montage d’un ServoMoteur

Utilisation de la librairie

L’arduino est livré avec toute sorte de librairies (permettant d’invoquer des fonctions).
Pour inclure une librairie dans un programme arduino, rien de plus simple. Il suffit d’entrer la ligne suivante au début du programme :

#include <Servo.h>

Cette librairie concentre plusieurs fonctions, au nombre de 6 :

attach()
write()
writeMicroseconds()
int read()
boolean attached()
detach()

Nous allons voir ensemble a quoi correspondent les differentes fonctions ci-dessus.

La fonction « attach() » permet de rattacher le pin dans lequel nous avons branché le fil jaune.

#include <Servo.h>    // Permet d'inclure la librairie

Servo servo;       // Creation d'une variable appelee "servo"

void setup() {

  servo.attach(0);  // J'attache "servo" au pin A0 de l'arduino

}

void loop() {}

 

La fonction « write() » permet de donner une consigne au servomoteur.
On utilise généralement la syntaxe suivante : var.write(angle)

Avec « var » le nom de la variable du servo et « angle » la valeur que l’on veut donner au servo.

 

#include <Servo.h>   // Permet d'inclure la librairie

Servo servo;       // Creation d'une variable appelee "servo"

void setup() {

  servo.attach(2);  // J'attache "servo" au pin 2 de l'arduino

  servo.write(90);  // Positionne le servomoteur à 90°

}

void loop() {}

 

La fonction « read() » permet de lire la valeur envoyée par la fonction « write() ». La valeur renvoyée est un entier (« integer » en anglais, souvent notée « int » dans les livres ou sur internet).

Fabien Aubret

Co-fondateur SimpleDuino, Co-fondateur SimpleDomo. Ingénieur de l'Ecole Nationale Supérieure des Arts Et Métiers (ENSAM). Passionné d'électronique, d'informatique et des nouvelles technologies en général, j'ai à cœur de transmettre ce que d'autres ont pu m'apprendre.

2 Comments

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.