Práctica 10 – Motor paso a paso

El motor paso a paso (o stepper en inglés) permite un control muy exacto de posición y velocidad. Es muy usado para aplicaciones de precisión: robots, impresión 3D, CNC, etc. Su principal diferencia con el servo es esa, además del hecho de ser más lento.

Motor paso a paso 28BYJ-48

El funcionamiento de los motores paso a paso podéis encontrarlo con detalle en algunos de los enlaces que ponemos al final de la práctica. Muy brevemente (y sacado de Wikipedia), convierte impulsos eléctricos en desplazamientos angulares discretos, y puede ser gobernado por impulsos procedentes de sistemas lógicos.

El 28BYJ-48 es un motor paso a paso unipolar, barato, sencillo de programar por la cantidad de ejemplos que hay en internet. Funciona a 5 voltios, con relación de reducción 64:1 (aproximadamente) y un máximo de  15 revoluciones por minuto. Necesita un controlador ULN2003 compatible con Arduino, que se puede apreciar en la placa verde en la foto debajo de estas líneas. Tiene 6 pines: 5V y GND (juntos) y otros cuatro para las señales de control (IN1, IN2, IN3, IN4).

stepperEn internet hay muchas librerías, nosotros usaremos la AccelStepper, que permite controlar varios parámetros con más facilidad que las demás *(puedes descargar la versión 1.48 haciendo click aquí) Tiene varias funciones (que puedes consultar aquí) para determinar la velocidad, aceleración, mandar un giro a un ángulo, medir cuánto queda para llegar a ese ángulo, determinar la posición actual, etc.

* en la Práctica 4 ya viste como añadir una librería

La mayor diferencia con la librería “oficial” de Arduino es que los pines se organizan en orden 1,3,2,4 (en vez de 1,2,3,4) y requiere que se declare la secuencia de control como HALFSTEP 8. En “void setup” se debe definir velocidad máxima (o la velocidad) y aceleración. En “void loop” se podrán definir las acciones a realizar, que sólo darán comienzo tras llamar a la función “run()”. En cada bucle el motor tiene bien determinada su posición, siendo una vuelta completa dividida en 4076 pasos.

Componentes necesarios para esta práctica

Al igual que en la práctica anterior, serán necesarios cables macho-hembra para la conexión entre Arduino y el controlador del motor.

El ejercicio a realizar en esta práctica es:

  1. El ejercicio a comienza conectando el motor y cargando la librería. Mediante un potenciómetro controlaremos la velocidad de rotación del motor (que estará rotando de inicio) a una aceleración dada.
  2. En el ejercicio b, también con potenciómetro para la señal de control, controlaremos la posición, para una aceleración y velocidad fijas.

Código ejercicio a

Código ejercicio b

Archivos .ino

Descarga el ejercicio a haciendo click aquí
Descarga el ejercicio b haciendo click aquí

Comentario final y RETO SEMANAL

Para terminar, intentad unir ambos códigos y determinar con un potenciómetro la posición a la que el motor debe girar y con el otro la velocidad con la cual lo ha de hacer.

Como siempre, si tenéis dudas o queréis mostrarnos el resultado, escribidnos a:

practicas@thinkbit.org

Enlaces relacionados

Arduino Reference(ENG): Stepper library
Airspayce(ENG): Creador de la librería AccelStepper
42bots (ENG): 28BYJ-48 Stepper Motor with ULN2003 driver
Web-robotica: Motor de pasos 28BYJ-48 con driver ULN2003
DIYmakers: Mover motores paso a paso con Arduino
Prometec: Motores paso a paso: 28BYJ-48
Electroensaimada: Tutorial Arduino con motor paso a paso
El cajon de ardu: Tutorial: Motor paso a paso con módulo ULN2003
Instructables(ENG): Arduino Library for 28BYJ-48 and ULN2003
Share Button

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">