Page 1 sur 1

Commande de servomoteur avec Arduino

MessagePosté: Mar 3 Déc 2013 22:11
par tiptop
Tutoriel d'utilisation d'un servo moteur avec une carte Arduino

Composants utilisés

Principe de fonctionnement
La carte Arduino utilise la librairie Servo.h
Elle génère un signal périodique de largeur d'impulsion variable.
Le servo se positionne précisément sur un angle (entre 0 et 180°) qui dépend de ce codage en largeur d'impulsions.

Image

Branchements
S'il y a plusieurs servos, rajouter une alimentation extérieure (limite de 40 mA maximum par pin Arduino en sortie !)
  • Rouge = +V
  • Marron = GND
  • Orange = Arduino pin 2, signal de commande du servo

Exemple de code

Code: Tout sélectionner
//==========================================================
// C ROLLAND dec 2012 - tiptopboards.com
// Commande d'un servomoteur rotation de 0 à 180 degrés
// ou un servo linéaire.
//==========================================================
// Branchements :
//Servo : Rouge = +V, Brun = GND, Orange = commande par arduino
// Brancher la commande de servo sur pin 2 dans cet exemple
// Arduino génère un signal périodique de largeur d'impulsion variable

#include <Servo.h>       //Bibliothèque servo à installer

Servo mon_servo;

void setup()
{
  pinMode(2, OUTPUT);   //Commande de servo branché sur pin 2
  mon_servo.attach(2);
 
  Serial.begin(9600);  //Pour le debuggage, affichage écran PC
  Serial.println("Test du servomoteur");
}

void loop()
{ // le servo avance lentement dans un sens puis repart vite en arrière
 int saut = 1;  //Finesse du pas de déplacement
 int attente=30;   //delai en millisecondes entre 2 positions
 for (int val=0; val<190; val=val+saut)
   {mon_servo.write(val);
    Serial.print("Le servo est en position: ");
    Serial.println(val, DEC);
    delay(attente);  //millisecondes entre 2 positions
   }
}


Références