A4988 moteur pas à pas

Bonjour,

J'ai installé un drive A4988 avec moteur pas à pas et une potentiomètre pour varier la vitesse j'ai consulter des forum et des vidéo puis j'ai trouver ce code masi je n'arrive pas a comprendre comment diminuer la vitesse encore plus dans le code.

Voici mon code :

const int stepPin = 3;
const int dirPin = 4;
int customDelay,customDelayMapped;

void setup() {
  pinMode(stepPin, OUTPUT);
  pinMode(dirPin, OUTPUT);

  digitalWrite(dirPin, HIGH);
}

void loop() {

  customDelayMapped = speedUp ();

  digitalWrite(stepPin, HIGH);
  delayMicroseconds(customDelayMapped);
  digitalWrite(stepPin, LOW);
  delayMicroseconds(customDelayMapped);
}

int speedUp() {
  int customDelay = analogRead(A0);
  int newCustom = map(customDelay, 0, 1024, 0, 500);
  return newCustom;
}

Et voivi le schéma de cablage :

Bonsoir.
C'est avec la ligne

int newCustom = map(customDelay, 0, 1024, 0, 500);

https://www.arduino.cc/reference/en/language/functions/math/map/
essaye avec

map(customDelay, 0, 1024, 0, 600);

ou

map(customDelay, 0, 1024, 0, 700);

etc...

Plus tu augmenteras la dernier chiffre, plus tu augmenteras ton delayMicro()

500, 600, 700, … Attention à ne pas dépasser 16383 qui est le maxi possible pour delayMicroseconds()

Merci, alors quand le potentiomètre et côté gauche le moteur tourne doucement mais quand jaugmente la vitesse côté droit le moteur tourne hyper vite et se dephase comment je peut régler la vitesse maxi côté droit ?

Ou avez-vous d'autre manière de coder un A4988 avec un potentiomètre ?

As-tu compris la fonction map ?
Augmente dans ce cas là le chiffre 0 en fin de function

map(customDelay, 0, 1024, LIMITE BASSE, LIMITE HAUTE);

Dans ton cas, change la limite basse pour limiter la vitesse max.

J'ai lu le lien que tu ma envoyer mais comprend pas trop

Alors en gros, tu fournies une donnée entre x et y, et la fonction te renvoi un équivalent proportionnel entre a et b:
map (valeur, x, y, a, b)

C'est plus clair ? :slight_smile:

Edit: c'est globalement un produit en croix.

Ma donnée entre X et Y sa correspond a quoi pour un moteur pas a pas car sa va fachemetn vite et il y aurai pas une manière autre que celle la pour moteur pas a pas avec potentiomètre et A4988 ?

Ben ça j'en sais rien, soit tu regardes dans la datasheet, soit tu testes avec des valeurs différentes.
Tu peux utiliser un L293D il me semble.
Edit: tout depend le moteur aussi....

Moteur Nema 17 et tu sais comment on augmente le couple de ces moteurs ?

Ma donnée entre X et Y sa correspond a quoi pour un moteur pas a pas car sa va fachemetn vite

C’est les valeurs mini et maxi lues du potentiomètre. C’est donc les valeurs mini et maxi de la conversion. C’est fixé par le constructeur 0V → 0 5V ->1024

a,b c’est les temps en µs d’attente entre les demi pas du moteur. Plus ce nombre est petit, plus le temps d’attente est court, et plus il va vite. a s’occupe de la vitesse quand le potentiomètre donne 0V et b quand le potentiomètre donne 5V
voir post #5 si le moteur va trop vite. En gros a règle l’inverse de la vitesse maxi, b l’inverse de la vitesse mini

Ma donnée entre X et Y sa correspond a quoi pour un moteur pas a pas car sa va fachemetn vite et il y aurai pas une manière autre que celle la pour moteur pas a pas avec potentiomètre et A4988 ?

