Arduino, Tutoriels

Comment utiliser Shield V3 CNC avec Arduino

Shield V3 Cnc Avec Arduino

Introduction

Shield V3 CNC est une carte d’extension open-source, destinée au contrôle des moteurs pas à pas d’une machine CNC à l’aide d’un Arduino. Il permet de contrôler jusqu’à quatre axes (X, Y, Z et A) et peut être utilisé pour une variété d’applications.

De plus, il offre des broches pour la commande de la broche et de la direction PWM, ainsi que des connecteurs pour les interrupteurs de fin de course et la fonction de refroidissement. Le Shield CNC V3 est alimenté par une tension de 12 à 36 V DC.

Shield V3 Pour Cnc Et Imprimant 3D

Les composants du Shield V3 CNC

Le Shield V3 CNC est conçu pour simplifier la connexion et la gestion des divers éléments d’une machine CNC ou d’une imprimante 3D. Ses composants clés comprennent :

  1. Supports de pilote de moteur pas à pas : Le Shield V3 CNC a quatre emplacements pour connecter les pilotes de moteur pas à pas. Ces emplacements sont compatibles avec les pilotes tels que A4988 ou DRV8825.
  2. Pins d’axe : Pour chaque pilote de moteur pas à pas, il y a des broches pour connecter les axes X, Y, Z et un axe optionnel (A, B, C ou D).
  3. Pins d’alimentation : Le shield a des pins d’alimentation pour la carte Arduino et les moteurs.
  4. Connecteurs de fin de course : Il y a aussi des broches pour connecter des interrupteurs de fin de course pour chaque axe (X+, X-, Y+, Y-, Z+, Z-).
  5. Sorties d’axes supplémentaires : Certaines versions du shield comprennent des sorties d’axes supplémentaires pour une flexibilité accrue.
  6. Jumpers de micro-stepping : Le Shield V3 CNC comporte des jumpers de micro-stepping pour configurer la résolution du moteur pas à pas (plein pas, demi-pas, 1/4 de pas, etc.).
  7. Borniers à vis : Des borniers à vis sont présents pour connecter facilement l’alimentation, les moteurs, et d’autres composants.
  8. Broches pour refroidissement, broche (Spindle) et direction : Ces broches permettent de contrôler l’activation/désactivation du moteur de la broche, sa vitesse (PWM) et la direction de sa rotation.

Spécifications Techniques du Shield V3 CNC

  • Compatibilité : Arduino UNO, GRBL 0.8 et 0.9
  • Alimentation : 12V-36V DC
  • Axes : 4 (X, Y, Z, A)
  • Entrées de fin de course : 2 pour chaque axe (6 au total)
  • Connexion : Prise pour une connexion I2C et UART (série)
  • Drivers de moteurs pas à pas : Support pour drivers amovibles compatibles A4988 ou DRV8825
  • Micro-pas : Configuration via des cavaliers

Options de driver pour le Shield V3 CNC

Le Shield V3 CNC est compatible avec deux types de pilotes pour les moteurs pas à pas :

  1. A4988 : Ces drivers sont une option populaire pour le Shield CNC V3. Ils sont faciles à utiliser et à configurer et sont disponibles dans une large gamme de tensions et de courants.
  2. DRV8825 : Ces drivers sont une option plus avancée pour le Shield CNC V3. Ils offrent une plage de tension plus large et une intensité plus élevée, les rendant plus adaptés pour les machines CNC plus complexes.

Avantages d’utiliser un Shield V3 CNC

  • Facilité d’utilisation et d’installation.
  • Compatibilité avec GRBL, le principal logiciel de commande numérique pour les machines CNC.
  • Capacité à contrôler jusqu’à quatre moteurs pas à pas, permettant la construction de machines CNC plus complexes.
  • Compatibilité avec une large gamme de drivers de moteurs pas à pas, offrant une grande flexibilité.
  • Possibilité de connecter différents interrupteurs et capteurs, améliorant la sécurité de la machine.
  • Compatibilité avec différentes versions d’Arduino, permettant son utilisation avec une grande variété de projets CNC.

