Nema17

Questions générales, news, discussion sur l'Arduino
Frida
Pied Tendre
Messages : 7
Enregistré le : 02 nov. 2020, 16:14

Nema17

Message non lu par Frida » 07 déc. 2020, 22:19

Bonsoir à tous,
Je voudrai faire marcher un moteur Nema 17,( moteur pas à pas) avec arduino uno, et le vendeur me montre un code pour essai, mais "couac" :
code :

Code : Tout sélectionner

#include <grbl.h>

// Do not alter this file!
#define EN 8 // Fin d'activation du moteur pas à pas, low effective
#define X_DIR 5 // X axis stepper motor direction control
#define Y_DIR 6 //y axis stepper motor direction control
#define Z_DIR 7 //z axis stepper motor direction control
#define X_STP 2 //x axis stepping control
#define Y_STP 3 //y axis step control
#define Z_STP 4 //z-axis Step Control
/* // Fonction : Step Function : Controls Stepper Direction du moteur, numéro d'étape.
 *  // Paramètres : contrôle de direction de Dir, dirPin correspond à la broche DIR du moteur pas à pas, StepperPin correspond à la broche pas à pas du moteur pas à pas, Step Step
 *  // Aucune valeur de retour
*/
void step (boolean dir, byte dirPin, byte stepperPin, int steps) {
digitalWrite (dirPin,dir);
delay(50);
for (int i = 0; i< steps; i++) {
  digitalWrite(stepperPin, HIGH);
delayMicroseconds(800);
digitalWrite(stepperPin, LOW);
delayMicroseconds(800);
} }
void setup(){// Définit la broche IO utilisée par le moteur pas à pas sur pinMode de sortie
pinMode(X_DIR, OUTPUT); pinMode(X_STP, OUTPUT);
pinMode(Y_DIR, OUTPUT); pinMode(Y_STP, OUTPUT);
pinMode(Z_DIR, OUTPUT); pinMode(Z_STP, OUTPUT);pinMode(EN, OUTPUT);
digitalWrite(EN,LOW);
}
void loop(){
  step(false, X_DIR, X_STP, 200); //X axis motor turns 1 turn in reverse, 200 steps in one
  step(false, Y_DIR, Y_STP, 200); //y axis motor is reverse 1 turn, 200 steps is one
  step (false, Z_DIR, Z_STP, 200); //z axis motor is reverse 1 turn, 200 steps is one
  delay(1000);
step(true, X_DIR, X_STP, 200);//X axis motor 1 positive turn, 200 steps one
step (true, Y_DIR, Y_STP, 200); //y axis motor 1 turn plus, 200 steps one
step(true, Z_DIR, Z_STP, 200); //z axis motor 1 positive turn, 200 steps one
delay(1000);
}

j'obtiens ce commentaire :

Code : Tout sélectionner

Arduino : 1.8.13 (Windows 10), Carte : "Arduino Uno"
wiring.c.o (symbol from plugin): In function `__vector_16':
(.text+0x0): multiple definition of `__vector_16'
libraries\grbl\stepper.c.o (symbol from plugin):(.text+0x0): first defined here
collect2.exe: error: ld returned 1 exit status
exit status 1

Erreur de compilation pour la carte Arduino Uno
Ce rapport pourrait être plus détaillé avec
l'option "Afficher les résultats détaillés de la compilation"
activée dans Fichier -> Préférences.

Que se passe t-il ??
je précise que je suis un peu débutant , j'ai donc besoin d’être épaulé :)
merci à ceux qui pourront m'éclairer
Avatar du membre
DranerB
Administrateur
Messages : 2208
Enregistré le : 31 janv. 2019, 11:56
Localisation : Bourbon-Lancy, France
A remercié : 110 fois
A été remercié : 224 fois
Contact :

Re: Nema17

Message non lu par DranerB » 08 déc. 2020, 00:28

Frida a écrit : 07 déc. 2020, 22:19 Bonsoir à tous,
Je voudrai faire marcher un moteur Nema 17,( moteur pas à pas) avec arduino uno, et le vendeur me montre un code pour essai, mais "couac" :
code :

Code : Tout sélectionner

#include <grbl.h>