Il faut que tu précises ce que tu veux faire. Pour l’instant tu as présenté “je veux faire varier la vitesse avec un potentiomètre”.

Moteur Nema 17 et tu sais comment on augmente le couple de ces moteurs ?

Nema 17 veut dire à peu près “moteur pas à pas qui a une semelle carrée de 42mm (1,7 pouces)”. Pour augmenter le couple, il faut déja que l’on ne soit pas au maxi. Pour cela, il faut savoir de quel moteur il s’agit et comment il est branché (notamment la tension d’alimentation). Ensuite il faut préciser si tu veux augmenter le couple pour les basses vitesses ou pour les vitesses élevées.

Alors merci beaucoup pour toute les informations alors cest un nema 17HS4401 je realise un puller tireur de file pour mon extrudeuse de filament il entraine un rouleau assez gros.

J'aimerai varier la vitesse assez doucement avec le debit de lextudeuse que je connais pas et il me faudrai un couple assez elever pour pas que les rouleaux bloc quand il entraine le filament.

La tension d'alimention est marquer sur le schéma poste 1.

12V donc ... C'est plus court à écrire que : "La tension d'alimention est marquer sur le schéma poste 1" :smiley:

Oui 12v oui cest vrai cetait plus cours a ecrire mdrr.

Si vous avez des idées je suis preneur

C'est loin, et je lis une dizaine de posts. cela se mélange parfois. On n'a pas toujours tous les éléments du dossier par coeur.

Le 17HS4401 a pour caractéristiques:
Courant phase 1,7A
Résistance 1,5 ohms
Inductance 2,8mH
Couple 40 Ncm
Ce moteur se commande en courant.

Le couple maximal est obtenu pour un courant de 1,7A dans les phases (en mode deux phase à la fois). Il faut donc régler le courant à cette valeur, voir cette partie , paragraphe "Montage pour moteur bipolaire avec un A4988, commande du moteur en courant ou en tension", sous paragraphe "Quand on utilise un moteur bipolaire commandé en courant"
A priori, je crois que ce courant de 2.38A ne peut pas être atteint avec les valeurs des composants sur la carte à A4988 et de toutes façons la limite du A4988 est de 2A.

Si on veut profiter du 17HS4401 au maximum, il faut un driver plus puissant.

Attention aussi, au fonctionnement nominal, le point le plus chaud du moteur atteint les 105°C, et le boîtier devrait atteindre les 70°C. C'est normal, mais baisser la température de 10°C double la durée de vie. Les chauds lapins ont la vie courte.

Quelle driver me conseille tu ?

Sur mon imprimante 3D jai une carte rapms 1.4 avec les meme moteur et les meme driver et cela marche super bien avec un bon couple ...
Pourquoi cela ne marche pas en direct ?
Aussi non jai une carte nano shield

Pourquoi cela ne marche pas en direct ?

Il y a le même couple si c'est les mêmes moteurs, les mêmes drivers et la même tension d'alimentation. Si il y a une différence c'est peut être qu'en direct le A4988 n'a pas été réglé correctement comme l'autre.
Attention aussi il y a des cartes à A4988 qui se ressemblent mais qui n'ont pas le mêmes résistances. l'un peut par exemple donner un courant maxi de 1,8A et l'autre seulement 1,2A. Et le couple est poroportionnel au courant

Et quand on dit les même moteurs, il faut bien comprendre les mêmes numéros de moteurs. le 17HS15-0404S et le 17HS15-0406S sont deux moteurs qui ont le même aspect extérieur, mais le premier développe 45Ncm et le second 26Ncm.

Quelle driver me conseille tu ?

Je n'ai que des A4988 parce qu'ils sont peu cher, et qu'ils sont rapides (on peut aller plus vite). Mais mes moteurs sont sous alimentés et du coup, ils ne chauffent pas. Pour l'instant la demi puissance me suffit. Donc difficile de conseiller un autre driver que je ne connais pas.