Cómo conectar el motor paso a paso con Arduino

Cómo conectar el motor paso a paso con Arduino
Los motores paso a paso se usan comúnmente en dispositivos que van desde máquinas CNC, relojes analógicos hasta impresoras 3D e incluso en conductos de calefacción. Debido a su par preciso de sujeción y alta precisión, los motores paso a paso se usan principalmente donde se requiere alta precisión. Antes de discutir cómo se controla el motor paso a paso usando Arduino, descubramos qué son los motores paso a paso:

¿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:

  • Bipolar
  • Unipolar

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:

  • Arduino Uno
  • Cable USB B
  • Motor paso a paso (bipolar)
  • Cables de jersey
  • Motor Driver (A4988)
  • Condensador de 100u
  • Fuente de alimentación (8-35V)
  • Tablero de circuitos

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:

  • El conductor del motor controlaba la lógica de paso en sí, liberando al Arduino para hacer otras cosas.
  • Se reduce el número de conexiones, lo que ayuda a controlar múltiples motores con una sola placa.
  • Posible controlar el motor incluso sin ningún microcontrolador utilizando ondas cuadradas simples.

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.