LOCODUINO

La bibliothèque Servo

. Par : Dominique, Guillaume, Jean-Luc

Nous allons donc voir les différentes commandes de cette bibliothèque. Nous n’allons pas ici mettre en pratique ces commandes pour, par exemple, commander une aiguille. Ce sera le sujet d’autres articles. Figure 1 : un exemple de raccordement d’un servo-moteur sur un UNO Rappel sur l’alimentation et le nombre de servos (…)

Retourner à l'article

Vous répondez à :

La bibliothèque Servo 8 juin 2019 09:16, par DUMONT ERIC

voici un lien ou on le voit

Voir en ligne : module

Qui êtes-vous ?
Votre message

Pour créer des paragraphes, laissez simplement des lignes vides.

Lien hypertexte

(Si votre message se réfère à un article publié sur le Web, ou à une page fournissant plus d’informations, vous pouvez indiquer ci-après le titre de la page et son adresse.)

30 Messages

  • Bibliothèque Servo 28 janvier 2016 02:52, par Dominique DELEAZ

    Bonjour,
    merci pour cet article, qui soulève 2 questions de ma part :

    • vous indiquez que "Un Arduino peut alimenter un seul servo-moteur" : est-ce que cela veut dire "un seul servo à la fois ?" car j’ai branché 5 servos sur une carte arduino (Mega), ils ne fonctionnent jamais simultanément, et cela marche très bien ;
    • je voudrais utiliser avec une carte Arduino Mega à la fois la bibliothèque Servo et la bibliothèqe CmdrArduino pour générer un signal DCC et les deux biblothèques entrent en conflit à propos de la broche 9 (et 10 je pense) : est-ce qu’il est possible de modifier (simplement) une des deux biblothèques pour résoudre cela ?

    Merci d’avance

    Dominique Déléaz

    Répondre

    • Bibliothèque Servo 28 janvier 2016 07:55, par Dominique

      Merci pour vos questions :

      Quand il est écrit "Un Arduino peut alimenter un seul servo-moteur", cela concerne l’alimentation 5V seulement. Un servo consomme beaucoup d’énergie (de courant) et le 5V de l’Arduino n’est pas suffisamment généreux pour alimenter plus qu’un seul servo. Au delà, il faut utiliser une alimentation 5V externe.

      En réalité, la plupart des Arduino, avec la bibliothèque Servo, peuvent "piloter"jusque’à 12 servos simultanément (48 sur un Mega).

      Pour CmdrArduino, il est indiqué, dans cet article : seule la broche 9 (Uno, Nano) ou 11 (Mega) est utilisée pour générer le signal DCC, mais l’autre broche (10/328 ou 12/2560) étant connectée au Timer 1, est inutilisable pour autre chose. La bibliothèque ne peut pas être modifiée pour éviter cela.

      S’il existe un moyen de libérer la broche inutile, je ne le connais pas encore, mais quelqu’un d’autre a peut-être une solution ...

      Donc, à suivre ...

      Répondre

      • Bibliothèque Servo 28 janvier 2016 13:05, par Dominique DELEAZ

        Merci bcp pour votre réponse.

        donc :

        • pour les servos, je continue à en piloter plusieurs par carte sans souci...
        • et en attendant une solution pour cette histoire de broche, je continue à piloter les servos avec une carte (méga) et à générer les commandes DCC avec une autre (uno), les deux étant reliées en série tout simplement et la méga envoyant à la uno les éléments pour les commandes DCC à générer. Cela marche très bien, c’était juste histoire d’économiser une carte.

        Bien cordialement

        Dominique (aussi !)

        Répondre

  • Bibliothèque Servo 28 janvier 2016 19:25, par dominique

    Pour tout juste 5 € de plus c’est une sage précaution. D’autant que le DCC et le PWM utilisent des timers et des interruptions, ce qui peut entraîner quelques disfonctionnements, notamment si vous utilisez une nouvelle version de la bibliothèque DCC (que je n’ai pas encore testée).

    Dominique

    Répondre

  • Super 3 avril 2016 19:13, par Gerard

    Excellent article, merci.

    Répondre

  • La bibliothèque Servo 3 janvier 2018 18:42, par Dominique

    Il ne faut pas oublier attach() quand même ! Mais sans ton code on ne peut rien dire et seulement si c’est un projet de modélisme ferroviaire ce dont je doute.
    J’efface cette question ?

    Répondre

  • Bonjour, voici mon problème :
    j’ai un servo de 270 degrés mais lorsque j’utilise la bibliothèque servo.h de arduino, mon servo ne réagi que sur 180 degrés au lieu de 270(je m’y attendais un peu), mais ce n’est pas tellement ça qui nuis à mon projet, c’est plutôt le fait qu’il ne revienne pas à sa place d’origine avec le même code, comme si son zéro digital bougeait à chaque fois que je l’éteins et le rallume. Je voulais donc savoir si il y avait une bibliothèque spéciale pour contrôler les servos de 270 degrés ou alors si il y avait une astuce pour paramétrer cette bibliothèque servo.h qui me plait beaucoup lorsque j’utilise des servos de 180.
    Merci pour votre aide

    Répondre

  • La bibliothèque Servoplus 7 juin 2019 22:56, par DUMONT ERIC

    Bonjour,
    j’ai un petit soucis avec un programme qui utilise cette
    bibliothèque.
    en effet lors de la compilation il me retourne un message d’erreur que je ne comprends pas,
    en fait je ne comprends pas vraiment tout car je suis débutant en programmation !
    voici le code :

    #include <Servo.h>
    #include <ServoPlus.h>
    
    boolean __ardublockDigitalRead(int pinNumber)
    {
      pinMode(pinNumber, INPUT);
      return digitalRead(pinNumber);
    }
    
    
    ServoPlus monServoPlus2;
    
    void setup()
    {
      pinMode( 12 , OUTPUT);
      pinMode( 9 , OUTPUT);
      monServoPlus2.brancher(2,15,175);
    
    }
    
    void loop()
    {
      if (( __ardublockDigitalRead(A0) || __ardublockDigitalRead(A2) ))
      {
        digitalWrite(12 , HIGH);
        delay( 500 );
        digitalWrite(9 , HIGH);
        delay( 5000 );
        monServoPlus2.modeAsync = false;
        monServoPlus2.ecrireAngle(120,20);
        digitalWrite(9 , LOW);
        delay( 500 );
      }
      if (( __ardublockDigitalRead(A1) || __ardublockDigitalRead(A3) ))
      {
        digitalWrite(12 , LOW);
        delay( 500 );
        monServoPlus2.modeAsync = false;
        monServoPlus2.ecrireAngle(20,20);
        digitalWrite(9 , LOW);
      }
    }

    et voici le message d’erreur :

    passage_a_niveau2.ino.ino: In function 'void loop()':
    
    passage_a_niveau2.ino:29:19: error: 'class ServoPlus' has no member named 'modeAsync'
    
         monServoPlus2.modeAsync = false;
    
                       ^
    
    passage_a_niveau2.ino:38:19: error: 'class ServoPlus' has no member named 'modeAsync'
    
         monServoPlus2.modeAsync = false;
    
                       ^
    
    
    Non utilisé : E:\Arduino\Arduino\libraries\Servo
    exit status 1
    'class ServoPlus' has no member named 'modeAsync'

    Merci pour vos lumières et aide
    cordialement
    Eric

    Répondre

    • La bibliothèque Servoplus 7 juin 2019 23:09, par Jean-Luc

      Bonsoir.

      Le problème ne vient pas de la bibliothèque Servo mais de votre classe ServoPlus. Le message d’erreur est clair : vous tentez d’accéder à la donnée membre modeAsync qui n’existe pas dans la classe ServoPlus.

      Répondre

  • La bibliothèque Servo 7 juin 2019 23:17, par DUMONT ERIC

    merci pour votre aide, mais comment créer cette donnée ?

    Répondre

    • La bibliothèque Servo 7 juin 2019 23:20, par Jean-Luc

      Il ne suffit pas de la créer. Avant tout qu’est ce que ServoPlus. L’avez-vous créée ? Téléchargée quelque part ?

      Répondre

  • La bibliothèque Servo 7 juin 2019 23:35, par DUMONT ERIC

    Oui en fait cette bibliothèque sert pour gérer certains paramètres des servomoteurs (l’angle et la vitesse du mouvement), en fait c’est un servomoteur qu’on trouve sous ardublock et j’ai téléchargé la librairie à : http://duinoedu.com
    attention je précise bien que je ne suis pas l’auteur de ce code, je l’ai vu sous forme de tuto sur le net et j’essaye de le comprendre pour apprendre

    Répondre

  • La bibliothèque Servo 8 juin 2019 08:51, par DUMONT ERIC

    Je vous remercie, je vais essayer cela
    sinon connaissez vous les modules "flying fish" ?

    Répondre

  • La bibliothèque Servo 8 juin 2019 09:16, par DUMONT ERIC

    voici un lien ou on le voit

    Voir en ligne : module

    Répondre

  • La bibliothèque Servo 8 juin 2019 12:52, par msport

    le lien renvoie sur :
    IR Infrared 2 - 30cm Obstacle Detaction Sensor Module FC-51
    je suis prêt à commenter ces modules, mais il vaudrait mieux s’inscrire et ouvrir un fil dans composants sur le forum. Ici, on est hors sujet.

    Répondre

  • La bibliothèque Servo 6 mai 2022 17:15, par Auzereau Alain

    J ai réalisé une dcc et cde infra rouge.
    Je voudrais piloter 24 aiguilles par des servos sg90 (angle et vitesse ) avec des boutons poussoir pour un tco manuel (retour des positions par contacts butées servos et leds ,ou sotie arduino ?
    Pouvez vous me guider à réaliser mon projet.
    J ai aussi réalise les (moteurs d’aiguilles)servos avec 2 contact fin de couse,
    1 pour le coeur d aiguille , l’autre pour la signalisation.
    Encore meri à l’ équipe qui m’a motivé dans la construction de mon réseau.
    Alain

    Répondre

  • La bibliothèque Servo 13 décembre 2022 12:49, par Arthur N

    Bonjour,
    J’ai un projet ingénieur qui consiste à créer et faire fonctionner une avion radiocommandé.
    J’ai un problème car je souhaite contrôler 4 servos à l’aide de joystick mais ces derniers fonctionnent les uns après les autres hors je dois les faire fonctionner simultanément pour pouvoir contrôler mon avion.

    Pourriez vous m’aider en m’indiquant comment résoudre ce problème.

    Merci beaucoup :)

    Répondre

    • La bibliothèque Servo 13 décembre 2022 13:00, par msport

      Bonjour,
      je crains qu’il n’y ait pas beaucoup de pilotes dans l’avion pour vous répondre.
      Ici, il n’y a que des conducteurs de trains.
      De toute manière, pour de l’aide c’est sur le forum, comme indiqué par ailleurs.
      Cordialement

      Répondre

    • La bibliothèque Servo 25 mars 2023 12:04, par knsflelectro

      bonjour, il serait plus judicieux de montrer à quoi ressemble ton code.
      sinon je pense que le problème peut provenir de ton programme. essaye de commander les moteur simultanement et non un après l’autre

      exemple :

      servo1 = servo.write(angle1)
      servo2 = servo.write(angle2)
      servo2 = servo.write(angle3)
      servo3 = servo.write(angle4)
      delay(15) ;

      Répondre

  • La bibliothèque Servo et lightdimmer 27 décembre 2024 16:29, par Brignolle Pat

    Bonjour
    Je n’arrive pas à ouvrir les fichiers.h des deux bibliothèques ;je suis sur windows 7(64).Pouvez vous m’indiquer ou trouvez les bon fichiers.
    Merci d’avance

    Répondre

  • Placement des Servos 25 janvier 05:42, par Grey

    Bonjour, je suis débutant en Arduino et je débute un projet de bras + avant-bras bionique + la main. Le tout en PVC de diamètre 40, les doigts des mains en PVC de diamètre 16.
    Le bras sera posé sur la table, sur le coude, dont la finalité est qu’il puisse s’abaisser, se centrer, se saisir d’un verre d’eau et verser une certaine quantité bien précise d’eau dans un verre avant de se remettre en position initiale.
    J’ai prévu 10 servomoteurs de 20 kg à 13 € pièce, 2 longueurs de PVC de 2 mètres pour chaque diamètre. Un Arduino Méga et un driver pour servo PCA9686 16 CANAUX 12 Bits.
    Perceuse, mèche, scie à métaux, vis, écrous, rondelles.

    Vos idées sont les bienvenues et je vous en remercie d’avance.
    Oliver

    Répondre

  • La bibliothèque Servo 25 janvier 09:33, par Dominique

    Vous n’êtes pas sur un projet ferroviaire. D’autres sites Arduino vous aideront peut-être.

    Répondre

Rubrique Bibliothèques

Les derniers articles

Les articles les plus lus