Sommaire |
Un servomoteur (couramment appelé "servo" du latin "servus" signifiant "esclave") est un moteur capable de maintenir une opposition à un effort statique et dont la position est vérifiée en continu et corrigée en fonction de la mesure.
C'est donc un système asservi. Un servomoteur est un système motorisé capable d'atteindre des positions prédéterminées, puis de les maintenir. La position est : dans le cas d’un moteur rotatif, une valeur d'angle et, dans le cas d’un moteur linéaire une distance. On utilise des moteurs électriques (continu, asynchrone, brushless) aussi bien que des moteurs hydrauliques. Le démarrage et la conservation de la position prédéterminée sont commandés par un système de réglage. Pour un ajustement précis de la position, le moteur et son réglage sont équipés d'un système de mesure qui détermine la position courante (p. ex. l'angle de rotation parcouru relatif à une position de départ) du moteur. Cette mesure est effectuée sur un réglage rotatif, p. ex. un résolveur, un réglage incrémental ou un réglage absolu (réalisable p. ex. par un potentiomètre). Le système de réglage souvent électronique compare le signal à une valeur prescrite de la position de consigne. S’il y a une déviation, le moteur est commandé dans la direction qui garantit le plus petit chemin à effectuer pour arriver à la valeur de consigne. Cela a pour conséquence de faire diminuer l'écart. La procédure se répète aussi longtemps et, jusqu'à ce que la valeur courante se trouve incrémentiellement ou par l'intermédiaire d’une approximation dans les seuils de tolérance de la valeur consigne. Alternativement, la position du moteur peut être saisie aussi numériquement et comparée via un ordinateur approprié à une valeur prescrite.
#include <Servo.h> Servo monservo; // créer un objet "monservo" pour le contrôler int brochepotar = 0; // broche analogique pour connecter le potentiomètre : A0 int val; // variable pour stocker la valeur du potentiomètre void setup() { monservo.attach(9); // brancher le servomoteur sur la broche 9 Serial.begin(9600); } void loop() { val = analogRead(brochepotar); // lire la valeur du potentiomètre 1 val = map(val, 0, 1023, 0, 179); // la discrétiser pour l'utiliser avec un servomoteur monservo.write(val); // mettre le servomoteur 1 dans la bonne position Serial.println(val); Serial.println(); delay(5); // attendre que les servomoteurs aillent dans leur position }
Pourquoi ne pas réaliser la fiche expérience pour Wikidébrouillard !
Précautions d'utilisation, aspect environnemental du produit, santé humaine...
© Graphisme : Les Petits Débrouillards Grand Ouest (Patrice Guinche - Jessica Romero) | Développement web : Libre Informatique