Servomoteurs MG995 + Arduino + TLC5940
Répondre à la discussion
Affichage des résultats 1 à 3 sur 3

Servomoteurs MG995 + Arduino + TLC5940



  1. #1
    invite49c7c066

    Servomoteurs MG995 + Arduino + TLC5940


    ------

    Bonjour

    Voilà mon problème.

    J'ai 16 Servomoteurs MG995 que je connecte à mon Arduino MEGA 2560 via une carte SparkFun Breakout d'un très joli rouge vermeil qui porte un chipset TLC5940. J'alimente cette dernière avec un chargeur de téléphone qui délivre 5V pour 1200mA. L'arduino est alimenté via le PC.

    Tout fonctionnait de manière anarchique, rien ne semblait répondre, ca part dans tous les sens, ou pas, vraiment bizarre.
    Puis j'ai remarqué qu'ils réagissaient en fait aux changement d'angles, mais bougeaient très doucement et de manière séquencée (comme la petite aiguille d'une montre) et ne trouvaient jamais de position stable.

    A force de bidouille j'ai trouvé comment les faire fonctionner, mais c'est pas propre. Voilà le protocole :
    - je démarre le tout, ca fait le truc bizarre de l'horloge
    - je la masse de la SparkFun reliée au - de l'alim extérieure), les moteurs font des bruits d'insectes en mode micro-déplacements (que ca doit pas leur faire du bien tout çà)
    - je rebranche la masse, tout fonctionne impeccablement.
    Si vous avez une idée sur comment faire pour rectifier ce bug ce serait vraiment super.

    Mon code en passant (rien de révolutionnaire) :
    Code:
    #include "Tlc5940.h"
    #include "tlc_servos.h"
    
    int i,val;
    const int buttonPin = 2;
    const int numberOfServos = 8;
    
    
    void affichage() {
        for (i=0; i<numberOfServos; i++) {
          Serial.print(analogRead(i));
          Serial.print("\t");
        }
        Serial.println();
    }
    
    void setup() {
      pinMode(buttonPin, INPUT);
      tlc_initServos();
      Serial.begin(9600);
    }
    
    void loop() {
      while (digitalRead(buttonPin) == HIGH)
      {
        for (i=0; i<numberOfServos; i++){
          val = analogRead(i);
          val = map(val, 0, 1023, 0, 180);
          tlc_setServo(i, val);
        }
    
        Tlc.update();
        affichage();
        delay(20);
      }
    }
    Merci

    -----

  2. #2
    invitee05a3fcc

    Re : Servomoteurs MG995 + Arduino + TLC5940

    Un schéma (complet) du montage ?

  3. #3
    invite49c7c066

    Re : Servomoteurs MG995 + Arduino + TLC5940

    Le voici :

    Nom : Schema2.jpg
Affichages : 164
Taille : 46,2 Ko

    La carte de gauche c'est l'Arduino, la droite c'est la SparkFun. J'ai suivi cette url pour le cablage entre les 2 cartes.
    Tu l'auras compris
    - Je bosse sur 8 servos pour mes tests pour l'instant
    - Le potar x commande le servo x

Discussions similaires

  1. Comment programmer une carte arduino uno pour 2 ou 3 servomoteurs
    Par inviteb9f9dbb8 dans le forum Électronique
    Réponses: 15
    Dernier message: 24/04/2017, 11h31
  2. - Des servomoteurs sur un Arduino ? -
    Par invite2f313dba dans le forum Électronique
    Réponses: 3
    Dernier message: 14/12/2014, 19h07
  3. ATmega328P et TLC5940
    Par invite4356faa8 dans le forum Électronique
    Réponses: 4
    Dernier message: 02/02/2014, 14h22
  4. Controle de 2 servomoteurs avec Arduino
    Par invite0e10570c dans le forum Électronique
    Réponses: 27
    Dernier message: 11/06/2013, 20h05
  5. 500 servomoteurs sur arduino...?
    Par inviteb6198e20 dans le forum Électronique
    Réponses: 5
    Dernier message: 02/02/2013, 12h21
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...