Librairie Arduino Servo

.

Mise à jour le 13/03/2019 : Dans cette rubrique , vous allez retrouver des informations et des exemples utils pour l’utilisation de cette librairie .Celle-ci permet à une carte Arduino de contrôler des servomoteurs .

 

Sommaire :

  • Description d’un servomoteur.
  • Detail de la librairie servo.
    • attach() : Connecte un servomoteur physique à une broche. 
    • detach()  : Détache la variable Servo de sa broche. 
    • write() : Modifie l’angle du servomoteur en degrés.
    • writeMicroseconds(uS) : Envoie une valeur en microsecondes  au servo. 
    • read(): Lit la valeur de l’angle courant du servomoteur.
    • readMicroseconds(): Renvoie la largeur d’impulsion.
  • Tuto sur le pilotage des servomoteurs.
  • Plus information sur les servomoteurs
  • Retour au sommaire du tutoriel pour Arduino

.

 

separateur-redohm-001

Description  d’un servomoteur

Un servomoteur intègrent un mécanisme et un axe qui peut-être contrôlé précisément. Les servomoteurs standards permettent de positionner l’axe à différents angles, habituellement entre 0 et 180 degrés .

La partie électrique d’un servomoteur ne dispose que de 3 fils codés par couleur, pour des servomoteurs type modélisme, et 5 fils pour des servomoteurs de grosse puissance genre Topmodele qui permettent d’alimenter le moteur et de lui transmettre des ordres de positions sous forme d’un signal codé en largeur d’impulsion plus communément appelés PWM ou RCO. Cela signifie que c’est la durée des impulsions qui détermine l’angle absolu de l’axe de sortie et donc la position du bras de commande du servomoteur. Le signal est répété périodiquement, en général toutes les 20 millisecondes, ce qui permet à l’électronique de contrôler et de corriger continuellement la position angulaire de l’axe de sortie, cette dernière étant mesurée par le potentiomètre.

A savoir : un servo ou servomoteur se présente sous un aspect comme ci dessous

Encore plus petit 2.5g

Un des plus petit 2.5g

.

Retour au sommaire

 

 

separateur-redohm-001

Détail de la librairie servo

.

Pour inclure la librairie Servo dans un programme, on ajoutera au début du programme la ligne suivante : #include <Servo.h>

attach()

attach() : Connecte un servomoteur physique à une broche. 

2 Options possibles pour attach()

servo.attach(pin)

servo: une variable de type Servo
Pin : le numéro de la broche à laquelle la variable Servo est attachée.

servo.attach(pin, min, max)

servo: une variable de type Servo.
pin: le numéro de la broche à laquelle le servo est attaché.
min: (facultatif): la largeur d’impulsion, en microsecondes, correspondant à l’angle minimal (0 degré) sur le servo (valeur par défaut de 544).
max: (facultatif): la largeur d’impulsion, en microsecondes, correspondant à l’angle maximal (180 degrés) sur le servo (valeur par défaut de 2400).

.

Retour au sommaire

separateur-redohm-001

detach()

detach()  : Détache la variable Servo de sa broche. 

Exemple d’utilisation de la fonction detach()

.

Retour au sommaire

separateur-redohm-001

write()

write() :  Modifie l’angle du servomoteur en degrés.

Pour un servomoteur standard, cette instruction permet de fixer l’angle de l’axe ( en degrés ) . La valeur 0 correspond à la rotation maximal vers la gauche et la valeur 180 correspond à un déplacement  vers la droite .

Pour un servomoteur à rotation continue , elle permet de fixer la vitesse du servomoteur : donc 0 correspond à la vitesse maximum dans un sens et 180 correspond à la vitesse maximum dans l’autre sens et enfin 90 correspond a l’arrêt du servomoteur .

servo.write(angle

servo: une variable de type Servo.
angle: la valeur à écrire sur le servo, de 0 à 180

.

Retour au sommaire

.

separateur-redohm-001

writeMicroseconds(uS)

writeMicroseconds(uS) : Envoie une valeur en microsecondes (µs) au servomoteur qui contrôle en conséquence la position de l’axe .

Écrit une valeur en microsecondes (us) sur le servo, contrôlant ainsi l’arbre. Sur un servo standard, cela va définir l’angle de l’arbre. Sur les servos standards, la valeur du paramètre 1000 est complètement dans le sens anti-horaire, 2000 dans le sens horaire et 1500 dans le milieu.

Notez que certains fabricants ne suivent pas cette norme de très près, en général ,les servomoteurs répondent souvent aux valeurs comprises entre 700 et 2300. N’hésitez pas à augmenter ces points d’extrémité jusqu’à ce que le servo ne vibre plus. Notez cependant que d’aller au-delà de ses extrémités souvent indiqué par un son qui gronde (étant un  fort courant)  doit donc être évité.

servo.writeMicroseconds(uS)

servo: une variable de type Servo.
uS:
la valeur du paramètre en microsecondes (valeur definit en int )

.

 .

Retour au sommaire

.

separateur-redohm-001

read()

read(): Lit la valeur de l’angle courant du servomoteur (la valeur renvoyée est la dernière envoyée avec l’instruction write()).

.

Retour au sommaire

.

separateur-redohm-001

Tuto sur le pilotage des servomoteurs

.

.

Retour au sommaire

separateur-redohm-001

Plus information sur les servomoteurs

Les servomoteurs explications.

.

Apparence générale de quelques servomoteurs

.

Principe de fonctionnement d’un servomoteur

.

Retour au sommaire