moteur ou driver cassé ???

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

alim supplémentaire pour les moteurs (pile de 9v)

c'est sans doute là que ça pêche.. quel type de "pile" ?

Les moteurs fonctionnent je l'ai est fait fonctionner l'un après l'autre
mais on ne peut pas les faire tourner tous en même temps
les piles https://www.amazon.fr/gp/product/B07VKN5TP9/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1http://

j'ai aussi oublié de dire que les drivers chauffent je pense que c'est normal ou ???
merci
cdt

C'est quoi comme moteurs et drivers?

Moteurs nema 17 avec les réductions ci-dessus
et les drivers DRV8825
cdt

Bonjour
c'est surement que le courant est trop fort si ça chauffe

Tu as une limitation de la vitesse dans l'initialisation.

stepper1.setMaxSpeed(360);

et tu essaies d'aller plus vite

    stepper1.setSpeed(3600);//si j'appuis sur le bouton le moteur AD accélère

Tu vas être limité à 360

dragonard:
Bonjour
c'est surement que le courant est trop fort si ça chauffe

Ah bon, en plus j'ai mis un condensateur 100 mfd après avoir lu cet article https://iknowvations.in/fr/arduino/drv8825-stepper-motor-driver-with-arduino-tutorial/
cdt

kamill:
Tu as une limitation de la vitesse dans l'initialisation

stepper1.setMaxSpeed(360);

et tu essaies d'aller plus vite

    stepper1.setSpeed(3600);//si j'appuis sur le bouton le moteur AD accélère

Tu vas être limité à 360

c'est vrai je suis un peu bête modifié la vitesse max au lieu de la vitesse de rotation de la terre
par contre la puce sur le driver chauffe toujours

cdt

Re
tu peux montrer a quoi ressemble ton code maintenant s'il te plait

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();
}

merci
cdt

merci

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

as-tu essayé de baisser la vitesse ?

dragonard:
as-tu essayé de baisser la vitesse ?

oui rien non plus
cdt

Pourquoi tu utilises FULL2WIRE dans la définition de stepperX?

Normalement si tu utilises un driver spécialisé il faut utiliser DRIVER

AccelStepper stepper1(AccelStepper::DRIVER, 26, 27);

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 :confused: 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)

AccelStepper stepper1(AccelStepper::DRIVER, 27, 26);
AccelStepper stepper2(AccelStepper::DRIVER, 29, 28);
AccelStepper stepper3(AccelStepper::DRIVER, 31, 30);

Tu utilises ta carte due ou ta mega?
Je dois avoir des DRV8825 quelquepart. Si je les retrouve je ferai un essai avec ton programme.

Avec ma MEGA 2560
merci
cdt

Moi, perso ce qui me gêne c'est que la batterie est une 9 v 650 mah, quel version les nema? Quel est leur conso?

Tu ne peux pas l'alimenter via une alimentation secteur?