Club robotique de Sophia-Antipolis

Accueil > POBOTpedia > Actionneurs > Les moteurs électriques > Les servomoteurs > Testeur de servo

Testeur de servo

vendredi 30 mars 2012, par Julien H.

La meilleure manière de tester un servo est d’utiliser un petit outil à 10 euros que l’on trouve dans les magasins de modélisme. Il faut toujours en avoir un, même quand on fait un robot programmable à base de micro-contrôleurs.

En voici un exemple, connecté à une carte à relais qui convertit le signal servo en consigne pour un moteur à courant continu. Utiliser le testeur de servo de modélisme est un bon moyen de s’assurer que la carte reste compatible avec un signal standard. Attention cependant car dans certains cas (besoin d’un signal très propre ou testeur de mauvaise qualité), vous risquez d’avoir un faux-négatif : le montage ne fonctionne pas avec le testeur alors qu’il est correct !

Testeur de servo
A droite de l’image, bleu.

Cela dit, vous pouvez aussi vous faire un petit programme permettant d’envoyer un signal de type servomoteur. Avec une carte programmable comme l’Arduino, c’est l’affaire de cinq minutes, en utilisant la liaison série pour envoyer une consigne :


#include <Servo.h>

// déclaration de la variable de type Servo
Servo servo ;

/**
* Initialisation du programme
*/
void setup()

// définir la patte sur laquelle on branche le servomoteur
servo.attach(2) ;

// ouvrir une liaison série
Serial.begin(38400) ;
Serial.print("Test servo Pobot") ;

/**
* Boucle principale
*/
void loop()

// variable de stockage de la position souhaitée
static int v = 0 ;

// écouter la liaison série
if ( Serial.available())
// recevoir un octet, l’analyser selon sa valeur (ignorer tous les autres caractères)
char ch = Serial.read() ;
switch(ch)
case ’0’...’9’ :
// construire la valeur saisie
v = v * 10 + ch - ’0’ ;
// ’0’ est l’équivalent en caractère de l’entier ASCII qui débute la suite de caractères des chiffres,
// c’est une façon simple de retrouver la valeur décimale puisque dans ce cas le micro-contrôleur traite les char et les int de la même manière.
break ;
case ’s’ :
// envoyer la consigne au servomoteur
servo.write(v) ;
v = 0 ;
// vérifier qu’on a bien reconstruit la valeur saisie
// en passant par la fonction du servomoteur qui filtre la plage 0-180
Serial.println(servo.read()) ;
break ;



Et voilà, il ne vous reste plus qu’à essayer.

Un message, un commentaire ?

modération a priori

Attention, votre message n’apparaîtra qu’après avoir été relu et approuvé.

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.