El Motor paso a paso 28BYJ-48 con Driver ULN2003 es un módulo esencial para proyectos que requieren movimiento preciso y controlado. Ideal para robótica, impresoras 3D caseras y automatización, te permite lograr movimientos angulares exactos con facilidad.
Este Kit Motor Stepper te ofrece la solución completa para tus prototipos, asegurando un control fiable y una implementación sencilla con plataformas como Arduino® y ESP32.
Descubre el poder del Motor paso a paso 28BYJ-48 con Driver ULN2003, el conjunto perfecto para tus proyectos de electrónica y automatización. Este módulo paso a paso te ofrece un control de movimiento angular exacto, ideal para aplicaciones donde la precisión es clave. Desde robótica hasta sistemas de posicionamiento, este Motor Stepper es la solución económica y fiable que estabas buscando para dar vida a tus ideas.
Este versátil conjunto de Motor paso a paso 28BYJ-48 y driver ULN2003 es fundamental en una amplia gama de aplicaciones que demandan control de posición. Algunos de sus usos más comunes incluyen:
Con este controlador de motor paso a paso, tendrás la capacidad de implementar movimientos repetibles y controlados en tus prototipos.
Las características destacadas del Motor paso a paso 28BYJ-48 y su driver ULN2003 lo convierten en una opción popular para entusiastas y profesionales:
Este conjunto de motor paso a paso con driver es perfecto para:
/*
Descripción: Este código controla el Motor paso a paso 28BYJ-48 conectado a un driver ULN2003 para girarlo en ambas direcciones.
Producto: Motor paso a paso 28BYJ-48 y driver ULN2003
Plataforma: Arduino UNO
Conexiones (repetir las más importantes o hacer referencia a la tabla):
- ULN2003 IN1 -> Arduino Digital Pin 8
- ULN2003 IN2 -> Arduino Digital Pin 9
- ULN2003 IN3 -> Arduino Digital Pin 10
- ULN2003 IN4 -> Arduino Digital Pin 11
Este código es completo y funcional, listo para copiar y pegar en el Arduino IDE.
Está bien comentado para facilitar su comprensión.
*/
// Definición de los pines de control del driver ULN2003
const int in1Pin = 8;
const int in2Pin = 9;
const int in3Pin = 10;
const int in4Pin = 11;
// Secuencia de pasos para el motor 28BYJ-48 (Full Step, una fase activada)
// Cada fila representa el estado de los pines IN1, IN2, IN3, IN4
const byte stepSequence[4][4] = {
{HIGH, LOW, LOW, LOW},
{LOW, HIGH, LOW, LOW},
{LOW, LOW, HIGH, LOW},
{LOW, LOW, LOW, HIGH}
};
// 2048 pasos para una revolución completa del eje de salida
const int stepsPerRevolution = 2048;
int currentStep = 0; // Paso actual en la secuencia
void setup() {
// Configurar los pines como salida
pinMode(in1Pin, OUTPUT);
pinMode(in2Pin, OUTPUT);
pinMode(in3Pin, OUTPUT);
pinMode(in4Pin, OUTPUT);
// Inicializar todos los pines en LOW para asegurar que el motor esté apagado inicialmente
digitalWrite(in1Pin, LOW);
digitalWrite(in2Pin, LOW);
digitalWrite(in3Pin, LOW);
digitalWrite(in4Pin, LOW);
}
void loop() {
// Girar el motor 1 revolución en sentido horario
for (int i = 0; i < stepsPerRevolution; i++) {
moveMotor(1); // Mover un paso en sentido horario
delay(2); // Retraso entre pasos (ajusta para controlar la velocidad del motor)
}
delay(1000); // Pausa de 1 segundo antes de cambiar de dirección
// Girar el motor 1 revolución en sentido antihorario
for (int i = 0; i < stepsPerRevolution; i++) {
moveMotor(-1); // Mover un paso en sentido antihorario
delay(2); // Retraso entre pasos
}
delay(1000); // Pausa de 1 segundo
}
// Función para mover el motor un paso
// direction: 1 para horario, -1 para antihorario
void moveMotor(int direction) {
currentStep += direction;
// Asegurar que currentStep se mantenga dentro del rango de la secuencia (0 a 3)
if (currentStep >= 4) {
currentStep = 0;
} else if (currentStep < 0) {
currentStep = 3;
}
// Activar los pines según el paso actual de la secuencia
digitalWrite(in1Pin, stepSequence[currentStep][0]);
digitalWrite(in2Pin, stepSequence[currentStep][1]);
digitalWrite(in3Pin, stepSequence[currentStep][2]);
digitalWrite(in4Pin, stepSequence[currentStep][3]);
}
/*
Descripción: Este código controla el Motor paso a paso 28BYJ-48 conectado a un driver ULN2003 usando un ESP32, girándolo en ambas direcciones.
Producto: Motor paso a paso 28BYJ-48 y driver ULN2003
Plataforma: ESP32 Dev Module
Conexiones (repetir las más importantes o hacer referencia a la tabla):
- ULN2003 IN1 -> ESP32 GPIO 16
- ULN2003 IN2 -> ESP32 GPIO 17
- ULN2003 IN3 -> ESP32 GPIO 18
- ULN2003 IN4 -> ESP32 GPIO 19
Este código es completo y funcional, listo para copiar y pegar en el Arduino IDE.
Está bien comentado para facilitar su comprensión.
*/
// Definición de los pines de control del driver ULN2003
const int in1Pin = 16;
const int in2Pin = 17;
const int in3Pin = 18;
const int in4Pin = 19;
// Secuencia de pasos para el motor 28BYJ-48 (Full Step, una fase activada)
const byte stepSequence[4][4] = {
{HIGH, LOW, LOW, LOW},
{LOW, HIGH, LOW, LOW},
{LOW, LOW, HIGH, LOW},
{LOW, LOW, LOW, HIGH}
};
const int stepsPerRevolution = 2048; // 2048 pasos para una revolución completa del eje de salida
int currentStep = 0; // Paso actual en la secuencia
void setup() {
// Configurar los pines como salida
pinMode(in1Pin, OUTPUT);
pinMode(in2Pin, OUTPUT);
pinMode(in3Pin, OUTPUT);
pinMode(in4Pin, OUTPUT);
// Inicializar todos los pines en LOW para asegurar que el motor esté apagado inicialmente
digitalWrite(in1Pin, LOW);
digitalWrite(in2Pin, LOW);
digitalWrite(in3Pin, LOW);
digitalWrite(in4Pin, LOW);
}
void loop() {
// Girar el motor 1 revolución en sentido horario
for (int i = 0; i < stepsPerRevolution; i++) {
moveMotor(1); // Mover un paso en sentido horario
delay(2); // Retraso entre pasos (ajusta para controlar la velocidad del motor)
}
delay(1000); // Pausa de 1 segundo antes de cambiar de dirección
// Girar el motor 1 revolución en sentido antihorario
for (int i = 0; i < stepsPerRevolution; i++) {
moveMotor(-1); // Mover un paso en sentido antihorario
delay(2); // Retraso entre pasos
}
delay(1000); // Pausa de 1 segundo
}
// Función para mover el motor un paso
// direction: 1 para horario, -1 para antihorario
void moveMotor(int direction) {
currentStep += direction;
// Asegurar que currentStep se mantenga dentro del rango de la secuencia (0 a 3)
if (currentStep >= 4) {
currentStep = 0;
} else if (currentStep < 0) {
currentStep = 3;
}
// Activar los pines según el paso actual de la secuencia
digitalWrite(in1Pin, stepSequence[currentStep][0]);
digitalWrite(in2Pin, stepSequence[currentStep][1]);
digitalWrite(in3Pin, stepSequence[currentStep][2]);
digitalWrite(in4Pin, stepSequence[currentStep][3]);
}
No esperes más para llevar tus proyectos al siguiente nivel. El Motor paso a paso 28BYJ-48 y driver ULN2003 es la elección inteligente para control de movimiento preciso y fiable. ¡Adquiérelo hoy mismo en TECmikro y recíbelo con envío rápido a todo Ecuador! Tu próximo proyecto de robótica o automatización te espera.