Motor paso a paso con Arduino

 


A continuación, se presenta como realizar un circuito con un motor paso a paso y Arduino.

Un motor paso a paso puede ser unipolar o bipolar, donde el unipolar es de 6-5 hilos y el bipolar de 4, esto debido a que uno tiene un devanado central en sus bobinas y el otro no, como se muestra en la figura 1.

Figura 1. Motor unipolar / Motor bipolar

Para poder usar cualquiera de los 2 se necesita un driver especifico para cada motor o ya sea transistores Darlington para el unipolar o puentes H para el bipolar, en este caso vamos a utilizar transistores Darlington para un motor unipolar.

Materiales:
  • 1 Arduino
  • 1 Motor paso a paso
  • 1 ULN2803A o ULN2003

Diagrama del circuito:



Figura 2. Diagrama del circuito

Para programar este circuito en Arduino hay 2 opciones:

  1. Programar desde cero utilizando las secuencias presentadas en las siguientes tablas, donde después de cada secuencia se debe poner como mínimo un delay de 20ms.
  2. Programar utilizando la librería que se encuentra en el IDE de Arduino
Secuencia para controlar motores paso a paso Unipolares:

En las siguientes tablas los extremos mencionados hacen referencia a los extremos presentados en la figura 1.

En la tabla 1 se presenta la secuencia "simple" donde únicamente se activa una bobina a la vez, haciendo que el motor tenga menos torque pero siendo más suave el giro.

Tabla 1. Secuencia simple

En la secuencia "normal" vista en la tabla 2 es la más utilizada y recomendada por los fabricantes, esta secuencia hace que el motor avance un paso cada vez ya que siempre hay 2 bobinas activadas y gracias a eso se obtiene un mayor torque.
Tabla 2. Secuencia normal 

Por último en la tabla 2 se muestra la secuencia "medio paso" donde el motor avanza solo la mitad del paso real ya que primero se activan 2 bobinas, luego solo una y así sucesivamente, percutiendo en un giro más suave y con mayor precisión

Tabla 3. Secuencia medio paso

En este caso se va a utilizar la segunda opción que es programar utilizando la librería que se encuentra en el IDE de Arduino.

Código de Arduino:

#include <Stepper.h>
#define STEPS 200 //número de pasos que necesita para dar una vuelta, en nuestro caso son 200
 
Stepper stepper(STEPS, 8, 9, 10, 11); //Stepper "nombre motor" (número de pasos por vuelta, pins de control)
 
void setup()
{
  stepper.setSpeed(100);// Velocidad del motor en RPM
}
 
void loop()
{
  //Girar una vuelta entera en un sentido y una pequeña pausa
  stepper.step(200);
  delay(1000); 
 
  //Girar una vuelta entera en sentido contrario y una pequeña pausa
  stepper.step(-200);
  delay(1000);
}

Video del funcionamiento:




Comentarios

Entradas populares