Go Down

Topic: moteur ou driver cassé ??? (Read 1 time) previous topic - next topic

astronomy

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é
Code: [Select]
#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

J-M-L

#1
Jan 23, 2021, 10:49 am Last Edit: Jan 23, 2021, 10:49 am by J-M-L
Quote
alim supplémentaire pour les moteurs (pile de 9v)
c'est sans doute là que ça pêche.. quel type de "pile" ?
Hello - Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums.
Bonjour Pas de messages privés SVP, postez dans le forum directement pour que ça profite à tous

astronomy

#2
Jan 23, 2021, 11:00 am Last Edit: Jan 23, 2021, 11:01 am by astronomy
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

kamill

C'est quoi comme moteurs et drivers?

astronomy

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

dragonard

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

kamill

#6
Jan 23, 2021, 11:22 am Last Edit: Jan 23, 2021, 11:27 am by kamill
Tu as une limitation de la vitesse dans l'initialisation.
Code: [Select]
stepper1.setMaxSpeed(360);
et tu essaies d'aller plus vite
Code: [Select]
    stepper1.setSpeed(3600);//si j'appuis sur le bouton le moteur AD accélère

Tu vas être limité à 360

astronomy

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

astronomy

Tu as une limitation de la vitesse dans l'initialisation
Code: [Select]
stepper1.setMaxSpeed(360);
et tu essaies d'aller plus vite
Code: [Select]
   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

dragonard

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

astronomy

Re
tu peux montrer a quoi ressemble ton code maintenant s'il te plait
Code: [Select]
#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

dragonard


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

dragonard

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 ?

astronomy


Go Up