Composants utilisés
- 1 carte Arduino Uno
- 1 servo moteur (par exemple le modèle 9g)
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.

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