Está en la página 1de 9

Motor Paso a Paso con 

Arduino
1 respuesta
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:
 https://www.luisllamas.es/motor-paso-paso-28byj-48-arduino-driver-uln2003/
 https://programarfacil.com/blog/motor-paso-a-paso/
 http://www.web-robotica.com/arduino/motor-de-pasos-28byj-48-con-driver-uln2003-y-
arduino-uno

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:
1
#include &lt;Stepper.h&gt;
2 #define STEPS 2048
3 Stepper stepper(STEPS, 8, 9, 10, 11);
4  
5 void setup() {
6 &nbsp;stepper.setSpeed(10);
7 }
8  
void loop() {
9 &nbsp;stepper.step(2048);
10 }
11
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).
Esta entrada se publicó en Arduino, Kit Arduino, Motores, Práctica, Taller Arduino Ingenia, UR-
Maker y está etiquetada con Arduino, Driver Stepper, Kit Arduino Chino, Motor Paso a
Paso, Práctica, Taller Arduino Ingenia, UR-Maker en 17 octubre, 2018.
Uso de Motores con Arduino
3 respuestas
Motor DC Básico
Mover un motor DC variando la velocidad y sentido mediante un potenciómetro.
Basado en http://diymakers.es/control-velocidad-y-sentido-de-motor-dc/

Esquema de conexión.
Señales mandadas desde Arduino:
Solución: https://github.com/jecrespo/aprendiendoarduino-
Curso_Arduino_2017/tree/master/Ejercicio25-MotorDC_Basico
Ver las señales reales con un osciloscopio en los pines 9 y 10 y en la alimentación del motor.

También podría gustarte