Control de motores dc con arduino y l298n

El módulo L298N es una solución popular para controlar motores DC con Arduino. Con este módulo, puedes manejar la velocidad y dirección de dos motores DC de forma independiente, y también puedes controlarlo como un puente H para controlar un motor paso a paso. En esta información, te explicaremos cómo funciona el módulo L298N, cómo conectarlo a Arduino y te proporcionaremos ejemplos de código para controlar los motores DC.

Descripción del Módulo L298N

El L298N es un controlador de motor de puente H que permite controlar la velocidad y dirección de los motores DC. Sus principales características incluyen:

  • Control de dos motores DC : Puede controlar dos motores DC de forma independiente.
  • Voltaje de operación amplio : Funciona con voltajes de suministro de 5 a 35V.
  • Corriente de salida alta : Puede controlar motores que consumen hasta 2A.
  • Regulador de voltaje incorporado : Proporciona un voltaje de salida de 5V.
  • Posibilidad de alimentación externa : Se puede alimentar desde Arduino o una fuente de alimentación externa (recomendado).

Configuración de Pines del Módulo L298N

El módulo L298N tiene una serie de pines que se usan para controlarlo y conectar los motores. A continuación, se describe la función de cada pin:

Motor A

Este bloque de terminales proporciona la salida para el primer motor.

Jumper de 12V

Este jumper se debe colocar en su lugar si el voltaje de suministro es inferior a 12V. En este caso, el pin de alimentación de 5V proporcionará una salida de 5V. Si el voltaje de suministro es superior a 12V, se debe quitar este jumper y proporcionar un suministro de 5V al pin de alimentación de 5V para que el IC L298 Dual H Bridge funcione correctamente.

Pines de Alimentación

Se debe proporcionar el voltaje de suministro de 5 a 35V al pin de 12V y a tierra. Si el voltaje de suministro es superior a 12V, asegúrate de quitar el jumper de 12V. El pin de 5V actuará como salida si Vs es inferior a 12V, y actuará como entrada si Vs es superior a 12V.

dc motor arduino l298n - Cómo controlar un motor DC con Arduino y L298N

Pines de Habilitación

Se deben quitar los jumpers en los pines de habilitación A y B si deseas controlar la velocidad de los motores DC y conectarlos a los pines PWM de Arduino. Si deseas controlar un motor paso a paso con L298N, se deben mantener los jumpers en los pines de habilitación A y B. Mantener los jumpers en estos pines significa que estos pines estarán en alto.

Pines Lógicos

Conecta los pines lógicos a cualquier pin digital de Arduino. Estos pines ayudarán a controlar la rotación y la velocidad de los motores DC.

Motor B

Este bloque de terminales proporcionará la salida para el segundo motor.

Regulador Lineal de 5V

Este regulador reducirá el voltaje de suministro a 5V y proporcionará la salida al pin de 5V.

Conexión del Módulo L298N a Arduino

Para conectar el módulo L298N a Arduino, necesitarás los siguientes componentes:

  • Arduino (cualquier modelo)
  • Módulo L298N
  • Dos motores DC (con sus respectivos engranajes)
  • Cableado
  • Fuente de alimentación externa (recomendado)

El siguiente diagrama muestra la conexión del módulo L298N a Arduino:

Diagrama de Conexión

Tabla con conexiones

Arduino L298N
5V 5V (alimentación del módulo)
GND GND (alimentación del módulo)
Digital Pin 2 Pin Lógico A (control de dirección del motor A)
Digital Pin 3 Pin Lógico B (control de dirección del motor A)
Digital Pin 9 Pin de Habilitación A (control de velocidad del motor A)
Digital Pin 10 Pin de Habilitación B (control de velocidad del motor B)
Digital Pin 11 Pin Lógico C (control de dirección del motor B)
Digital Pin 12 Pin Lógico D (control de dirección del motor B)
GND GND (motor A)
5V 5V (motor A)
GND GND (motor B)
5V 5V (motor B)

Ejemplos de Código

Aquí te presentamos algunos ejemplos de código para controlar los motores DC con el módulo L298N y Arduino:

Control de la Velocidad y Dirección de un Motor DC

Este código controla la velocidad y dirección de un motor DC conectado al bloque de terminales del motor A:

