Control de la velocidad de los pasos de Arduino
Explicación del código: El sketch comienza definiendo los pines de Arduino a los que se conectan los pines STEP y DIR del A4988. También definimos stepsPerRevolution. Ajústalo para que coincida con las especificaciones de tu motor paso a paso.const int dirPin = 2;
}Explicación del código:Comenzamos incluyendo la biblioteca AccelStepper recién instalada.#include <AccelStepper.h>Definimos los pines de Arduino a los que se conectan los pines STEP y DIR del A4988. También establecemos motorInterfaceType a 1. (1 significa un driver de stepper externo con pines Step y Direction)// Definimos las conexiones de los pines
Biblioteca de pasos de Arduino
El orden de los pines, el nombre de los cables y el color de los mismos puede variar entre los distintos fabricantes. Es necesario leer la hoja de datos o el manual para ver la correspondencia entre el color de los cables y el nombre de los pines. La imagen anterior también muestra las especificaciones de dos motores diferentes con diferentes nombres y colores de cables.
La especificación del motor especifica el grado por paso (llamémosle DEG_PER_STEP). Dependiendo del método de control, los pasos por revolución (llamémosle STEP_PER_REVOLUTION) se calculan como en la siguiente tabla:
Arduino puede generar señales para controlar el motor paso a paso. Sin embargo, las señales de Arduino no tienen el suficiente voltaje y/o corriente que el motor paso a paso requiere. Por lo tanto, necesitamos un controlador de hardware entre Arduino y el motor paso a paso. El controlador hace dos trabajos:
¡Importante!: Por favor, no te preocupes por el orden de los cables del motor paso a paso en la imagen del diagrama de cableado anterior. Es sólo un ejemplo. El orden de los pines en los motores paso a paso puede variar entre los fabricantes. Asegúrese de que su cableado sigue la tabla de abajo.
Controlar el motor paso a paso con el potenciómetro arduino
El A4988 es un driver de microstepping para el control de motores paso a paso bipolares que lleva incorporado un traductor para facilitar su funcionamiento. Esto significa que podemos controlar el motor paso a paso con sólo 2 pines de nuestro controlador, o uno para controlar la dirección de rotación y el otro para controlar los pasos.
El Driver ofrece cinco resoluciones de paso diferentes: paso completo, paso de eje, cuarto de paso, ocho pasos y dieciseisavo de paso. Además, dispone de un potenciómetro para ajustar la salida de corriente, desconexión térmica por sobretemperatura y protección de corriente de cruce.
Ahora vamos a ver de cerca el pinout del driver y conectarlo con el motor paso a paso y el controlador. Así que vamos a empezar con los 2 pines en el lado derecho del botón para alimentar el conductor, los pines VDD y tierra que necesitamos para conectarlos a una fuente de alimentación de 3 a 5,5 V y en nuestro caso que será nuestro controlador, la placa Arduino que proporcionará 5 V. Los siguientes 4 pines son para conectar el motor. Los pines 1A y 1B se conectarán a una bobina del motor y los pines 2A y 2B a la otra bobina del motor. Para alimentar el motor utilizamos los siguientes 2 pines, Ground y VMOT que necesitamos conectarlos a la fuente de alimentación de 8 a 35 V y también necesitamos utilizar un condensador de desacoplamiento de al menos 47 µF para proteger la placa del driver de los picos de tensión.
Tutorial de motor paso a paso
Explicación del código: El sketch comienza con la inclusión de la librería Arduino Stepper. La librería stepper viene empaquetada con el IDE de Arduino y se encarga de secuenciar los pulsos que enviaremos a nuestro motor paso a paso.// Incluir la librería Arduino Stepper
#include <Stepper.h>Después de incluir la librería definimos una variable llamada stepsPerRevolution. Como su nombre indica es el número de pasos por revolución que tiene nuestro motor. En este caso es 200, es decir, 1,8 grados por paso.// Número de pasos por rotación de salida
const int stepsPerRevolution = 200;A continuación, creamos una instancia de la librería stepper. Toma los pasos por revolución del motor y las conexiones de los pines de Arduino como parámetro.// Creamos una instancia de la librería Stepper
}En la sección de bucle del código, simplemente llamamos a la función step() que hace girar el motor un número específico de pasos a una velocidad determinada por la función setSpeed(). Pasando un número negativo a esta función se invierte el sentido de giro del motor.void loop()