Uso del motor paso a paso 28BYJ-48 con un controlador ULN2003 y Arduino

Uso del motor paso a paso 28BYJ-48 con un controlador ULN2003 y Arduino

En este tutorial, aprenderemos a controlar un motor paso a paso 28BYJ-48 utilizando un controlador ULN2003 con un Arduino. Esta configuración permite un control preciso de la posición y la velocidad del motor. Al final de este proyecto, podrás rotar el motor en ambas direcciones y controlar sus pasos de manera efectiva.

Usaremos el motor paso a paso 28BYJ-48, que es una opción popular para varios proyectos de robótica y automatización debido a su bajo costo y facilidad de uso. La placa de control ULN2003 conecta el motor paso a paso con el Arduino, lo que nos permite enviar señales de paso que controlan el movimiento del motor. Este tutorial te guiará a través del cableado y el código necesarios para hacer girar tu motor.

Para más aclaraciones, consulte el video asociado con este tutorial (en el video a las 0:45).

Hardware Explicado

Los componentes clave de este proyecto incluyen el motor paso a paso 28BYJ-48 y la placa de control ULN2003. El motor paso a paso consta de varias bobinas que pueden ser energizadas en una secuencia específica para crear rotación. El controlador ULN2003 actúa como un interruptor, permitiendo que el Arduino controle la potencia entregada a cada bobina.

El controlador ULN2003 utiliza un arreglo de transistores Darlington para manejar la corriente más alta requerida por el motor paso a paso. Cuando un pin del Arduino emite una señal ALTA, permite que la corriente fluya hacia la bobina correspondiente en el motor, haciendo que se mueva. Esto permite un control preciso sobre el ángulo de rotación y la velocidad del motor.

Detalles de la hoja de datos

FabricanteULN2003
Número de parteULN2003
Voltaje de lógica/IO5 V
Tensión de alimentación5-30 V (máx)
Corriente de salida (por canal)500 mA máx
Corriente de pico (por canal)2 A máx
Guía de frecuencia PWMN/A
Umbrales de lógica de entrada0.8 V (bajo), 2.4 V (alto)
Caída de tensión / RDS(on)/ saturación1.5 V máx
Límites térmicos70 °C máx
PaqueteDIP-16
Notas / variantesComúnmente utilizado con motores paso a paso de 5V.

  • Asegúrate de que el controlador pueda manejar los requisitos actuales de tu motor.
  • Utiliza disipadores de calor si es necesario para gestionar los límites térmicos.
  • Verifica que todas las conexiones estén seguras para evitar entradas flotantes.
  • Prueba el motor ejecutando secuencias de pasos simples antes de integrarlo en proyectos más grandes.
  • Asegúrate de alimentar el motor con un voltaje de suministro adecuado.

Instrucciones de cableado

Para conectar el motor paso a paso 28BYJ-48 al controlador ULN2003 y al Arduino, sigue estos pasos:

Primero, conecta el motor al controlador ULN2003. El motor tiene cuatro cables, típicamente codificados por colores como naranja, amarillo, rosa y azul. Conecta estos cables a los pines de salida correspondientes en el controlador ULN2003. Las conexiones son las siguientes:

  • Orangecable aOUT1
  • Yellowcable aOUT2
  • Pinkcable aOUT3
  • Bluecable aOUT4

A continuación, conecta el controlador ULN2003 al Arduino. Los pines de entrada del controlador corresponden a cuatro pines digitales en el Arduino. Por ejemplo:

  • IN1aPin 10
  • IN2aPin 11
  • IN3aPin 12
  • IN4aPin 13

Finalmente, conecta los pines de alimentación y tierra del controlador ULN2003 al Arduino. Conecta elVCCpin a la salida de 5V del Arduino y elGNDconéctalo a la tierra del Arduino. Asegúrate de que todas las conexiones estén seguras antes de encender el sistema.

Ejemplos de código y guía paso a paso

En la sección de configuración del código de Arduino, definimos los pines conectados al controlador ULN2003:

int Pin1 = 10; 
int Pin2 = 11; 
int Pin3 = 12; 
int Pin4 = 13; 

Aquí, declaramos cuatro variables enteras:Pin1,Pin2,Pin3, yPin4, que corresponden a los pines digitales en el Arduino. Estos pines controlarán el movimiento del motor paso a paso.

En elsetup()función, configuramos estos pines como salidas:

void setup() { 
 pinMode(Pin1, OUTPUT);  
 pinMode(Pin2, OUTPUT);  
 pinMode(Pin3, OUTPUT);  
 pinMode(Pin4, OUTPUT);  
} 

Esta configuración asegura que el Arduino pueda enviar señales al controlador ULN2003 para controlar el motor.pinModela función establece cada pin en modo SALIDA, permitiéndoles enviar señales.

Finalmente, en el bucle principal, creamos un switch case para controlar los pasos del motor en función de la variable._step:

switch(_step){ 
   case 0: 
     digitalWrite(Pin1, LOW);  
     digitalWrite(Pin2, LOW); 
     digitalWrite(Pin3, LOW); 
     digitalWrite(Pin4, HIGH); 
   break;  
   // Additional cases follow
}

En este extracto, usamosdigitalWriteenviar señales ALTA o BAJA a cada pin según la corriente_step. Esto controla qué bobinas están energizadas, permitiendo que el motor gire. El código completo que integra estos fragmentos se cargará debajo del artículo.

Demostración / Qué Esperar

Una vez que todo esté cableado correctamente y el código esté cargado, el motor paso a paso debería girar en respuesta a las señales del Arduino. Puedes probar el motor modificando el retraso en el bucle o cambiando los pasos para ver cómo reacciona. Ten en cuenta que si el motor no está alimentado correctamente, puede que no se mueva o que se comporte de manera errática.

Capítulos

  • Introducción - 0:00
  • Hardware Explicado - 1:30
  • Instrucciones de cableado - 3:15
  • Ejemplos de código y recorrido - 5:00
  • Demostración / Qué Esperar - 7:45
6-The source code for stepper motor 28BYJ-48 with ULN2003 for Arduino
Idioma: C++
¡Copiado!

Archivos📁

No hay archivos disponibles.