Uso de un controlador de motor L298N para controlar un motor paso a paso de 4 hilos

Uso de un controlador de motor L298N para controlar un motor paso a paso de 4 hilos

En este tutorial, exploraremos cómo controlar un motor paso a paso de 4 cables usando el controlador de motor L298N junto con un Arduino. El L298N es un versátil controlador de doble puente en H que nos permite controlar la dirección y la velocidad de los motores paso a paso de manera efectiva. Al final de esta guía, tendrás una configuración funcional que podrá girar el motor paso a paso en ambas direcciones y controlar su velocidad mediante un potenciómetro.

L298N motor driver (yellow connector)

Para ayudarte a entender mejor el proceso, te recomiendo ver el vídeo asociado, que proporciona una demostración visual del cableado y la programación (en el vídeo en 01:30).

Hardware explicado

El controlador de motor L298N está diseñado para controlar motores, permitiendo accionarlos tanto hacia adelante como en sentido inverso. Utiliza una configuración en puente H, lo que significa que puede cambiar la polaridad de la tensión aplicada al motor, invirtiendo así su sentido de giro. Este controlador puede manejar una tensión de alimentación de hasta 46 V y una corriente continua de 2 A por canal, lo que lo hace adecuado para muchas aplicaciones.

En nuestra configuración, utilizaremos cuatro pines de control para gestionar el motor paso a paso. Los pines clave sonENAyENB, que deben configurarse en HIGH (5V) para habilitar el controlador. Los pinesIN1,IN2,IN3, yIN4Controlará los estados de los devanados del motor, permitiéndole dar un paso en la dirección deseada.

Detalles de la hoja de datos

FabricanteSTMicroelectronics
Número de piezaL298N
Voltaje de lógica/E/S5 V
Tensión de alimentación5-46 V (VS)
Corriente de salida (por canal)2 A máx./canal (continuo)
Corriente de pico (por canal)3 A máx.
Guía de frecuencia PWM1 kHz a 20 kHz
Umbrales lógicos de entrada0.8 V (bajo), 2.0 V (alto)
Caída de tensión / RDrenador-Fuente (en conducción)/ saturación1.5 V máx.
Límites térmicos150 °C máx.
PaqueteDIP-15
Notas / variantesTambién disponible en versiones planas (L298P)

  • AsegurarENAyENBestán conectados a 5 V para su correcto funcionamiento.
  • Utilice disipadores de calor adecuados en aplicaciones de alta corriente para evitar el sobrecalentamiento.
  • Mantén la masa común entre el Arduino y el controlador del motor.
  • Tenga cuidado con la polaridad del cableado para evitar dañar el motor o el controlador.
  • Instale condensadores de desacoplo cerca de los pines de alimentación para filtrar el ruido.
  • Ajuste la frecuencia PWM según las especificaciones del motor para un rendimiento óptimo.

Instrucciones de cableado

L298N motor driver (yellow connector)
L298N motor driver (yellow connector)

Para cablear el controlador de motor L298N al Arduino y al motor paso a paso, comience conectando la fuente de alimentación. Conecte elVINpin del L298N a tu fuente de alimentación de 12V. A continuación, conecta elGNDConecta el pin del L298N a la masa de tu fuente de alimentación y también a la masa del Arduino.

Ahora, para los pines de control, conecteENAal pin 2 del Arduino yENBal pin 3. A continuación, conectaIN1al pin 8,IN2al pin 9,IN3al pin 10, yIN4al pin 11 del Arduino. Finalmente, conecte los cables del motor paso a paso a los terminales de salida del L298N. Asegúrese de que los dos pares de cables del motor estén conectados correctamente a las salidas.

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

En el código, primero incluimos elStepper.hUna biblioteca para simplificar el control del motor paso a paso. Definimos el número total de pasos por revolución, lo cual es crucial para un movimiento preciso. Los identificadores clave en el código incluyenstepsPerRevolution, que establece el número de pasos necesarios para una rotación completa, ymyStepper, que inicializa el objeto stepper con los pines especificados.

const int stepsPerRevolution = 200;  // change this to fit the number of steps per revolution
Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11); // initialize the stepper library

Este fragmento inicializa el motor paso a paso con los pines apropiados. En elsetup()En la función, establecemos la velocidad del motor y habilitamos el controlador poniendo los pines 2 y 3 en HIGH.

void setup() {
  myStepper.setSpeed(300); // set the speed at 60 rpm
  pinMode(2,OUTPUT); // for EN1
  digitalWrite(2,HIGH); // enable EN1
  pinMode(3,OUTPUT); // for EN2
  digitalWrite(3,HIGH); // enable EN2
}

En elloop()En esta función, el motor da una revolución tanto en sentido horario como en sentido antihorario, con una pausa entre ambas. Esto le permite observar el funcionamiento del motor.

void loop() {
  myStepper.step(stepsPerRevolution); // step one revolution in one direction
  delay(500); // wait half a second
  myStepper.step(-stepsPerRevolution); // step one revolution in the other direction
  delay(500); // wait half a second
}

Este extracto demuestra cómo controlar el motor para que gire en ambas direcciones. El código completo se encuentra debajo del artículo para su referencia.

Demostración / Qué esperar

Una vez que todo esté cableado correctamente y el código cargado, deberías ver el motor paso a paso girar una revolución completa en una dirección, seguida de una revolución completa en la dirección opuesta. Además, si incorporas el potenciómetro para el control de velocidad, ajustarlo cambiará la velocidad de rotación del motor. Ten en cuenta la corriente del motor; al aumentar la velocidad, el motor puede consumir más corriente, lo que puede provocar sobrecalentamiento si no se gestiona adecuadamente (en el video a las 09:45).

Si el motor no gira como se espera, compruebe el cableado para asegurarse de que todas las conexiones estén firmes y correctamente orientadas. Además, verifique que el voltaje de la fuente de alimentación sea apropiado para su motor paso a paso.

Marcas de tiempo del vídeo

  • 00:00- Introducción
  • 01:30- Explicación del cableado
  • 05:00- Resumen del código
  • 09:45- Demostración del control motor

Imágenes

L298N motor driver (yellow connector)
L298N motor driver (yellow connector)
L298N motor driver (yellow connector)
L298N motor driver (yellow connector)
L298N motor driver (yellow connector)
L298N motor driver (yellow connector)
Nema17_stpper_motor-1
Nema17_stpper_motor-1
Nema17_stpper_motor-2
Nema17_stpper_motor-2
94-Code for One Revolution
Idioma: C++
95-Code for rotating a stepper motor one step at a time
Idioma: C++
¡Copiado!

Cosas que podrías necesitar

Recursos y referencias

Aún no hay recursos.

Archivos📁

No hay archivos disponibles.