Matériels nécessaires

  • Arduino Uno
  • Shield CNC V3
  • 3 A4988 / DRV8825 Driver moteur pas a pas
  • 3 moteur Nema 17
Shield V3 Cnc Avec Arduino

Connexion du Shield V3 CNC avec Arduino UNO, A4988 et moteur Nema 17

Une fois que vous avez votre Arduino UNO, le shield CNC V3, le pilote A4988 et votre moteur Nema 17, vous êtes prêt à commencer le branchement. Voici comment vous pouvez procéder :

1. Connecter le Shield V3 CNC à Arduino UNO

Alignez les broches du Shield CNC V3 avec celles de votre Arduino UNO. Enfoncez doucement le shield sur l’Arduino jusqu’à ce que toutes les broches soient correctement insérées dans les connecteurs correspondants de l’Arduino.

2. Installer le Pilote A4988

Le pilote A4988 s’insère dans l’emplacement du shield correspondant à l’axe que vous souhaitez contrôler (par exemple, X, Y, Z ou A). Le côté du pilote avec les potentiomètres (petits cadrans bleus) doit être orienté vers le bord du shield où se trouvent les connecteurs de puissance. Assurez-vous de bien aligner les broches du pilote avec les connecteurs du shield.

3. Connecter le Moteur Nema 17

Chaque moteur pas à pas a deux bobines avec des fils de début et de fin. Ils sont généralement colorés, et les paires de couleurs doivent correspondre. Les connexions de votre moteur Nema 17 peuvent différer, mais généralement, vous pouvez connecter les fils dans l’ordre suivant : Rouge-A1, Bleu-A2, Vert-B1, Noir-B2.

Assurez-vous de connecter les fils du moteur à la borne correspondante sur le pilote A4988. Si votre moteur tourne dans la mauvaise direction lors du test, vous pouvez inverser l’ordre des connexions de l’une des bobines du moteur.

4. Réglage du Courant Limite

Avant d’alimenter votre système, assurez-vous de régler le courant limite du pilote A4988. Pour cela, vous devez tourner le potentiomètre sur le pilote A4988. C’est une petite vis que vous pouvez tourner avec un petit tournevis. Pour le moteur Nema 17, la limite de courant est généralement d’environ 1.7A.

5. Alimentation du Shield

Enfin, vous pouvez connecter votre source d’alimentation à votre Shield CNC V3. Assurez-vous que votre alimentation est réglée sur la bonne tension (12-36V DC) et qu’elle est capable de fournir le courant nécessaire pour votre moteur.

Code

// defines pins numbers
const int stepX = 2;
const int dirX = 5;
const int stepY = 3;
const int dirY = 6;
const int stepZ = 4;
const int dirZ = 7;
const int enPin = 8;
void setup() {

// Sets the two pins as Outputs

pinMode(stepX,OUTPUT);
pinMode(dirX,OUTPUT);
pinMode(stepY,OUTPUT);
pinMode(dirY,OUTPUT);
pinMode(stepZ,OUTPUT);
pinMode(dirZ,OUTPUT);
pinMode(enPin,OUTPUT);
digitalWrite(enPin,LOW);
digitalWrite(dirX,HIGH);
digitalWrite(dirY,LOW);
digitalWrite(dirZ,HIGH);
}
void loop() {

// Enables the motor to move in a particular direction

// Makes 200 pulses for making one full cycle rotation

for(int x = 0; x < 800; x++) {
digitalWrite(stepX,HIGH);

delayMicroseconds(1000);

digitalWrite(stepX,LOW);

delayMicroseconds(1000);
}
delay(1000); // One second delay
for(int x = 0; x < 800; x++) {
digitalWrite(stepY,HIGH);

delayMicroseconds(1000);

digitalWrite(stepY,LOW);

delayMicroseconds(1000);
}
delay(1000); // One second delay
for(int x = 0; x < 800; x++) {
digitalWrite(stepZ,HIGH);

delayMicroseconds(1000);

digitalWrite(stepZ,LOW);

delayMicroseconds(1000);
}
delay(1000); // One second delay
}

