Moteur nema 17 cartre arduino uno pilote A4988 viariation de vitesse manége

Bonjour à tous
Je débute dans l’adruino ce qui m’intéresse c’est les moteurs pas à pas nema17 et 28byj48.
Pour piloter mes moteurs 28byj48 j’utilise Contrôleur ULN2003 via arduino uno.
Pour les nema 17 le pilote A4988 via adruino uno.
J’ai fait mes essais branchement test divers j’arrive à faire des choses très basique en modifiant des bouts de programme trouver sur le net .Mais j’aimerai faire mon propre cycle de programmation pour mes moteurs. Ce que je souhaite c’est programmer un moteur lui faire faire x tours a x vitesse dans un sens puis x tour a x vitesse dans un autre sens etc…Bref pouvoir faire varier vitesse et tour comme sur un manège .Faire un cycle complet via une impulsion sur boutons ou en boucle avec pause entre chaque cycle .je vous colle en bas de mesage un petit bout de programme pour mon Nema.Merci de me dire si j’ai bien fait ce bout de programme .J’aimerai aussi plus tard faire démarrer le moteur progressivement et accélérer sa vitesse progressivement Lorsque j’aurais réussi a programmer mes cycles correctement je mettrai une carte arduino nano qui sera directement dans mes maquettes pour un fonctionnement autonome. Désoler d’être long et surtout j’espère avoir été clair .Merci a vous
#include <Stepper.h>

const int stepsPerRevolution = 800; //800 pour le nema17 = 1 tour
int Nbre_tour ;
// initialiser la bibliotheque stepper sur les broches D8 a D11:
Stepper myStepper(stepsPerRevolution, 8,10,9,11); //Attribution des broches

void setup() {
// reglage de la vitesse (nema 17):

// initialize the serial port:
Serial.begin(9600);
}

void loop() {

Nbre_tour = 10; //Faire 10 tours dans un sens:
Serial.println(“clockwise”);
myStepper.setSpeed(150); // de 0 a 400 vitesse de rotation
myStepper.step(stepsPerRevolution*Nbre_tour);
delay(1000);

Nbre_tour = 5; //Faire 5 tours dans l autre sens:
Serial.println(“counterclockwise”);
myStepper.setSpeed(400); // de 0 a 400 vitesse de rotation
myStepper.step(-stepsPerRevolution*Nbre_tour);
delay(1000);

Nbre_tour = 3; //Faire 3 tours dans un sens:
Serial.println(“clockwise”);
myStepper.setSpeed(20); // de 0 a 400 vitesse de rotation
myStepper.step(stepsPerRevolution*Nbre_tour);
delay(1000);

Nbre_tour = 2; //Faire 2 tours dans l autre sens:
Serial.println(“counterclockwise”);
myStepper.setSpeed(100); // de 0 a 400 vitesse de rotation
myStepper.step(-stepsPerRevolution*Nbre_tour);
delay(1000);
}

Bonjour,
déjà si cela fonctionne comme tu le souhaites, c'est que le programme n'est pas mal fait
après on peut toujours apporter des améliorations plus ou moins pertinentes

merci d'avoir lu mon post

Oui en effet cela fonctionne ce que je ne sais pas faire c'est faire monter en vitesse progressivement .
la dans ce bout de code j'indique une vitesse donné et un nombre de tour et un sens.
ce que j'aimerai c'est une vitesse progressive et une fois atteint cette vitesse un nombre de tour donné puis un ralentissement progressif jusqu'a l'arret par exemple .

merci d'avoir lu mon post

Bonjour,
(de rien !)

à ce stade tu as 2 solutions :

  • la plus logique : rechercher la biblio qui fait déjà ce que tu souhaites (je suppose que cela existe)
  • ou, à titre didactique, partir du code que tu as et le compléter pour obtenir tes variations d'allure

laquelle à ta préférence ?

bon j'ai reussi a varier progressivement en ne mettant pas de delais tout simplement....

Maintenant il faut que je pilote 2 moteur nema 17 avec une carte Arduino Uno ou nano et 2 Driver a4988 piloter 2 moteur NEMA 17 (avec des cycles differents) c'est possible ? Je ne trouve pas

Bonjour,
d'après ce que j'ai pu googler, la librairie AccelStepper te permettra de faire tout ce que tu souhaites

merci pour l'info je vais allez voir ce soir...maintenant je vais aussi ajouter du son a ma maquette grace au module "DFPlayer module de lecteur mp3 pour Arduino" j'espere reussir a synchoniser les moteurs et le son en meme temps...bientot les photos