Introducción

El 28BYJ-48 es uno de los motores paso a paso más baratos que puedes encontrar. Aunque no es súper preciso ni potente, es un gran motor para usar en proyectos más pequeños o si solo quieres aprender sobre motores paso a paso.

Este motor se usa a menudo para ajustar automáticamente las paletas de una unidad de aire acondicionado. Tiene una caja de reducción incorporada, que le da un par extra y reduce drásticamente la velocidad.

A continuación puede encontrar las especificaciones para el motor paso a paso y el controlador que se utilizan en este tutorial.

Voltaje nominal5 V
Resistencia de la bonina50 Ohms
Bobina tipoUnipolar
Diámetro - eje5.00 mm
Longitud - eje y rodamiento10 mm
CaracterísticasEje aplanado
Tamaño / dimensión28.00 mm
Caja de Reducción1/64
Angulo de pasoModo de medio paso (recomendado): 0.0879°
Modo paso completo: 0.176°
Pasos por revoluciónModo de medio paso: 4096 (see note)
Modo paso completo: 2048
Terminales de conexiónCables con conector
Tipo de motorMotor de imán permanente
Numero de fases4

Para obtener más información, puede consultar la hoja de datos:
28byj48 - ULN2003

Te puede interesar

Conexión eléctrica

El diagrama de cableado muestra cómo conectar la placa del controlador ULN2003 al motor paso a paso 28BYJ-48 y al Arduino. Las conexiones también se dan en la tabla a continuación.

Diagrama de cableado para el controlador ULN2003 con motor paso a paso 28BYJ-48 y Arduino.
Diagrama de cableado para el controlador ULN2003 con motor paso a paso 28BYJ-48 y Arduino.

Código

Código de ejemplo básico de Arduino para controlar un motor paso a paso 28BYJ-48

Puede cargar el siguiente código de ejemplo en su Arduino utilizando el IDE de Arduino.
Este ejemplo usa la biblioteca Stepper.h, que viene preinstalada con el IDE de Arduino. Este scketch gira el motor paso a paso 1 revolución en una dirección, hace una pausa y luego gira 1 revolución en la otra dirección.


#include <Stepper.h>

// Define el número de pasos por rotación:
const int stepsPerRevolution = 2048;

// Conexiones:
// Pin 8 	a IN1 en el driver ULN2003
// Pin 9 	a IN2 en el driver ULN2003
// Pin 10 a IN3 en el driver ULN2003
// Pin 11 a IN4 en el driver ULN2003

// Crea un objeto paso a paso llamado 'myStepper', tenga en cuenta el orden de los pines:
Stepper myStepper = Stepper(stepsPerRevolution, 8, 10, 9, 11);

void setup() {
	myStepper.setSpeed(5); // Establecer la velocidad a 5 rpm:
  Serial.begin(9600); // Comienza la comunicación en serial para debug
}

void loop() {
  // revolución en una dirección:
  Serial.println("clockwise");
  myStepper.step(stepsPerRevolution);
  delay(500); // Pausa de 500 mseg
  
  // revolución en sentido inverso:
  Serial.println("counterclockwise");
  myStepper.step(-stepsPerRevolution);
  delay(500); // Pausa de 500 mseg
}