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'horlogeSi vous avez une idée sur comment faire pour rectifier ce bug ce serait vraiment super.
- 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.
Mon code en passant (rien de révolutionnaire) :
MerciCode:#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); } }
-----