Para probar el manejo de motores paso a paso, podemos empezar con una placa RAMPS, ya que es un sistema cómodo y compacto en el que por un módico precio ya podríamos implementar nuestros proyectos evitando mucho cableado susceptible de romperse con el tiempo.
Para poner a prueba los motores en la RAMPS sin necesidad de cargar todo el firmware completo de impresión 3D, podéis dirigiros al siguiente enlace en el que explicamos como aplicar de manera sencilla un movimiento y comprobar si existen fallos en el driver, alimentación, etc…
Pero para ello, habremos de conocer cuáles son los pines de una placa Arduino MEGA para conocer la correspondencia de sus pines STEP, DIR y ENABLE de cada uno de los drivers.
En la siguiente imagen podemos ver qué pines se asocian a la placa RAMPS.
Desde la siguiente tabla, podemos consultar los pines de interés que son los definidos como STEP, DIR y EN
STEP | DIR | ENABLE | |
STEPPER_X | 54 | 55 | 38 |
STEPPER_Y | 60 | 61 | 56 |
STEPPER_Z | 46 | 48 | 62 |
EXTRUDER_0 | 26 | 28 | 24 |
EXTRUDER_1 | 36 | 34 | 30 |
Como ya desarrollamos en un post anterior, la prueba la podemos realizar modificando estos pines al inicio del programa.
const int stepPin = 54; const int dirPin = 55; const int enablePin = 38; const int steps = 200; int stepDelay; void setup() { // Marcar los pines como salida pinMode(dirPin, OUTPUT); pinMode(stepPin, OUTPUT); pinMode(enablePin, OUTPUT); digitalWrite(enablePin, LOW); stepDelay = 800; } void loop() { //Activar una direccion y fijar la velocidad con stepDelay digitalWrite(dirPin, HIGH); // Giramos 200 pulsos para hacer una vuelta completa for (int x = 0; x < 200; x++) { digitalWrite(stepPin, HIGH); delayMicroseconds(stepDelay); digitalWrite(stepPin, LOW); delayMicroseconds(stepDelay); } delay(1000); //Cambiamos la direccion y aumentamos la velocidad digitalWrite(dirPin, LOW); // Giramos 400 pulsos para hacer dos vueltas completas for (int x = 0; x < 200; x++) { digitalWrite(stepPin, HIGH); delayMicroseconds(stepDelay); digitalWrite(stepPin, LOW); delayMicroseconds(stepDelay); } delay(1000); }
Una opción adicional, para todo aquel que quiera extruir con más de un filamento, existe la posibilidad de funcionar con el extrusor_0; que es el habitual, el extrusor_1 para doble filamento o utilizar un stepper_expander.
Este módulo nos permite montar un tercer extrusor sobre la placa ramps y con una configuración adecuada podemos integrar un tercer driver conectado a los siguiente pines.
- STEP –> 64
- DIR –> 59
- ENABLE –> 44
De esta manera tenemos la posibilidad de utilizar la RAMPS como placa de pruebas con un total de 6 motores paso a paso.