Descripción
Motor A Pasos 5v 28byj-48 Con Driver Unl2003
El 28BYJ-48 es un motor paso a paso pequeño con 5 voltios para su operación. Debido a la relación de reducción de engranajes de aproximadamente 64: 1 ofrece un par de torsión decente de aproximadamente 15 rotaciones por minuto (RPM).
El motor tiene 4 bobinas de cable que se activan en una secuencia para hacer girar el eje magnético del motor. Cuando se usa el método de paso completo, 2 de las 4 bobinas se activan en cada paso.
La placa de control del motor paso a paso ULN2003 le permite controlar fácilmente el motor desde un microcontrolador, como el Arduino Uno. A un lado la placa tiene un zócalo de 5 cables donde se engancha el cable del motor paso a paso y 4 LED para indicar qué bobina está alimentada actualmente.
Voltaje nominal: 5VDC
Número de Fase 4
Relación de variación de velocidad 1/64
Ángulo de paso 5.625 ° / 64
Frecuencia 100Hz
Resistencia DC 50O ± 7% (25)
Frecuencia de entrada inactiva> 600Hz
Frecuencia de fuera de tracción inactiva> 1000Hz
Torque en la tracción> 34.3mN.m (120Hz)
Par de auto-posicionamiento> 34.3mN.m
Par de fricción 600-1200 gf.cm
Tire de torque 300 gf.cm
Grado de aislamiento A
Código
//definicion de pines
const int pinMotor1 = 8; // 28BYJ48 – In1
const int pinMotor2 = 9; // 28BYJ48 – In2
const int pinMotor3 = 10; // 28BYJ48 – In3
const int pinMotor4 = 11; // 28BYJ48 – In4
//definicion variables
int velocidadMotor = 1000; // variable para determinar la velocidad
// 800 maxima – minima 1000 o mas
int contadorPasos = 0; // contador para los pasos
int pasosPorVuelta = 4076; // pasos para una vuelta completa
// Tablas con la secuencia de encendido
// quitar signo de comentar a la necesaria)
//secuencia 1-fase usar velocidadMotor = 2000
//const int cantidadPasos = 4;
//const int tablaPasos[4] = { B1000, B0100, B0010, B0001 };
//secuencia 2-fases usar velocidadMotor = 2000
//const int cantidadPasos = 4;
//const int tablaPasos[4] = { B1001, B1100, B0110, B0011 };
//secuencia media fase usar velocidadMotor = 1000
const int cantidadPasos = 8;
const int tablaPasos[8] = { B1000, B1100, B0100, B0110, B0010, B0011, B0001, B1001 };
void setup()
{
//declarar pines como salida
pinMode(pinMotor1, OUTPUT);
pinMode(pinMotor2, OUTPUT);
pinMode(pinMotor3, OUTPUT);
pinMode(pinMotor4, OUTPUT);
}
void loop()
{
for (int i = 0; i < pasosPorVuelta * 2; i++)
{
sentidoHorario();
delayMicroseconds(velocidadMotor);
}
delay(200);
for (int i = 0; i < pasosPorVuelta * 2; i++)
{
sentidoAntihorario();
delayMicroseconds(velocidadMotor);
}
delay(200);
}
void sentidoHorario() // en dirección de las agujas del reloj
{
contadorPasos++;
if (contadorPasos >= cantidadPasos) contadorPasos = 0;
escribirSalidas(contadorPasos);
}
void sentidoAntihorario()// en dirección contraria a las agujas del reloj
{
contadorPasos—;
if (contadorPasos < 0) contadorPasos = cantidadPasos – 1;
escribirSalidas(contadorPasos);
}
void escribirSalidas(int paso)
{
digitalWrite(pinMotor1, bitRead(tablaPasos[paso], 0));
digitalWrite(pinMotor2, bitRead(tablaPasos[paso], 1));
digitalWrite(pinMotor3, bitRead(tablaPasos[paso], 2));
digitalWrite(pinMotor4, bitRead(tablaPasos[paso], 3));
}
Diagrama
Valoraciones
No hay valoraciones aún.