Moteur pas a pas nema 17 et uln 2003

Bonjour,
Voila que j’arrive plus a faire fonctionner ma machine .
J’ai donc tout repris, tout recabler ,mais sa fonctionne pas comme je veux ma bobine ne s’entraine plus . Jme suis dit que le moteur etait peut etre faible.
un nema 17 30ncm.

J’ai acheter un nema 17 plus performant un 59 ncm .
Mais sa me fait pareille. Je trouve le bruit du moteur complètement bizarre.

Je me suis peut être tromper dans le câblage de celui ci !
Voici mon moteur , sa fiche
Et le driver A4988 avec son schemas .


Est ce que l’ont peut m’expliquer qui brancher sur quoi car je m’en sort pas le moteur fait absolument n’importe quoi et le deuxième pareille .
Je vous remercie.

Bonsoir lefourbi

Pour commencer, regardes ici.

Quel tension as-tu sur VMOT

et mets ton programme en ligne.

A+
Cordialement
jpbbricole

Merci pour votre réponse,
J’ai du 12volt sur v mot avec le condo

J’ai bien etudier les shemas que vous me renvoyer ,
Le probleme et que je ne c’est pas a quoi corrspond 1A 1B et 2A 2B
J’ai bien dissocier mes deux bobine mais pour le plus le moins comment savoir qui va ou ?
Par ce que d’un coter on parle en 1 et 2 a et b et de l’autre en a+ b+ a- b- du coup je comprend pas :face_with_monocle:

Bonjour lefourbi

image
Si le moteur ne tourne pas fluide, inverser 1A et 1B.

Pourrais tu mettre ton programme en ligne, le problème peut aussi provenir de celui-ci.

Au repos, le montage alimenté, peux tu facilement tourner l'axe du moteur à la main ou sens tu qu'il y a de la retenue?
Quel tension as tu sur VMOT

A+
Cordialement
jpbbricole

D’accord je vous remercie grandement .

est ce que je risque de cramer quelque chose si je branche mal ,sachant que les manip de branchement ce feront sans tension ?

aujourd’hui j’ai pas mal de choses a faire.

je vais voir si c’est faisable ce soir j’essaie de refaire mon projet sur bred bord , je vous mettrais le code avec .

Pour ce qui est du moteur je ne c’est pas mais il me semble que l’ont ne peut pas le tourné ya le courant qui le maintien en position , on entant l'électricité dans le nema :face_with_monocle:

Petite question = le 1 represente un bobinage le 2 aussi un bobinage.
pourquoi le A sur une bobine représente le + et sur l’autre bobine le moins .

J’ai besoin de comprendre pourquoi :disguised_face: si jamais on peut m’apporter la réponse sa m’aiderais a l’avenir savoir c’est bien avoir comprit c’est mieux .

Bonjour lefourbi

Côté branchements du moteur, non, au pire le moteur tourne mal.
Le seul truc à ne pas faire avec ces drivers A4988, est de les mettre à l'envers sur leur support :woozy_face:

C'est bon signe :wink:

Pour dire juste la commande des bobinages A et B

Cette dénomination prête à confusion :woozy_face:
Si on prend le A4988 (D) d'un côté le le NEMA (N) de l'autre:
D = 1 N = A
D = 2 N = B

D = A N = +
D = B N = -

Donc, côté driver on nimérote les commandes de moteur 1 et 2, côté moteur on numérote les bobines A et B et on numérote les pôles, côté driver A et B et côté bobinage, + et -

Suis je assez clair :wink:

A+
Bonne et belle journée.
jpbbricole

Merci encore oui j’ai bien compris mais je relis mille fois pour pas me tromper car j’ai pas integrer encore mais j’ai compris vos explications merci beaucoup,

Du coup j’ai pas compris quelque choses sur le driver il y a une bobine brancher au millieu et l’autre bobine et cable au dessu et au dessous du premier bobinage si j’ai bien compris d’apres votre schemas que vous m’avez repondu ,
Car je vois cela sur le net :

Du coup je me pers un peut je c’est pas si c’est une erreur ?

D'après la photo que je vois , j’ai compris une bobine ce branche sur les deux pin du haut et l’autres sur les pin du bas .

D'après votre réponse une bobine sur les deux pin du milieux et l’autres autour de ces deux pin .
J'espère que je me suis bien exprimer.
Merci

Bonsoir lefourbi

Pour faire simple comme

image
Les deux fils d'une bobine sur les points 1 les deux fils de l'autre bobine sur les points 2
Si le moteur tourne mal, croiser les fils d'une bobine.

A+
Cordialement
jpbbricole

Pas du tout d'accord avec ce qui a été dit. Il faut mettre une bobine sur les broches repérées 1 et l'autre bobine sur les broches repérées 2. Dans un premier temps, on se moque complètement des inversions entre les A et les B ou les + et les -, ainsi que de savoir quelle bobine est sur 1 ou sur 2. Si le moteur tourne dans le mauvais sens, on corrige en inversant une bobine ou directement par le logiciel. Cela permet de faire un câblage plus simplement.

Si le moteur tourne mal, c'est que l'on a mis les bobines à cheval sur 1 et 2. Croiser les fils d'une bobine fera seulement tourner le moteur dans l'autre sens.

