Bonjour, j’ai 17 ans et suis actuellement en deuxième année d’apprentissage d’automaticien. J’ai voulu me lancer dans le projet de fabriquer une graveuse laser. Je l’ai terminé, j’ai voulu faire mes premiers tests mais mes moteurs ne tournent pas, pourtant il font du bruit et il y a bien de la puissance qui va aux moteurs car quand ils sont allumés je n’arrive pas à les faire tourner à la main, alors que quand ils ne sont pas allumés je peux. J’ai essayé de me renseigner sur internet mais je ne trouve rien à ce sujet.
J’ai un cnc Shield v4
Des drivers 4988
Un arduino nano
2 moteurs pas a pas 17HS4401
Une alime de 12v 5A
Voilà pour ma configuration, j’espère que vous pourrez m’aider à résoudre mon problème.
Mets le programme de test en ligne.
Sur quoi t'est tu basé pour le brochage des DIR et STEP, parce que par rapport à GRBL, pour les quels ces shields sont faits, STEP et DIR sont souvent inversés, à mesurer.
Premièrement tes moteurs sont-ils libres ? -> il ne faudrait pas que ce soit l'organe qu'ils doivent entrainer qui soit bloqué.
Un essais a vide et indispensable pour lever le doute.
Comment les commandes tu ?
Je parle purement du matériel.
Avec un simple pont en H ou avec des circuits dédiés comme un A4988 ou un DRV8825 ?
Si c'est avec des circuits dédiés comment as-tu réglé le courant max ?
La datasheet du moteur est disponible ici :
Tu devrais aussi donner le code utilisé (merci d'utiliser les balises codes sinon le code est très difficile à lire et en général il n'est pas lu).
Si comme je l'ai expliqué plus haut, que tu utilises GRBL, et que STEP et DIR sont croisés sur ton shield, ill faut faire la modification dans le fichier GRBL, cpu_map_atmega328p.h ou cpu_map. (dépend version GRBL) en changeant ce bloc de lignes.
// Define step pulse output pins. NOTE: All step bit pins must be on the same port.
#define STEP_DDR DDRD
#define STEP_PORT PORTD
#define X_STEP_BIT 5 // Uno or Nano Digital Pin 2
#define Y_STEP_BIT 6 // Uno or Nano Digital Pin 3
#define Z_STEP_BIT 7 // Uno or Nano Digital Pin 4
#define STEP_MASK ((1<<X_STEP_BIT)|(1<<Y_STEP_BIT)|(1<<Z_STEP_BIT)) // All step bits
// Define step direction output pins. NOTE: All direction pins must be on the same port.
#define DIRECTION_DDR DDRD
#define DIRECTION_PORT PORTD
#define X_DIRECTION_BIT 2 // Uno or Nano Digital Pin 5
#define Y_DIRECTION_BIT 3 // Uno or Nano Digital Pin 6
#define Z_DIRECTION_BIT 4 // Uno or Nano Digital Pin 7
#define DIRECTION_MASK ((1<<X_DIRECTION_BIT)|(1<<Y_DIRECTION_BIT)|(1<<Z_DIRECTION_BIT)) // All direction bits
Alors j’utilise des drivers A4988 et ils peuvent donner maximum 2A. Oui j’ai regardé le datasheet des moteurs et il ont besoin de minimum 1,7 A pour fonctionner donc normalement c’est bon
Alors oui j’ai installé grbl dans l’arduino nano avec xloader. J’ai suivi un tuto YouTube, mais en soit j’ai pas le logiciel grbl physiquement du coup je sais pas trop comment je pourrais mettre cette ligne de code.
Et non je n’ai pas de multimètre chez moi pour pouvoir tester.
Et oui j’ai l’ide arduino j’avais d’abord essayé d’installer grbl dans l’arduino avec l’ide mais j’ai jamais pu, j’avais un message d’erreur comme si il reconnaît pas l’arduino, après c’est une copie chinoise donc c’est peut-être pour ça.
Oui pas de soucis je me suis inspiré 2 vidéos de la même personne. Sur le premier lien je me suis inspiré de la partie logiciel. Et pour le deuxième lien plus la partie construction et connexion.
Il y a pire avec cette copie completement ratée : tu ne peut faire que des pas entiers.
Sur les accès MS0 à MS2 le circuit intégré A4988, ou DRV8825, est équipé en interne de résistance de tirage à la masse (pull-down) et le "mauvais" copieur de la carte Keyes a implanté MS0 à MS2 comme s'il y avait des pull-up.
Il existe sur le net plusieurs documents qui indiquent les modifications à faire pour faire des µ pas : coupures de pistes et fils à souder.
Je trouve honteux que ces cartes soient toujours commercialisées, pourtant l'idée de réunir sur la même carte une nano et les pilotes de pas à pas est très bonne.
// Define step pulse output pins. NOTE: All step bit pins must be on the same port.
#define STEP_DDR DDRD
#define STEP_PORT PORTD
#define X_STEP_BIT 5 // Uno or Nano Digital Pin 2
#define Y_STEP_BIT 6 // Uno or Nano Digital Pin 3
#define Z_STEP_BIT 7 // Uno or Nano Digital Pin 4
#define STEP_MASK ((1<<X_STEP_BIT)|(1<<Y_STEP_BIT)|(1<<Z_STEP_BIT)) // All step bits
// Define step direction output pins. NOTE: All direction pins must be on the same port.
#define DIRECTION_DDR DDR
#define DIRECTION_PORT PORT
#define X_DIRECTION_BIT 2 // Uno or Nano Digital Pin 5
#define Y_DIRECTION_BIT 3 // Uno or Nano Digital Pin 6
#define Z_DIRECTION_BIT 4 // Uno or Nano Digital Pin 7
#define DIRECTION_MASK ((1<<X_DIRECTION_BIT)|(1<<Y_DIRECTION_BIT)|(1<<Z_DIRECTION_BIT)) // All direction bits
mais en Grbl 0.9j Nano 9600, je n’ai pas trouvé de 0.8c modifiable, mais ça devrait jouer. grbl.zip (138.4 KB)
Pour l’installer depuis l’IDE Arduino, dézipper grbl.zip, copier le répertoire grbl dans le répertoire libraries de l’IDE.