¿Qué son los motores paso a paso??
Los motores paso a paso son motores sin escobillas y sin cepillo que pueden dividir su ciclo de rotación completo en una serie de pasos discretos. A diferencia de otros motores de CC sin escobillas que se ejecutan continuamente cuando se aplica un voltaje de CC fijo a través de ellos, los motores de paso pueden dividir su movimiento rotatorio en varios pasos según un pulso digital.
Tipos de motor paso a paso
Generalmente se usan dos tipos de motores paso a paso:
La mayoría de las veces podemos distinguir entre estos dos motores al observar el número de cables. Un motor paso a paso con 6 cables se puede clasificar como Unipolar y un 4 cables el motor se puede clasificar como Bipolar. La principal diferencia entre ellos es el cable de grifo central que divide el devanado de la bobina completa en medio devanado.
El control de estos motores paso a paso requiere conductores de motor. Los controladores más utilizados incluyen ULN2003, L298N y A4988. En este artículo procederemos con un controlador bipolar controlado por motor conocido como A4988 conductor de motor.
Se requieren componentes
Se requieren los siguientes componentes para controlar el motor paso a paso con Arduino:
Por qué usar el controlador de motor
En general, los motores paso a paso son difíciles de controlar usando los pasadores Arduino. Dibujan la corriente sobre 20 mA Debido al comportamiento electromagnético de los motores que excede el límite actual de los pines Arduino. Otro problema es el voltaje de sobrecarga, debido a la naturaleza electromagnética, los motores continúan generando electricidad incluso después de los cortes de energía, esto creará suficiente voltaje negativo que puede freír a su Arduino.
La solución a esto es el uso de chips o escudos de motor. Los conductores de motores tienen diodos que evitan que Arduino se volle voltajes negativos y circuitos basados en transistores que proporcionan suficiente energía para ejecutar el motor.
Módulo de controlador A4988
A4988 es uno de los mejores controladores de motor dedicados disponibles. Este controlador de motor integrado hace que sea muy fácil interfactar con un microcontrolador, ya que solo dos pines son suficientes para controlar la velocidad y la dirección del motor paso a paso. El uso de controlador de motor dedicado tiene muchas ventajas:
A4988 pinout
Total 16 pines están en el controlador A4988 de la siguiente manera:
Diagrama de cableado: conecta A4988 con Arduino Uno y motor paso a paso
Conecte el motor paso a paso con Arduino siguiendo el circuito mencionado a continuación:
Nota: El controlador del motor A4988 está equipado con un condensador de cerámica de baja ESR que no puede manejar picos de voltaje LC. Es mejor usar un capacitor electrolítico Entre los pines VMOT y GND, aquí hemos usado un condensador de 100UF después de la fuente de alimentación.
A4988 conexiones
A4988 | Conexión |
---|---|
VMOT | 8-35V |
Gnd | Motor GND |
SLP | REINICIAR |
Primero | SLP |
VDD | 5V |
Gnd | Lógica GND |
STP | Pin 3 |
Prostituta | Pin 2 |
1a, 1b, 2a, 2b | Motor paso a paso |
Cómo establecer el límite actual para el motor paso a paso
Antes de conectar el Arduino con el motor paso a paso, es importante establecer el límite actual del controlador del motor más bajo que la clasificación de corriente del motor paso a paso, de lo contrario, el motor se calentará.
Un pequeño potenciómetro presente en el controlador A4988 puede establecer el límite de corriente, como se muestra en la imagen. En el límite de corriente de rotación en sentido horario aumenta y disminuye el límite de corriente de rotación en sentido antihorario.
Cómo codificar el motor de paso de la basura con Arduino
Ahora que hemos completado nuestro circuito y establecemos el límite de corriente para los controladores de motor, es hora de controlar los motores paso a paso con la ayuda de Arduino. Cargue el siguiente código en la placa Arduino usando IDE, ya que este código no requiere que se ejecute ninguna biblioteca estándar.
// Declarado pasadores de motor paso a paso y pasos por revolución
#Define la dirección 2
#Define el paso 3
#Define StepsinonerEvolution 200
setup () void
// Declarar pines como salida:
PinMode (paso, salida);
PinMode (dirección, salida);
bucle void ()
DigitalWrite (dirección, alta); // El motor girará en sentido horario
// El motor completará una revolución lentamente
para (int i = 0; i < stepsinOneRevolution; i++)
DigitalWrite (Step, High);
Delaymicroseconds (2000);
DigitalWrite (paso, bajo);
Delaymicroseconds (2000);
retraso (1000);
DigitalWrite (dirección, baja); // El motor girará en sentido antihorario
// El motor completará una revolución rápidamente
para (int i = 0; i < stepsinOneRevolution; i++)
DigitalWrite (Step, High);
retrasarmicrosegundos (1000);
DigitalWrite (paso, bajo);
retrasarmicrosegundos (1000);
retraso (1000);
Explicación del código
Comenzaremos nuestro boceto definiendo paso y dirección patas. Aquí los usé con Arduino Pins 2 y 3. El constante Stepsinonerevolution se define junto con su valor 200, configuré el controlador del motor en su modo de paso completo 200 pasos por revolución.
#Define la dirección 2
#Define el paso 3
#Define StepsinonerEvolution 200
En el configuración() Sección, utilizando PinMode () Los pines de control del motor de función se establecen como salida digital.
setup () void
PinMode (paso, salida);
PinMode (dirección, salida);
En el bucle() Sección, el motor completará una revolución lentamente en el sentido de las agujas del reloj y una revolución rápidamente en el sentido antihorario. Esto es porque hemos establecido DigitalWrite () tan alto y bajo alternativamente y disminución DelayMicroseConds () de 2 milisegundos a 1 milisegundos.
Mire el código que se muestra a continuación, DigitalWrite (dirección, alta); se establece en ALTO valor, el motor girará en sentido horario.
El DelayMicroseConds () se establece en 2 milisegundos, el motor girará lentamente.
\
bucle void ()
DigitalWrite (dirección, alta); // El motor girará en sentido horario
// El motor completará una revolución lentamente
para (int i = 0; i < stepsinOneRevolution; i++)
DigitalWrite (Step, High);
Delaymicroseconds (2000);
DigitalWrite (paso, bajo);
Delaymicroseconds (2000);
Del mismo modo, en esta sección el motor girará más rápido debido a una menor demora en milisegundos, pero en la dirección opuesta (en sentido antihorario) debido al bajo valor de DigitalWrite (dirección, baja):
DigitalWrite (dirección, baja); // El motor girará en sentido antihorario
// El motor completará una revolución rápidamente
para (int i = 0; i < stepsinOneRevolution; i++)
DigitalWrite (Step, High);
retrasarmicrosegundos (1000);
DigitalWrite (paso, bajo);
retrasarmicrosegundos (1000);
Velocidad del motor de control
La velocidad se determina por la frecuencia del pulso generado en paso alfiler; Podemos controlar la frecuencia del pulso cambiando:
retrasarmicroseConds ();
El retraso más corto significa una frecuencia más alta y más rápido el motor funciona.
Control de dirección giratoria
La dirección giratoria del motor se controla configurando el pasador de dirección, ya sea alto o bajo, utilizamos la siguiente función para hacer esto:
DigitalWrite (dirección, alta); //Agujas del reloj
DigitalWrite (dirección, baja); //Sinistrorso
Como en el ejemplo anterior, no hemos utilizado ninguna biblioteca Arduino, pero puede usar la biblioteca de motor paso a paso en Arduino IDE. Otra biblioteca muy famosa disponible en IDE utilizada principalmente para motores paso a paso es Acelerador.H. Puede incluir esa biblioteca siguiendo este camino:
Vaya a Sketch> Incluya Biblioteca> Administrar bibliotecas> Búsqueda> Accelstepper> Instalar:
Conclusión
Este tutorial le ha demostrado que los motores de los steppers no son tan difíciles de trabajar. Hemos cubierto los aspectos principales de controlar un motor paso a paso con la ayuda de Arduino y Motor Driver. Entonces, si está planeando un proyecto que requiere que coloque algo precisamente, entonces un motor paso a paso Será una elección ideal.