Controle moteur NEMA 17 avec driver STR2

Bonjour je suis bloquer sur la programmation de mon driver, mon câblage est bon le moteur tourne bien mais même quand je ne connecte pas l'Arduino il fait fait deux tour dans un sens puis dans, l'autre. Et cela continu même quand je branche l'Arduino seule EN fonctionne et permet d'arrêter le moteur sinon le moteur continu de faire ses tours. Moon code que j'ai fait demande juste que quand j'appui sur le bouton le moteur tourne dans un seul sens et ce qui ne marche donc pas vu que quand j'appui sur le bouton il continu a faire ses aller retour. Pour ce qui est du branchement j'ai le com+ sur le 5v Arduino, STEP sur le STEP (2) et DIR sur le DIR (3) EN (4)

Voici mon code en esperanto que qlqn puisse m'aider.

#include <AccelStepper.h>

// Configuration des broches de contrôle du driver TB6600
#define stepPin 2
#define enablePin 4
#define dirPin 3

// Configuration du bouton poussoir
#define buttonPin 7

// Configuration de la vitesse et de l'accélération du moteur
#define motorSpeed 1000
#define motorAcceleration 1000

// Création d'un objet AccelStepper pour contrôler le moteur
AccelStepper stepper(1, stepPin, dirPin);

void setup() {
  // Configuration des broches de contrôle du moteur
  pinMode(stepPin, OUTPUT);
  pinMode(enablePin, OUTPUT);
  pinMode(dirPin, OUTPUT);

  // Configuration du bouton poussoir
  pinMode(buttonPin, INPUT_PULLUP);

  // Désactivation du moteur au démarrage
  digitalWrite(enablePin, HIGH);

  // Configuration des paramètres du moteur
  stepper.setMaxSpeed(motorSpeed);
  stepper.setAcceleration(motorAcceleration);
}

void loop() {
  // Lecture de l'état du bouton poussoir
  int buttonState = digitalRead(buttonPin);

  // Si le bouton est enfoncé, on active le moteur dans le sens horaire
  if (buttonState == LOW) {
    digitalWrite(enablePin, LOW); // Activation du driver
    stepper.setPinsInverted(false, false, true); // Sens horaire
    stepper.setSpeed(motorSpeed); // Vitesse constante
    stepper.runSpeed(); // Démarrage du mouvement
  } 
  else { // Si le bouton est relâché, on arrête le moteur et on le freine
    stepper.stop(); // Arrêt du mouvement
    stepper.setSpeed(0); // Vitesse nulle pour freiner
   
    digitalWrite(enablePin, HIGH); // Désactivation du driver
  }
}

:warning:
Post mis dans la mauvaise section, on parle anglais dans les forums généraux. déplacé vers le forum francophone.

Merci de prendre en compte les recommandations listées dans Les bonnes pratiques du Forum Francophone

Pour qu'un moteur tourne, il faut lui envoyer des impulsions. Si il tourne sans l'Arduino, je suppose que tu dois être en mode test:

Bonjour oui j'ai verifier le bouton est bien en position haute j'ai essayer avec deux driver ca fait toujours la même chose mais en dirais qu'il est bloquer en mode test

Bonjour alexdctr

J'ai essayé ton code, mais avec un driver A4988, il fonctionne très bien.
Quelques petites remarques:
stepper.setPinsInverted(false, false, true); // Sens horaire
se met dans setup(), ça fait partie de la configuration de la commande de ton driver. Su tu veux inverser le sens de rotation, utilises motorSpeed ou -motorSpeed
As-tu un schéma ou une photo en gros plan de ton montage?

Dans ce cas, comment est alimenté le montage?

Cordialement
jpbbricole


bonjour voici mon montage mon driver est alimenté en 24v via une alimentation liée au driver
comme dit précedement c'est comme si le driver est bloquer en mode test

Bonjour alexdctr

Je ne vois pas d'autre cause :woozy_face:, au vu de ta photo tout semble OK

Cordialement
jpbbricole

Pourquoi le capot n'est pas présent? Il a été démonté? Il est de récupération?

Non juste j'ai ouvert pour faire des essais de branchements
il est neuf

Bonjour alexdctr

Si tu peux accéder sous le PCB, avec un ohmmètre, sur les bornes du switch
image
mesurer si il y a de l'effet quand tu actionnes le switch 1, celui du self-test.

Cordialement
jpbbricole

Et le switch dans l'autre position? Il n'y aurait pas une inversion sue la doc?

J'ai vérifier le switch à l'air de fonctionner on entend même le changement de lorsqu'on passe de l'un a l'autre

Dans les deux sens ça fait la même chose.

Bonjour alexdctr

Il faudrait mesurer, dessous, avec un ohmmètre, voir s'il y a court-circuit quand il est ON et plus de court-circuit quand il est OFF.

Cordialement
jpbbricole

Il faut bien faire l'essai Arduino débranché. C'est le cas?

oui l'arduino est debranché

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.