Motor Paso a Paso con Arduino

Un motor paso a paso es un dispositivo electromecánico que convierte pulsos eléctricos en movimientos mecánicos discretos. El eje de un motor paso a paso gira en incrementos discretos cuando impulsos de mando eléctrico se aplican a él en la secuencia correcta.

La secuencia de los pulsos aplicados se relaciona directamente con la dirección de rotación de ejes motor. La velocidad de la rotación de los ejes motor está directamente relacionada con la frecuencia de los pulsos de entrada y la duración de la rotación está directamente relacionada con el número de pulsos de entrada aplicada.

Una de las ventajas más importantes de un motor paso a paso es su capacidad para ser controlado con precisión en un sistema de lazo abierto. Control de lazo abierto significa que ninguna información de retroalimentación de posición es necesario. Este tipo de control elimina la necesidad de costosos dispositivos de detección y regeneración como codificadores ópticos.

Esquema eléctrico:

El motor paso a paso del kit es 28BYJ-48 y los parámetros del motor paso a paso son:

  • Modelo: 28BYJ-48
  • Tensión nominal de entre 5V y 12 V.
  • 4 Fases.
  • Resistencia 50 Ω.
  • Par motor de 34 Newton / metro más o menos 0,34 Kg por cm.
  • Consumo de unos 55 mA.
  • 64 pasos por vuelta (con medios pasos).
  • Reductora de 1 / 64.
  • Ángulo de paso: 5,625 °
  • Frecuencia: 100Hz
  • Resistencia de la C.C.: 50Ω±7 %(25 ° C)
  • En tracción par > 34.3mN.m(120Hz)
  • Posicionamiento automático par > 34.3mN.m
  • Par de fricción: 600-1200 gf.cm
  • Resistencia de aislamiento > 10MΩ(500V)
  • Aislantes de electricidad : 600VAC/1mA/1s
  • Grado de aislamiento : A
  • Subida de temperatura < 40K(120Hz)
  • Ruido < 35dB (120Hz, No carga, 10cm)

El 28BYJ-48 tiene un paso de 5.625 grados (64 pasos por vuelta usando half-step). El reductor interno tiene una relación de 1/64. Combinados, la precisión total es de 4096 pasos por vuelta, equivalente a un paso de 0.088º, que es una precisión muy elevada.

Datasheet: http://robocraft.ru/files/datasheet/28BYJ-48.pdf

Más información sobre motores paso a paso: https://dronebotworkshop.com/stepper-motors-with-arduino/

Driver para Motor Bipolar 28BYJ-48

Driver del motor

  • Tamaño: 42mmx30mm
  • Chip de controlador de uso ULN2003, 500mA
  • LEDs A, B, C, D indica las cuatro fases las condiciones de trabajo motor paso a paso.
  • Conector blanco estándar motor paso a paso.
  • Pines de alimentación separados

Conexiones de la placa de driver:

El motor de pasos bipolar tiene generalmente cuatro cables que salen de él. A diferencia de los motores PAP unipolares, steppers bipolares no tienen ninguna conexión común de centro. Tienen dos juegos independientes de bobinas en lugar de otro. Se pueden distinguir de steppers unipolares midiendo la resistencia entre los cables. Debe encontrar dos pares de cables de igual resistencia. Si tienes las puntas de su medidor conectado a dos cables que no están conectados (es decir, no conectada a la bobina del mismo), debería ver resistencia infinita (o sin continuidad).

Modos de control:

Full-step, Half-step y microsteps: https://www.rs-online.com/designspark/stepper-motors-and-drives-what-is-full-step-half-step-and-microstepping

Vamos a usar la secuencia de medios pasos. Con esta secuencia conseguimos una precisión de la mitad del paso. El par desarrollado varía ya que en algunos pasos activamos dos bobinas y en otras solo una, pero a la vez el giro se encuentra más “guiado”, por lo que en general ambos efectos se compensan y el funcionamiento es bueno, salvo en aplicaciones donde estemos muy al límite del par máximo.

Expresando la secuencia en forma de tabla resulta:

Medio-paso A B A’ B’
1 ON OFF OFF OFF
2 ON ON OFF OFF
3 OFF ON OFF OFF
4 OFF ON ON OFF
5 OFF OFF ON OFF
6 OFF OFF ON ON
7 OFF OFF OFF ON
8 ON OFF OFF ON

Modo de medio paso: secuencia de señal de control 8 pasos (recomendada) 5.625 grados por paso / 64 pasos por una revolución del eje del motor interno. Relación de transmisión 64. Total 64 x 64 = 4096 pasos.

Modo de paso completo: secuencia de señal de control de 4 pasos 11.25 grados por paso / 32 pasos por una revolución de la interna eje de motor. Relación de transmisión 64. Total 64 x 32 = 2048 pasos.

Ejemplo 1 – Uso Arduino con Motor 28BYJ-48 sin librería

Esquema de conexión:

Ejercicio basado en http://www.prometec.net/motor-28byj-48/

Otros tutoriales:

Solución: https://github.com/jecrespo/Arduino-Kit-China-Guide/blob/master/06-Motor_Paso_a_Paso/stepper_half_step/stepper_half_step.ino

Para ver los pasos que da, los grados y las bobinas activas ver: https://github.com/jecrespo/Arduino-Kit-China-Guide/blob/master/06-Motor_Paso_a_Paso/stepper_ver_pasos/stepper_ver_pasos.ino

Ejemplo 2 – Uso Arduino con Motor 28BYJ-48 y Librería Stepper

La otra manera de programar un motor 28BYJ-48 es utilizar la librería Steper que viene incluida con el entorno de desarrollo oficial de Arduino. Esta librería nos facilita el uso de este tipo de motores y viene adaptada para motores bipolares. En este caso la librería stepper usa el modo de paso completo en lugar del medio paso. En este caso el nº de pasos por vuelta es 2048.

Llevando esta secuencia de encendido a una tabla, que posteriormente usaremos para el código, la secuencia quedaría de la siguiente forma:

Paso A B A’ B’
1 ON OFF OFF OFF
2 OFF ON OFF OFF
3 OFF OFF ON OFF
4 OFF OFF OFF ON

Código para mover el motor:

 
#include <Stepper.h>
#define STEPS 2048
Stepper stepper(STEPS, 8, 9, 10, 11);

void setup() {
 stepper.setSpeed(10);
}

void loop() {
 stepper.step(2048);
}

Ejecutar el código: https://github.com/jecrespo/Arduino-Kit-China-Guide/blob/master/06-Motor_Paso_a_Paso/stepper_oneRevolution/stepper_oneRevolution.ino

La librería de pasos por defecto que viene pre-instalado con el Arduino IDE sólo admite el método de paso completo y ha limitado características.  No se ejecuta el motor 28BYJ-48 de manera muy eficiente y conseguir que dos de ellos se muevan al mismo tiempo para un robot de accionamiento diferencial es un poco más difícil. Se encuentran ejemplos de código que utilizan el método de medio paso, sin bibliotecas adicionales como hemos visto anteriormente.

Existe una librería para half-step: https://www.arduinolibraries.info/libraries/half-stepper

Para mejorar el rendimiento disponemos de la biblioteca AccelStepper https://www.arduinolibraries.info/libraries/accel-stepper. Se ejecutan los motores por pasos 28BYJ-48 steppers de manera muy eficiente y también es compatible con la aceleración (que permite el paso a paso para llegar a una velocidad más alta).

Anuncios

Un pensamiento en “Motor Paso a Paso con Arduino

  1. Pingback: Manejar Kit Arduino | Aprendiendo Arduino

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.