J'ai regardé sur thingiverse, j'ai trouvé ce modèle, j'ai visionné la vidéo, c'est impressionnant ! J'ai l'impression aussi que c'est pas mal utilisé dans les bras robotisés qui vont lentement mais qui doivent soulever lourd.
Là tout de suite, ce serait un peu compliqué pour moi de me lancer dans les rapports de réduction pour obtenir la bonne adéquation entre mon montage et le réducteur.
J'ai lancé une impression de ce modèle pour tester et voir ce que ça donne.
J'ai tout de même une interrogation pour lancer mes tests : pour l'instant j'ai 3 moteurs pilotés par le même script et la même carte, et je trouve qu'ils tournent lentement sachant qu'ils ont tous réglés sur "step" 1/32, donc pour augmenter leur vitesse, comme nous avons vu plus haut, je peux mettre "step" 1 par exemple. Dans ce cas, si je mets "step" 1 et comme le moteur fait 200 pas, si je vois que "Vitesse = -442" dans "Moniteur série (soit 442 pas/s) il fera 2 tours/s soit 120 tours/min ? Est-ce bien ça ? (mais du coup si j'ai bien compris aussi, en mettant "step" sur 1 la "finesse" de la rotation (et donc des mouvements générés) est plus difficilement ajustable ? Donc tout ça ce sont des compromis ?
L'autre point c'est que je trouve que le potentiomètre à un incrément un peu trop étalé (je dois tourner beaucoup la vis pour changer fortement la vitesse). Est-ce optimisable par le script ?
Pour info, voici le script que j'utilise :
#include <AccelStepper.h>
int INTERUPTEURPIN = 10 ;
int Pin_Pot = 0 ;
int val_Pot ;
int Speed ;
unsigned long Val_Read;
unsigned long Old_Read;
const long Interval = 1000; // interval de lecture valeur Potentiométre
AccelStepper stepper(1, 4, 7); // TB6600 OFF OFF ON ON ON OFF
void setup()
{
Serial.begin(115200); //Initialisation de la communication avec la console
pinMode(INTERUPTEURPIN,INPUT);
digitalWrite(INTERUPTEURPIN, HIGH); //Pullup interne activé
stepper.setMaxSpeed(-10000);
stepper.setAcceleration(-3000);
}
void loop()
{
val_Pot = analogRead(Pin_Pot);
Speed = map(val_Pot,0,1023,0,-3000);
Val_Read = millis();
if (Val_Read - Old_Read >= Interval){ //Lecture potentiométre tout les "Interval"
Serial.print("Valeur Pot : ");
Serial.println(val_Pot); // affiche la valeur du potentiomètre
Serial.print("Vitesse : ");
Serial.println(Speed); // affiche la vitesse
Old_Read = Val_Read;
}
if( digitalRead(INTERUPTEURPIN) == true )
stepper.setSpeed(Speed) ;
else
stepper.setSpeed(0);
stepper.runSpeed();
}
Bonne journée.