The Arduino CNC Shield is the most popular low cost solution to control a CNC Machine. Interfacing with an Arduino Uno, it expands the Arduino platform to provide all the necessary features for a CNC Machine: 4 Driver Outputs, Endstop Pins, Spindle Pins & Emergency Pins.
This CNC Shield is manufactured using high quality components. All the design files are available online, they can be learnt from, tweaked and improved. The board is Plug & Play 100% Compatible with GRBL Firmware.
If you want to build a CNC Machine that will be incredibly reliable and can run for hours on ends, then our Arduino CNC shield is a good option for you.
This expansion board as a driver expansion board, can be used for engraving machines, 3D printers.
It is a total of four slots, can drive four A4988 stepper motor. Each road stepper motors only need two IO ports. In other words, six IO ports can be well managed three stepper motors. Very convenient to use.
UNO for Arduino module IO port correspondence introduction.
IO corresponding figure above
UNO for Arduino———————- expansion board
8 ———————— EN ( stepper motor driver enable , active low )
7 ———————– Z.DIR (Z -axis direction control )
6 ———————– Y.DIR (Y -axis direction control )
5 ———————– X.DIR (X -axis direction control )
4 ———————- Z.STEP (Z -axis stepper control )
3 ———————- Y.STEP (Y -axis stepper control )
2 ———————- X.STEP (X -axis stepper control )
/ / The following is a simple stepper motor control procedures,
# define EN 8 / / stepper motor enable , active low
# 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 stepper control
# define Y_STP 3 / / y -axis stepper control
# define Z_STP 4 / / z -axis stepper control
/ *
/ / Function : step . function: to control the direction of the stepper motor , the number of steps .
/ / Parameters : dir direction control , dirPin corresponding stepper motor DIR pin , stepperPin corresponding stepper motor ” step ” pin , Step number of step of no return value.
* /
void step (boolean dir, byte dirPin, byte stepperPin, int steps)
{
digitalWrite (dirPin, dir);
delay (50);
for (int i = 0; i <steps; i=”” +=”” +)=”” {=”” <br=””>digitalWrite (stepperPin, HIGH);
delayMicroseconds (800);
digitalWrite (stepperPin, LOW);
delayMicroseconds (800);
}
}
void setup () {/ / The stepper motor used in the IO pin is set to output
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 reverse 1 ring, the 200 step is a circle.
step (false, Y_DIR, Y_STP, 200); / / y axis motor reverse 1 ring, the 200 step is a circle.
step (false, Z_DIR, Z_STP, 200); / / z axis motor reverse 1 ring, the 200 step is a circle.
delay (1000);
step (true, X_DIR, X_STP, 200); / / X axis motor forward 1 laps, the 200 step is a circle.
step (true, Y_DIR, Y_STP, 200); / / y axis motor forward 1 laps, the 200 step is a circle.
step (true, Z_DIR, Z_STP, 200); / / z axis motor forward 1 laps, the 200 step is a circle.
delay (1000);
} </steps;>
Reviews
There are no reviews yet.