Cómo conectar un Motor a Pasos a Arduino

En este pequeño tutorial veremos cómo conectar un motor a pasos a una tarjeta Arduino, también encontrarás un código de programación para tus primeras pruebas.

Este ejemplo está pensado para usar un motor a pasos de imanes permanentes bipolar, ya que estos son los más comunes en proyectos pequeños de electrónica. Si deseas saber más sobre como se clasifican los motores a pasos te recomendamos: Motores a pasos… ¿unipolares o bipolares?

En este caso utilizaremos el Motor a pasos 5v – 28BYJ-48, dicho motor es del tipo unipolar, sin embargo al utilizar solo 4 de sus terminales y omitir el uso de una de ellas el motor puede funcionar como bipolar.

Un motor a pasos bipolar cuenta con 2 bobinas, 2 cables/terminales para cada una. Debido a la configuración de las bobinas la corriente puede fluir en ambos sentidos por lo que se requiere de una etapa de potencia que permita esto. Nosotros utilizaremos el puente H L293D.

Componentes Necesarios

  • Motor a pasos 5v – 28BYJ-48
  • Arduino Uno
  • Puente H L293D
  • Jack de 2.1mm Terminal de Barril a Terminal de Tornillo
  • Eliminador 5V, mínimo 1A – Terminal de Barril 2.1mm
  • Protoboard chica
  • Cables para conexión M-M

Diagrama de Conexiones

Arduino Uno – L293D – 28BYJ-48

Código de Arduino

Cargamos el código y observamos como el motor da una vuelta hacia un sentido y luego otra en el sentido contrario de manera cíclica.


#include <Stepper.h>

const int stepsPerRevolution = 48;  // Modifica este valor según el motor que estés utilizando

// inicializamos l alibrería con los pasos por vuelta del motor y los pines digitales a los cuales conectamos las terminales de nuestro motor
Stepper myStepper(stepsPerRevolution, 12,11,10,9);

void setup() {
  // Establecemos la velocidad a 60 rpm
  myStepper.setSpeed(60);
  // Inicializamos la comunicación serie
  Serial.begin(9600);
}

void loop() {
  // Damos una vuelta en un sentido
  Serial.println("clockwise");
  myStepper.step(stepsPerRevolution);
  delay(500);

  // Damos una vuelta en el sentido contrario
  Serial.println("counterclockwise");
  myStepper.step(-stepsPerRevolution);
  delay(500);
}

¡Sigue explorando!