Bonjour
j'ai remplacé les moteurs keyestudio par des moteurs plus puissant
le Stepper 1 tourne mais très lentement est-ce normal (il a un encodeur 1:51)
le Stepper 2 et 3 ne tournent pas (Stepper 2, encodeur 1:51 et stepper 3 1:14)
il y a l'alimentation générale de l'arduino et l'alim supplémentaire pour les moteurs (pile de 9v)
le driver peut être alimenté de 8.25 à 42v pour les moteurs
je vous mets mon code il est bien construit car le logiciel Arduino l'a bien transféré
#include <AccelStepper.h>
#include <MultiStepper.h>
AccelStepper stepper1(AccelStepper::FULL2WIRE, 26, 27);
AccelStepper stepper2(AccelStepper::FULL2WIRE, 28, 29);
AccelStepper stepper3(AccelStepper::FULL2WIRE, 30, 31);
MultiStepper steppers;
const int bouton1 = 2; //marche avant rapide axe AD
const int bouton2 = 3; //marche arrière rapide axe AD
const int bouton3 = 4; //marche avant rapide axe DEC
const int bouton4 = 5; //marche arrière rapide axe DEC
const int bouton5 = 6; //marche avant moteur de MAP
const int bouton6 = 7; //marche arrière moteur de MAP
void setup() {
Serial.begin(9600);
pinMode (bouton1, INPUT_PULLUP);
pinMode (bouton2, INPUT_PULLUP);
pinMode (bouton3, INPUT_PULLUP);
pinMode (bouton4, INPUT_PULLUP);
pinMode (bouton5, INPUT_PULLUP);
pinMode (bouton6, INPUT_PULLUP);
stepper1.setMaxSpeed(360);
stepper2.setMaxSpeed(180);
stepper3.setMaxSpeed(240);
stepper1.setSpeed(36);
stepper2.setSpeed(0);
stepper3.setSpeed(0);
steppers.addStepper(stepper1);
steppers.addStepper(stepper2);
steppers.addStepper(stepper3);
}
void loop() {
Serial.print(bouton1); Serial.print(" -> "); Serial.println(digitalRead(bouton1));
Serial.print(bouton2); Serial.print(" -> "); Serial.println(digitalRead(bouton2));
if (digitalRead(bouton1) == LOW) {
stepper1.setSpeed(3600);//si j'appuis sur le bouton le moteur AD accélère
}
else if (digitalRead(bouton2) == LOW) {
stepper1.setSpeed(-3600);//si j'appuis sur le bouton le moteur AD recule
}
else {
stepper1.setSpeed(3.6);//si je n'appuis pas sur le bouton le moteur AD continu la vitesse normale (son suivi)
}
Serial.print("stepper1: ");Serial.println(stepper1.speed());
stepper1.runSpeed();
if (digitalRead(bouton3) == LOW) {
stepper2.setSpeed(1800);//si j'appuis sur le bouton le moteur DEC accélère
}
else if (digitalRead(bouton4) == LOW) {
stepper2.setSpeed(-1800);//si j'appuis sur le bouton le moteur DEC recule
}
else {
stepper2.setSpeed(0);//si je n'appuis pas sur le bouton le moteur DEC s'arrête
}
stepper2.runSpeed();
if (digitalRead(bouton5) == LOW) {
stepper3.setSpeed(3600);//si j'appuis sur le bouton le moteur de la MAP accélère
}
else if (digitalRead(bouton6) == LOW) {
stepper3.setSpeed(-3600);//si j'appuis sur le bouton le moteur de la MAP recule
}
else {
stepper3.setSpeed(0);//si je n'appuis pas sur le bouton le moteur de la MAP s'arrête
}
stepper3.runSpeed();
}
merci à vous
cdt