lunes, 11 de diciembre de 2017

Uso de Motores paso a paso con EasyDriver v4.4 Arduino

Resultado de imagen para motor nema 17



Los  motores paso a  paso son un conjunto consistente de una caja reductora y un motor DC con una distribución especial  en sus bobinas. Esta distribución especial permite moverlos secuencialmente a medida que activamos y desactivamos cada bobina de una forma específica. Cada  modelo de motor paso a paso requiere una cantidad específica de pasos para dar  una vuelta completa, la cantidad  puedes encontrarla en el datasheet del motor. Cabe destacar también que a diferencia de los servomotores, un motor paso a paso no tiene un sistema de retroalimentación para su posición, de esta forma, si  por ejemplo una fuerza externa lo mueve del de su set point, éste no será capaz de volver a tal posición. 

Por otro lado, a la hora de conectar un motor paso a paso debemos identificar primero el tipo de motor, sea unipolar (más de 4 cables) o bipolar (4 cables). Una vez identifiques el tipo de motor, debes identificar las conexiones de las bobinas, esto puedes hacerlo con un multímetro, este proceso consiste simplemente en medir continuidad.

Finalmente, para mover un motor paso a paso, como ya se dijo, es necesario activar sus bobinas en una secuencia específica, por lo tanto se hace necesario programar en un microcontrolador la  secuencia de pasos requerida. Sin embargo, existe una forma de simplificar esto, por medio del Easydriver. Este es un circuito electrónico que es capaz de proveer la secuencia de  pasos que necesita el motor dándole nosotros sólo 2 señales básicamente, la primera es una señal digital que indique la dirección del movimiento (izquierda o derecha, alto o bajo) y la segunda, un flanco de subida cada vez que deseemos que el  motor de un paso. 

Una vez identifiquemos  el tipo de motor, debemos conectarlo al Easydriver. Para este fin, a continuación listamos las conexiones más importantes del Easydriver por grupo.

Para conectar a nuestro microcontrolador tenemos:


GND = Referencia negativa
Step = Señal de avance, debemos enviar aquí un flanco de subida cada vez que queremos  que el motor avance un paso.
Dir = Señal de dirección, debemos poner aquí un alto o un bajo según  si queremos que el  motor avance en una dirección o otra.

Para conectar a la fuente para el motor tenemos: 


M+ = Positivo de la  fuente, de 6 a 30 VDC

GND = Referencia negativa de la fuente

Para conectar a nuestro motor tenemos 4 conexiones, 2 marcadas como A y 2 marcadas  como B, aquí debes conectar los extremos de las bobinas según se ha identificado previamente. Si es un motor bipolar, esta conexión es bastante obvia, sin embargo, si es un motor unipolar, deberás identificar cuales son los extremos  de las bobinas (serán los cables con mayor resistencia entre sí) y dejar los demás cables sin conectar (sólo conectas 4). 


El restante de las conexiones son funciones extras y pueden dejarse sin conectar. Sin embargo podemos mencionar una de estas funciones extras, el modo de micro step, controlado por los pines MS1 y MS2.  Esta función permite, básicamente, modificar el número de flancos de subida que se requieren por cada vuelta del motor, por medio de la modificación  del modo de pasos, de octavos, cuartos, medios o pasos completos. El módulo está seleccionado por default en octavos, por lo tanto un motor de 200 pasos por vuelta,requerirá 1600 flancos de subida, para darla la vuelta completa.


Debes tener en cuenta el potenciómetro del Easydriver, debes ubicar éste para que sea capaz de suplir toda la corriente que necesita tu motor paso a paso, el Easydriver es capaz de suplir desde 150 mA hasta 750 mA por fase.

Ejemplo de operación de motor paso a paso  con Easydriver


Al realizar el siguiente montaje y subir el código a tu Arduino, observarás al motor moverse en una dirección y luego en otra. Si el motor es de 200 o menos pasos por unidad, dará una vuelta completa.

Empezamos mostrando un esquema de conexión con Arduino UNO:






Código Arduino

int Dir = 12; //  definimos el pin de dirección
int Step = 13; // definimos el pin de comando de pasos
boolean state  = true;

void setup() {
pinMode(Step,OUTPUT); // seleccionamos ambos pines como salidas
pinMode(Dir,OUTPUT);
digitalWrite(Step, LOW); //  escribimos valores iniciales
digitalWrite(Dir, LOW);

}

void loop() {

  state = !state; // luego de cada ciclo, cambiamos el estado para cambiar la dirección
  digitalWrite(Dir,state);  

  for (int i = 0; i < 1600 ; i++)  // en este ciclo damos 1600 pasos
  {    
    digitalWrite(Step, HIGH);
    delay(50);
    digitalWrite(Step, LOW);
    delay(50);
  }


}


1 comentario:

  1. No matter how much I try every time I need a stepper motor, I still get the best pricing from www.oyostepper.com and their packing is exceptional.

    ResponderEliminar

Display matricial 8x8 con Arduino SPI y MAX7219

La matrices led de 8x8 son elementos extremadamente útiles para desplegar mensajes que puedan ser visibles desde la distancia. ...