Nema 17: todo sobre el motor paso a paso compatible con Arduino

Nema 17

Ya hemos analizado todo sobre los motores paso a paso que puedes usar con tus proyectos Arduino, pero hay uno de esos motores que destaca sobre el resto de modelos como es el Nema 17, ya que es un motor muy preciso y con varias aplicaciones, entre ellas las de sustituir al motor estropeado de algunas impresoras 3D.

Con este motor paso a paso conseguirás controlar de forma muy precisa el giro de su eje para hacer movimientos de precisión y así controlar el movimiento de tu máquina o robot. Y en esta guía podrás obtener toda la información que necesitas para conocerlo de cerca y comenzar a trabajar con él.

Características técnicas del Nema 17

El motor paso a paso Nema 17 es de tipo bipolar, con un ángulo de paso de 1,8º, es decir, puede dividir cada una de las revoluciones o vueltas en 200 pasos. Cada bobinado de los que tiene en su interior soporta 1.2A de intensidad a 4v de tensión, con lo que es capaz de desarrollar una fuerza considerable de 3.2 kg/cm.

Además, este motor Nema 17 es robusto, por eso se emplea en aplicaciones como las impresoras 3D caseras y otros robot que necesitan tener una consistencia considerable. Un ejemplo de impresoras que usan este motor como base de sus movimientos es la Prusa. También es usado en cortadoras láser, máquinas de CNC, máquinas pick & place, etc.

No obstante, no todo son maravillas y ventajas en este motor, ya que es más potente que fiable, por tanto, no está tan equilibrado en este sentido…

Resumiendo, las características técnicas son:

  • Motor paso a paso.
  • Modelo NEMA 17
  • Peso 350 gramos
  • Tamaño 42.3x48mm sin eje
  • Diámetro del eje 5mm D
  • Longitud del eje 25 mm
  • 200 pasos por vuelta (1,8º/paso)
  • Corriente 1.2A por bobinado
  • Tensión de alimentación 4v
  • Resistencia 3.3 Ohm por bobina
  • Torque motor de 3.2 kg/cm
  • Inductancia 2.8 mH por bobina

Pinout y datasheet

pinout Nema 17

El pinout de estos motores paso a paso es bastante sencillo, ya que no tienen demasiados cables para la conexión, además traen un conector para que los puedas hacer de forma más sencilla. En el aso del NEMA 17 encontrarás un pinout como el que puedes ver en la imagen superior.

Pero si necesitas conocer más detalles técnicos y eléctricos de los límites y rangos en los que puede trabajar el NEMA 17, puedes buscar un datasheet de este motor paso a paso y así obtener toda la información complementaria que buscas. Aquí puedes descargar un PDF con un ejemplo.

Dónde comprar y precio

Lo puedes encontrar a un precio bajo en varias tiendas especializadas de electrónica y también en tiendas online. Por ejemplo, lo tienes disponible en Amazon. Los hay de diferentes fabricantes y en diferentes formatos de venta, como en packs de 3 o más unidades si necesitas varios para un robot móvil, etc. Aquí tienes algunas buenas ofertas:

Ejemplo de cómo comenzar con el Nema 17 y Arduino

esquema de motor paso a paso Nema 17 y Arduino

Un ejemplo sencillo para comenzar a usar este motor paso a paso NEMA 17 con Arduino es este simple esquema que puedes montar. Yo he empleado un driver para motores DRV8825, pero puedes usar alguno diferente e incluso también un motor paso a paso diferente si quieres variar el proyecto y adaptarlo a tus necesidades. Igual ocurre con el código del sketch, que puedes modificar a tu gusto…

En el caso del driver empleado aguanta 45v y 2A de intensidad, por lo que es ideal para motores paso a paso o steppers de talla pequeña y mediana como es el caso del NEMA 17 bipolar. Pero si necesitas algo más «pesado», un  motor más grande como el NEMA 23, entonces puedes usar el driver TB6600.

Recuerda que puedes usar también la biblioteca AccelStepper para un mejor manejo. Una biblioteca escrita por Mike McCauley que resulta muy práctica para tus proyectos, con soporte para aceleración y desaceleración, toda una ventaja para multitud de funciones.

Las conexiones resumidas son las siguientes:

  • El motor NEMA 17 tiene su conexiones GND y VMOT al suministro de poder. Que en la imagen aparece con un componente con un rayo dibujado y un condensador. La fuente debe tener entre 8 y 45v de suministro, y el condensador agregado que he añadido podrá ser de 100µF.
  • Las dos bobinas del stepper está conectado a A1, A2, y B1, B2 respectivamente.
  • El pin GND del diver está conectado a GND de Arduino.
  • El pin VDD del driver está conectado a 5v de Arduino.
  • STP y DIR para el paso y dirección están conectados a los pines digitales 3 y 2 respectivamente. Si quieres elegir otros pines de Arduino puedes, solo tienes que modificar el código en consonancia.
  • RST y SLP para reset y sleep del driver los debes conectar a 5v de la placa Arduino.
  • EN o pin de activación puede estar desconectado, ya que de ese modo el driver estará activo. Si se pone a HIGH en vez de LOW el driver está desactivo.
  • Otros pines estarán desconectados…

En cuanto al código del sketch, puede ser tan simple como este para hacer funcionar el NEMA 17 y dar los primeros pasos, nunca mejor dicho…


#define dirPin 2
#define stepPin 3
#define stepsPerRevolution 200
void setup() {
  // Declare pins as output:
  pinMode(stepPin, OUTPUT);
  pinMode(dirPin, OUTPUT);
}
void loop() {
  // Set the spinning direction clockwise:
  digitalWrite(dirPin, HIGH);
  // Spin the stepper motor 1 revolution slowly:
  for (int i = 0; i < stepsPerRevolution; i++) {
    // These four lines result in 1 step:
    digitalWrite(stepPin, HIGH);
    delayMicroseconds(2000);
    digitalWrite(stepPin, LOW);
    delayMicroseconds(2000);
  }
  delay(1000);
  // Set the spinning direction counterclockwise:
  digitalWrite(dirPin, LOW);
  // Spin the stepper motor 1 revolution quickly:
  for (int i = 0; i < stepsPerRevolution; i++) {
    // These four lines result in 1 step:
    digitalWrite(stepPin, HIGH);
    delayMicroseconds(1000);
    digitalWrite(stepPin, LOW);
    delayMicroseconds(1000);
  }
  delay(1000);
  // Set the spinning direction clockwise:
  digitalWrite(dirPin, HIGH);
  // Spin the stepper motor 5 revolutions fast:
  for (int i = 0; i < 5 * stepsPerRevolution; i++) {
    // These four lines result in 1 step:
    digitalWrite(stepPin, HIGH);
    delayMicroseconds(500);
    digitalWrite(stepPin, LOW);
    delayMicroseconds(500);
  }
  delay(1000);
  // Set the spinning direction counterclockwise:
  digitalWrite(dirPin, LOW);
  //Spin the stepper motor 5 revolutions fast:
  for (int i = 0; i < 5 * stepsPerRevolution; i++) {
    // These four lines result in 1 step:
    digitalWrite(stepPin, HIGH);
    delayMicroseconds(500);
    digitalWrite(stepPin, LOW);
    delayMicroseconds(500);
  }
  delay(1000);
}

Más información, puedes consultar el curso de programación con Arduino IDE de Hwlibre.


Sé el primero en comentar

Deja tu comentario

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

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.