Shield CNC pour carte Uno¶


- Auteur
Gilles Lecorsier
- Blog
- Association
BricoLab Groslay(95)
- Entity
- Page principale
- Date de création
04/10/2025
- Date dernière maj
04/10/2025
Introduction¶
Utilisation du CNC Shield pour Arduino.

Pour pouvoir gérer une machine comme une CNC ou une imprimante 3D ou une table traçante avec plusieurs moteurs pas-à-pas, il est intéressant d’avoir une carte qui facilite la connexion des différents éléments de la machine. C’est le rôle du shield CNC.
Le Shield se place sur le microcontrôleur Arduino et les moteurs se branchent directement sur les broches de sorties des drivers.

Explications¶

Le CNC Shield V3 est une carte d’extension pour Arduino UNO ou Mega permettant de s’interfacer facilement à des contrôleurs de moteur pas-à-pas, type drv8825 4. Il permet aussi de piloter et gérer les éléments nécessaires au fonctionnement d’une fraiseuse numérique (CNC). C’est-à-dire, des fins de course (end stops), ventilateur, etc …
Repérage¶

Première manipulation¶
Matériel¶
Moteur pas à pas Nema 17.
Carte Arduino Uno.
Shield CNC pour carte Uno
Pilote DRV8825.
Alimentation courant continu 12V.
Plan de câblage¶

Ce cablâge représente le branchement de l’axe Y (Attention à l’ordre des câbles sortant des bobines). Mêmes manipulations pour les autres axes.
ATTENTION Avant de mettre sous tension, il faut régler la tension VREF du driver DRV 8825.
1) Programmation : piloter quatre moteurs pas à pas (axes X, Y, Z et A)¶
Ce programme est conçu pour piloter quatre moteurs pas à pas (axes X, Y, Z et A) à l’aide d’un Shield CNC connecté à une carte Arduino Uno.
#define EN 8
/* Enable pin for all stepper outputs */
#define X_DIR 5 /* Direction-Pin for X-axis */
#define X_STEP 2 /* Step-Pin for X-axis */
#define TEMPO 1
#define Y_DIR 6 /* Direction-Pin for Y-axis*/
#define Y_STEP 3 /* Step-Pin for Y-axis */
#define Z_DIR 7 /* Direction-Pin for Z-axis */
#define Z_STEP 4 /* Step-Pin for Z-axis */
//#define A_DIR 13 /* Direction-Pin for A-axis*/
//#define A_STEP 12 /* Step-Pin for A-axis */
int Count = 0; /* Counter to count number of steps made */
void setup() {
Serial.begin(9600);
/* Configure the stepper drive pins as outputs */
pinMode(EN, OUTPUT);
pinMode(X_DIR, OUTPUT);
pinMode(X_STEP, OUTPUT);
pinMode(Y_DIR, OUTPUT);
pinMode(Y_STEP, OUTPUT);
pinMode(Z_DIR, OUTPUT);
pinMode(Z_STEP, OUTPUT);
pinMode(A_DIR, OUTPUT);
pinMode(A_STEP, OUTPUT);
digitalWrite(EN, LOW); //Low to enable
}
void loop() {
/* Count one step */
Count++;
/* If reached 500 steps then change the stepper direction and resset the counter*/
if (Count >= 500)
{
Direction = !Direction;
digitalWrite(X_DIR, Direction); // Low = CW
digitalWrite(Y_DIR, Direction); // Low = CW
digitalWrite(Z_DIR, Direction); // Low = CW
digitalWrite(A_DIR, Direction); // Low = CW
Count = 0;
}
/* Step the X, Y, Z, und A Motoren */
digitalWrite(X_STEP, HIGH);
delay(TEMPO);
digitalWrite(Y_STEP, HIGH);
delay(1);
digitalWrite(Z_STEP, HIGH);
delay(1);
digitalWrite(A_STEP, HIGH);
delay(1);
digitalWrite(X_STEP, LOW);
delay(TEMPO);
digitalWrite(Y_STEP, LOW);
delay(1);
digitalWrite(Z_STEP, LOW);
delay(1);
digitalWrite(A_STEP, LOW);
delay(1);
}
Fonctionnement :
Ce programme fait tourner les moteurs pas à pas en envoyant des impulsions de pas. Tous les 500 pas, il inverse la direction de rotation des moteurs. Il fonctionne en boucle continue.
Définition des broches
Les broches correspondent aux connexio,n,s du Shield CNC pour les pilotes DRV8825
Initialisation (setup():
Initialise la communication série.
Configure toutes les broches comme sorties
Active les moteurs en mettant EN à LOW.
Boucle principale (loop()):
Changement de direction
Le compteur Count augmente à chaque pas.
Quand il atteint 500, la direction est inversée (LOW <-> HIGH)
Les moteurs changent de sens de rotation.
- Impulsions de pas
Chaque moteur reçoit une impulsion HIGH puis LOW pour effectuer un pas.
Le delai TEMPO (1 ms) contr^le la vitesse du mouvement.
Résultat :
Les moteurs X, Y, Z et A tournent en continu.
Tous les 500 pas, ils changent de sens.
Le programme tourne en boucle.
Sites de référence¶
Tables et index¶
Weblinks¶
- 1
- 2
- 3
- 4(1,2)
- 5
https://www.researchcell.com/electronics/how-to-use-drv8825-stepper-motor-driver
- 6
https://www.moussasoft.com/drv8825-driver-moteur-pas-a-pas-avec-arduino/
- 7
https://www.moussasoft.com/comment-utiliser-nema-17-moteur-pas-a-pas-arduino-pilote-a4988/
- 8
- 9
https://www.e-techno-tutos.com/2022/03/16/arduino-le-cnc-shield/
- 10
https://www.atelierdelarobotique.fr/produit/module-driver-a4988-pour-moteurs-pas-a-pas
- 11
https://www.gotronic.fr/art-shield-cnc-pour-uno-ard-cnc-k1-27753.htm
- 12