// Do not alter this file!
#define EN 8 // Fin d'activation du moteur pas à pas, low effective
#define X_DIR 5 // X axis stepper motor direction control
#define Y_DIR 6 //y axis stepper motor direction control
#define Z_DIR 7 //z axis stepper motor direction control
#define X_STP 2 //x axis stepping control
#define Y_STP 3 //y axis step control
#define Z_STP 4 //z-axis Step Control
/* // Fonction : Step Function : Controls Stepper Direction du moteur, numéro d'étape.
 *  // Paramètres : contrôle de direction de Dir, dirPin correspond à la broche DIR du moteur pas à pas, StepperPin correspond à la broche pas à pas du moteur pas à pas, Step Step
 *  // Aucune valeur de retour
*/
void step (boolean dir, byte dirPin, byte stepperPin, int steps) {
digitalWrite (dirPin,dir);
delay(50);
for (int i = 0; i< steps; i++) {
  digitalWrite(stepperPin, HIGH);
delayMicroseconds(800);
digitalWrite(stepperPin, LOW);
delayMicroseconds(800);
} }
void setup(){// Définit la broche IO utilisée par le moteur pas à pas sur pinMode de sortie
pinMode(X_DIR, OUTPUT); pinMode(X_STP, OUTPUT);
pinMode(Y_DIR, OUTPUT); pinMode(Y_STP, OUTPUT);
pinMode(Z_DIR, OUTPUT); pinMode(Z_STP, OUTPUT);pinMode(EN, OUTPUT);
digitalWrite(EN,LOW);
}
void loop(){
  step(false, X_DIR, X_STP, 200); //X axis motor turns 1 turn in reverse, 200 steps in one
  step(false, Y_DIR, Y_STP, 200); //y axis motor is reverse 1 turn, 200 steps is one
  step (false, Z_DIR, Z_STP, 200); //z axis motor is reverse 1 turn, 200 steps is one
  delay(1000);
step(true, X_DIR, X_STP, 200);//X axis motor 1 positive turn, 200 steps one
step (true, Y_DIR, Y_STP, 200); //y axis motor 1 turn plus, 200 steps one
step(true, Z_DIR, Z_STP, 200); //z axis motor 1 positive turn, 200 steps one
delay(1000);
}

j'obtiens ce commentaire :

Code : Tout sélectionner

Arduino : 1.8.13 (Windows 10), Carte : "Arduino Uno"
wiring.c.o (symbol from plugin): In function `__vector_16':
(.text+0x0): multiple definition of `__vector_16'
libraries\grbl\stepper.c.o (symbol from plugin):(.text+0x0): first defined here
collect2.exe: error: ld returned 1 exit status
exit status 1

Erreur de compilation pour la carte Arduino Uno
Ce rapport pourrait être plus détaillé avec
l'option "Afficher les résultats détaillés de la compilation"
activée dans Fichier -> Préférences.

Que se passe t-il ??
je précise que je suis un peu débutant , j'ai donc besoin d’être épaulé :)
merci à ceux qui pourront m'éclairer
Tu veux compiler GRBL ? Explications pas à pas ici: https://lebearcnc.com/installer-grbl-su ... eleverser/
Bien Cordialement,
Bernard
Image
Frida
Pied Tendre
Messages : 7
Enregistré le : 02 nov. 2020, 16:14

Re: Nema17

Message non lu par Frida » 08 déc. 2020, 11:27

Bonjour,
D'abord merci :D
oui, j'ai bien compilé GRBL
voir pièces jointes
grbl.docx
conseiller
que dois-je faire maintenant
où rajouter le code ?
après " ligne29 // Do not alter this file! " ?
merci de bien vouloir me conseiller
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
sourisbulle
Apprenti Confirmé
Messages : 89
Enregistré le : 24 déc. 2019, 16:28
A remercié : 6 fois
A été remercié : 9 fois

Re: Nema17

Message non lu par sourisbulle » 10 déc. 2020, 10:04

hello!

à mon avis, le code que ton vendeur t'a donne est inutile,sa seule fonction c'est de faire un tour, attendre une seconde et revenir sur chaque moteur :

void loop(){
step(false, X_DIR, X_STP, 200); //X axis motor turns 1 turn in reverse, 200 steps in one
step(false, Y_DIR, Y_STP, 200); //y axis motor is reverse 1 turn, 200 steps is one
step (false, Z_DIR, Z_STP, 200); //z axis motor is reverse 1 turn, 200 steps is one
delay(1000);
step(true, X_DIR, X_STP, 200);//X axis motor 1 positive turn, 200 steps one
step (true, Y_DIR, Y_STP, 200); //y axis motor 1 turn plus, 200 steps one
step(true, Z_DIR, Z_STP, 200); //z axis motor 1 positive turn, 200 steps one
delay(1000);
}



si tu as deja compile et charge grbl, tout est fait, tu lance cncjs, bcnc ou celui qui te plait ,

ensuite yapuka tester la machine...

JF
Répondre