// Pines de Arduino para controlar el motor A const int motor_A_pin_1 = 2; const int motor_A_pin_2 = 3; const int motor_A_enable_pin = 9;  void setup() { // Configurar pines de salida pinMode(motor_A_pin_1, OUTPUT); pinMode(motor_A_pin_2, OUTPUT); pinMode(motor_A_enable_pin, OUTPUT); }  void loop() { // Establecer la velocidad del motor analogWrite(motor_A_enable_pin, 150); // 150 es el 50% de la velocidad máxima  // Girar el motor hacia adelante digitalWrite(motor_A_pin_1, HIGH); digitalWrite(motor_A_pin_2, LOW); delay(2000); // Esperar 2 segundos  // Girar el motor hacia atrás digitalWrite(motor_A_pin_1, LOW); digitalWrite(motor_A_pin_2, HIGH); delay(2000); // Esperar 2 segundos  // Detener el motor digitalWrite(motor_A_pin_1, LOW); digitalWrite(motor_A_pin_2, LOW); delay(2000); // Esperar 2 segundos }

Control de dos Motores DC

Este código controla la velocidad y dirección de dos motores DC conectados a los bloques de terminales del motor A y B:

// Pines de Arduino para controlar el motor A const int motor_A_pin_1 = 2; const int motor_A_pin_2 = 3; const int motor_A_enable_pin = 9;  // Pines de Arduino para controlar el motor B const int motor_B_pin_1 = 11; const int motor_B_pin_2 = 12; const int motor_B_enable_pin = 10;  void setup() { // Configurar pines de salida pinMode(motor_A_pin_1, OUTPUT); pinMode(motor_A_pin_2, OUTPUT); pinMode(motor_A_enable_pin, OUTPUT); pinMode(motor_B_pin_1, OUTPUT); pinMode(motor_B_pin_2, OUTPUT); pinMode(motor_B_enable_pin, OUTPUT); }  void loop() { // Establecer la velocidad del motor A analogWrite(motor_A_enable_pin, 150);  // Girar el motor A hacia adelante digitalWrite(motor_A_pin_1, HIGH); digitalWrite(motor_A_pin_2, LOW);  // Establecer la velocidad del motor B analogWrite(motor_B_enable_pin, 200);  // Girar el motor B hacia atrás digitalWrite(motor_B_pin_1, LOW); digitalWrite(motor_B_pin_2, HIGH);  delay(2000); }

Control de un Motor Paso a Paso

El módulo L298N también se puede utilizar para controlar motores paso a paso. Para controlar un motor paso a paso, debes mantener los jumpers en los pines de habilitación A y B, y conectar los pines lógicos al motor paso a paso.

// Pines de Arduino para controlar el motor paso a paso const int motor_step_pin = 2; const int motor_direction_pin = 3;  void setup() { // Configurar pines de salida pinMode(motor_step_pin, OUTPUT); pinMode(motor_direction_pin, OUTPUT); }  void loop() { // Girar el motor paso a paso en sentido horario digitalWrite(motor_direction_pin, HIGH);  // Dar un paso digitalWrite(motor_step_pin, HIGH); delayMicroseconds(500); digitalWrite(motor_step_pin, LOW); delayMicroseconds(500); }

Consejos para el Uso del Módulo L298N

  • Utiliza una fuente de alimentación externa para alimentar el módulo L298N. Esto evitará que el Arduino se sobrecargue.
  • Utiliza un disipador de calor en el módulo L298N si vas a manejar motores que requieren una alta corriente.
  • Experimenta con diferentes valores de PWM para controlar la velocidad de los motores.
  • Asegúrate de que los pines de habilitación estén configurados correctamente para controlar los motores.

El módulo L298N es una herramienta versátil para controlar motores DC con Arduino. Con su amplio rango de voltaje de operación, alta corriente de salida y facilidad de uso, es una solución popular para una variedad de proyectos. Esta tutorial te ha brindado una comprensión completa de cómo funciona el módulo L298N, cómo conectarlo a Arduino y cómo controlarlo con el código. ¡Experimenta con diferentes aplicaciones y el potencial del módulo L298N en tus proyectos!

Si quieres conocer otros artículos parecidos a Control de motores dc con arduino y l298n puedes visitar la categoría Motor.

Subir