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();
}
dragonard:
Re
tu peux montrer a quoi ressemble ton code maintenant s'il te plait
#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(4000);
stepper2.setMaxSpeed(2000);
stepper3.setMaxSpeed(4000);
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(36);//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();
}
Par contre quand j'appuie sur le bouton où le moteur doit accélérer il reste à la vitesse normale il n'accélère pas
pour les autres moteurs, toujours impossible de les faire fonctionner tous en même temps quand j'appuie sur un bouton peu importe le quel aucun accélère
avez-vous une idée ???
merci
cdt
astronomy:
Par contre quand j'appuie sur le bouton où le moteur doit accélérer il reste à la vitesse normale il n'accélère pas
pour les autres moteurs, toujours impossible de les faire fonctionner tous en même temps quand j'appuie sur un bouton peu importe le quel aucun accélère
avez-vous une idée ???
merci
cdt
Merci kamill
le Stepper 1 fonctionne une fois sur deux ou trois (il faut que je débranche l'arduino pour 2-3 minutes) mais accélère pas et ne recule pas non plus en tout cas il fait déjà une partie du travail = la compensation de rotation de la terre
le Stepper 2 et 3, ne tournent pas mais ne sont pas cassés car je les ai mis à la même place que le Stepper 1 et là ils fonctionnent
cdt
PS j'ai modifié une partie du code (pas seulement le driver mais j'ai aussi inversé les broches)