CNC Shield V3 Arduino Uno
- Ejes
- 4 zócalos (X, Y, Z y A); A copia a X, Y o Z con puentes, o funciona como 4.º eje con D12 y D13
- Drivers compatibles
- A4988 (hasta 1/16 de paso) o DRV8825 (hasta 1/32)
- Microstepping
- Puentes M0, M1 y M2 debajo de cada driver
- Alimentación de motores
- 12 a 36 V DC (más de 24 V solo con DRV8825)
Características
Placa de expansión (shield) que se monta encima de un Arduino UNO para controlar hasta 4 motores paso a paso con drivers A4988 o DRV8825. Es la base de muchas CNC caseras, grabadoras láser y plotters: con el firmware GRBL, el Arduino recibe código G desde el computador y mueve los ejes X, Y y Z.
Trae entradas para finales de carrera, paro de emergencia y control del husillo o del láser.
| Ejes | 4 zócalos (X, Y, Z y A); A copia a X, Y o Z con puentes, o funciona como 4.º eje con D12 y D13 |
|---|---|
| Drivers compatibles | A4988 (hasta 1/16 de paso) o DRV8825 (hasta 1/32) |
| Microstepping | Puentes M0, M1 y M2 debajo de cada driver |
| Alimentación de motores | 12 a 36 V DC (más de 24 V solo con DRV8825) |
| Pines STEP | X: D2 · Y: D3 · Z: D4 |
| Pines DIR | X: D5 · Y: D6 · Z: D7 |
| Habilitar drivers | D8 (común para todos) |
| Finales de carrera | 2 por eje (X, Y y Z) |
| Firmware | Compatible con GRBL |
¿Para qué sirve?
- CNC caseras para madera, acrílico o placas de circuito
- Grabadoras láser y plotters
- Proyectos con varios motores paso a paso
Código de prueba
// Prueba de la CNC Shield V3 (sin GRBL): mueve el motor del eje X una vuelta
// hacia un lado y otra hacia el otro. Sirve para revisar driver, motor y fuente.
const int PIN_ENABLE = 8; // común a todos los drivers: LOW = activados
const int X_STEP = 2;
const int X_DIR = 5;
const int PASOS_VUELTA = 200; // motor de 1,8° sin microstepping (con los 3 puentes del A4988: 3200)
void setup() {
pinMode(PIN_ENABLE, OUTPUT);
pinMode(X_STEP, OUTPUT);
pinMode(X_DIR, OUTPUT);
digitalWrite(PIN_ENABLE, LOW);
}
void girar(bool sentido) {
digitalWrite(X_DIR, sentido ? HIGH : LOW);
for (int i = 0; i < PASOS_VUELTA; i++) { // un pulso en STEP = un paso
digitalWrite(X_STEP, HIGH);
delayMicroseconds(800); // menos tiempo = más rápido
digitalWrite(X_STEP, LOW);
delayMicroseconds(800);
}
}
void loop() {
girar(true);
delay(1000);
girar(false);
delay(1000);
}
Monta el shield sobre el UNO, coloca un driver en X (con el pin EN hacia la marca EN de la placa), conecta el motor y luego la fuente de 12 V. Para una CNC, en vez de este código se carga el firmware GRBL y se controla desde un programa como Universal G-code Sender.
Precauciones
- Nunca conectes ni desconectes un motor con la fuente encendida: el driver se daña.
- Coloca los drivers en la orientación correcta (pin EN junto a la marca EN): al revés se queman.
- Antes de usarlos, ajusta la corriente de cada driver con su potenciómetro según tu motor.
- La fuente de 12 a 36 V solo alimenta los motores: el Arduino necesita su USB o su propia alimentación.
- Los drivers se calientan: usa sus disipadores y, si puedes, un ventilador.
Fuentes consultadas: Manual CNC Shield V3.0 (Protoneer) · Kunkune: CNC Shield V3.0 · Zbotic: CNC Shield con GRBL · GRBL: conexiones. Ficha preparada por Electrodrone; verifica siempre el voltaje de tu módulo antes de conectarlo.