Je suis d'accord avec la photo et avec la première phrase. Pas avec le fait de mettre une bobine sur les pins du milieu.

comment faire pour envoyer des videos ?

voici le seul code trouver qui fonctionne bien :

const int stepPin = 9;
const int dirPin = 8;


const int stepsPerRev=200;
int pulseWidthMicros = 100;  // microseconds
int millisBtwnSteps = 1000;

void setup() {
  Serial.begin(9600);
  pinMode(stepPin, OUTPUT);
  pinMode(dirPin, OUTPUT);
 
  Serial.println(F("A4988 Initialized"));
}

void loop() {
  Serial.println(F("Running clockwise"));
  digitalWrite(dirPin, HIGH); // Enables the motor to move in a particular direction
  // Makes 200 pulses for making one full cycle rotation
  for (int i = 0; i < stepsPerRev; i++) {
    digitalWrite(stepPin, HIGH);
    delayMicroseconds(pulseWidthMicros);
    digitalWrite(stepPin, LOW);
    delayMicroseconds(millisBtwnSteps);
  }
  delay(1000); // One second delay

  Serial.println(F("Running counter-clockwise"));
  digitalWrite(dirPin, LOW); //Changes the rotations direction
  // Makes 400 pulses for making two full cycle rotation
  for (int i = 0; i < 2*stepsPerRev; i++) {
    digitalWrite(stepPin, HIGH);
    delayMicroseconds(pulseWidthMicros);
    digitalWrite(stepPin, LOW);
    delayMicroseconds(millisBtwnSteps);
  }
  delay(1000);
}```
`

saisissez ou collez du code ici

`, les code d'exemple stepper de l'ide font faire n'importe quoi au moteur .


j'ai besoin que le moteur tourne a condition que le capteur ultrason hc 04 ait une distance inferieur a 10 cm , j'arrive pas a tt faire le code emssemble , soit le moteur tourne bien soit le capteur marche bien mais les deux emssemble j'arrive plus :melting_face: sa rend fou

Je crois qu'on ne peut pas mettre de vidéo sur le forum, mais on peut mettre un lien sur une vidéo se trouvant ailleurs, par exemple sur youtube.

Merci a tous pour votre aide, voici un aperçu de la machine, a bientôt pour mon futur projet , j’ai poster une video sur you tube .

Lien en dessous
Machine final

J’ai de petit bruit comme sa quand sa ne tourne pas est ce normal que puis je faire un stop moteur a chaque fin de boucle ?
Comment faire , quand le moteur et mal caller sa donne des petit a coup j’ai l’impression .
Voir deuxième lien :

Bruit anormal

mon code :


const int DIR_PIN = 8;
const int STEP_PIN = 9;
const int ENABLE_PIN = 6;
const int TRIGGER_PIN = 10;
const int ECHO_PIN = 11;
const int MAX_DISTANCE = 200; // Distance maximale en centimètres
const int MIN_DISTANCE = 10;   // Distance minimale en centimètres
const int LARGEUR_CRENEAU_H = 1000;
const int LARGEUR_CRENAU_L = 1000;
const int STEPS_PER_REVOLUTION = 1500; // Nombre de pas par révolution du moteur

NewPing sonar(TRIGGER_PIN, ECHO_PIN); // Crée une instance de l'objet sonar

void setup() {
  pinMode(DIR_PIN, OUTPUT);
  pinMode(STEP_PIN, OUTPUT);
  pinMode(ENABLE_PIN, OUTPUT);
  
  digitalWrite(ENABLE_PIN, LOW); // Active le moteur
  
  Serial.begin(9600);
}

void loop() {
  delay(50); // Attendre 50ms entre chaque mesure pour éviter les faux positifs
  
  int distance = sonar.ping_cm(); // Mesure la distance en centimètres
  
  if (distance < MIN_DISTANCE) { // Si la distance est inférieure à 10 cm
    digitalWrite(DIR_PIN, LOW); // Inverse la direction du moteur (était HIGH, maintenant LOW)
    for (int i = 0; i < STEPS_PER_REVOLUTION; i++) {
      digitalWrite(STEP_PIN, HIGH);
      delayMicroseconds(LARGEUR_CRENEAU_H); // Temps de pulse
      digitalWrite(STEP_PIN, LOW);
      delayMicroseconds(LARGEUR_CRENAU_L); // Temps de pulse
    }
    delay(1000); // Attendre avant de faire une autre mesure
  }

}


D'après le programme que je vois, il n'y a pas d'inversion du sens du moteur. Et le moteur est parfaitement à l'arrêt si il ne doit pas dérouler le fil. Le programme ci dessus est bien celui qui est dans la carte? Avant il y avait éventuellement une inversion du sens.

MAX_DISTANCE n'est plus utilisé et le commentaire
"// Inverse la direction du moteur (était HIGH, maintenant LOW)" est faux

Si on veut voir si c'est un problème d'ordre envoyés au moteur, il suffit de supprimer la partie incriminée, par exemple en envoyant le code:

void loop() {
  delay(50); // Attendre 50ms entre chaque mesure pour éviter les faux positifs
  
  int distance = sonar.ping_cm(); // Mesure la distance en centimètres
  
}

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