Outils pour utilisateurs

Outils du site


wiki:tutoriels:servomoteur:servomoteur

Servo Moteur sur Arduino

  • Porteur du projet : Mélodie Souty
  • Date : 01/2017
  • Licence : libre !

Présentation

Un servo moteur ressemble à un moteur à courant continue mais en moins puissant, et souvent bridé à un certain angle de rotation (souvent 180°). Concrètement l'intérieur ressemble à cela :


Pour le connecter à l'Arduino, il faut se référer aux couleurs des fils :

  • Rouge c'est pour l’alimentation positive, soit 5V;
  • Noir ou marron, pour la masse, le ground (GND);
  • 0range, jaune ou blanc c'est pour m'entrée du signal de commande, donc une pin de sortie au choix.

Connexion à Arduino

Pour utiliser un servo moteur avec Arduino il faut la librairie Servo, souvent déjà pré-installé.
Début du code :

#include <Servo.h> // déclarer l'utilisation de la librairie Servo

Servo monServo; // Création d'un objet Servo

void setup()
{
    monServo.attach(2); // Le numéro entre parenthèse correspond à la pin d'entrée sur laquelle mon fil jaune est branché.
}

Si on utilise plusieurs servo, il faut donc créer plusieurs objets Servo au début du programme et ensuite indiquer la pin d'entrée dans le setup().
Ensuite il suffit d'entrer l'angle auquel on veux que le servo tourne :

myservo.write(90); //Le cerveau moteur se place à 90°

On peu utiliser un boucle for pour faire tourner le servo. Voici le code pour un servo d'un angle de 180° :

#include <Servo.h>

Servo myservo;  // Création d'un objet Servo

int pos = 0;    //Création d'une variable pour la position

void setup() {

  myservo.attach(9);  // Mon Servo est branché sur la pin 9
}

void loop() {
//Ma variable pos est égale à 0, pour chaque valeur de pos strictement inférieur à 180, cette même valeur deviens l'angle auquel doit être le servo moteur, on attends 15milisecondes, et on ajoute 1 à cette valeur.
  for (pos = 0; pos <= 180; pos += 1) { 
    // in steps of 1 degree
    myservo.write(pos);              
    delay(15);                       
  }
//Ma variable pos est égale à 180, pour chaque valeur de pos strictement supérieur à 0, cette même valeur deviens l'angle auquel doit être le servo moteur, on attends 15milisecondes, et on soustrait 1 à cette valeur.
  for (pos = 180; pos >= 0; pos -= 1) { 
    myservo.write(pos);              
    delay(15);
  }
}
wiki/tutoriels/servomoteur/servomoteur.txt · Dernière modification: 2017/02/03 01:13 (modification externe)