Explication du code

  1. const int – Il s’agit d’une déclaration de variable. Le mot-clé const est utilisé pour déclarer une variable dont la valeur ne peut pas être modifiée. Dans ce code, il est utilisé pour définir les numéros de pin de l’Arduino auxquels le pilote du moteur pas à pas est connecté. Chaque variable correspond à une fonction spécifique du pilote (stepX, dirX, stepY, etc.).
  2. pinMode() – Cette fonction est utilisée pour configurer une broche spécifique en tant qu’entrée ou sortie. Dans ce cas, pinMode(stepX,OUTPUT) ; configure la broche 2 (stepX) en tant que sortie. Le code effectue cette opération pour toutes les broches du moteur pas à pas (step, dir) pour les trois axes, ainsi que pour la broche d’activation (enPin).
  3. digitalWrite() – Cette fonction est utilisée pour écrire une valeur HIGH ou LOW sur une broche numérique. Dans ce code, elle est utilisée pour définir l’état initial des broches de direction (dirX, dirY, dirZ) et pour mettre la broche de validation (enPin) sur LOW, ce qui active les pilotes des moteurs pas à pas. Dans la fonction loop(), digitalWrite() est utilisé pour créer des impulsions pour les broches stepX, stepY et stepZ, ce qui fait tourner les moteurs.
  4. delayMicroseconds() – Cette fonction est utilisée pour mettre le programme en pause pendant un certain nombre de microsecondes. Dans ce code, elle est utilisée pour créer une pause entre le réglage de la broche step HIGH et LOW, qui détermine la vitesse de rotation du moteur. La valeur ‘1000’ microsecondes est utilisée, ce qui conduit à un délai de 1 milliseconde.
  5. delay() – Similaire à delayMicroseconds(), mais cette fonction interrompt le programme pendant un certain nombre de millisecondes. Dans la fonction loop(), delay(1000) est utilisé pour créer une pause d’une seconde entre la rotation de chaque axe.
  6. for – Il s’agit d’une instruction de flux de contrôle permettant de créer une boucle. Dans la fonction loop(), une boucle for est utilisée pour créer un certain nombre d’impulsions pour les axes de pas. Le nombre “800” est utilisé pour que la boucle crée 800 impulsions.
  7. void setup() {} et void loop() {} – setup() et loop() sont des fonctions spéciales dans la programmation Arduino. setup() est utilisé pour la configuration initiale et est exécuté une fois lorsque le programme démarre. loop() est la boucle principale du programme et le code qu’elle contient s’exécute en continu de haut en bas jusqu’à ce que la carte soit éteinte.

Conseils de dépannage

  1. Ne jamais alimenter le bouclier de la CNC avec un pilote pas à pas connecté, à moins que le moteur pas à pas correspondant ne soit également connecté. Cela pourrait endommager instantanément le pilote.
  2. Ajustez le courant total à zéro avant d’attacher le pilote à la carte. Pour ce faire, tournez un petit potentiomètre dans le sens des aiguilles d’une montre jusqu’à ce qu’il atteigne sa limite.
  3. Les drivers DRV8825 sont livrés avec un dissipateur thermique fixé à l’aide d’une pastille thermique autocollante. Joe conseille d’enlever ce tampon thermique et d’utiliser à la place un produit comme Arctic Alumina, une pâte thermique en deux parties, pour améliorer la dissipation de la chaleur.
  4. Après avoir configuré le pilote avec un courant nul et le dissipateur thermique correctement installé, installez-le sur la carte, connectez un moteur pas à pas, mettez tout sous tension et réglez le courant en fonction du courant nominal autorisé du moteur pas à pas. Un multimètre peut être utilisé pour contrôler et ajuster le courant au cours de ce processus.

En suivant ces conseils, vous pouvez éviter les problèmes courants rencontrés avec cette configuration, ce qui vous permettra d’économiser du temps et de l’argent et de vous épargner des frustrations potentielles.

Video descriptive

Lien outilles

  1. Pour découvrir plus de tutoriel, vous pouvez consulter notre bloc https://www.moussasoft.com/tutoriels-electroniques
  2. Téléchargement de l’Arduino IDE : https://www.arduino.cc/en/software
  3. GitHub Arduino Repository : https://github.com/arduino/Arduino/