Cómo usar el controlador de motor L298N © GPL3+

Cómo usar el controlador de motor L298N

Cómo usar el controlador de motor L298N © GPL3+

Un tutorial rápido sobre el uso del controlador de motor L298N con motores de CC

  • 311,500 puntos de vista
  • 40 comentarios
  • 73 saludos

Componentes y suministros

Aplicaciones y servicios en línea

Acerca de este proyecto

Sobre

El controlador de motor L298N es un controlador que utiliza un puente H para controlar fácilmente la dirección y la velocidad de hasta 2 motores de CC. Este tutorial le mostrará cómo usarlo.

Instrucciones en vídeo

Instrucciones de texto

Material:

1.) El controlador puede tomar hasta 2 motores. Enchufe un motor en el terminal etiquetado OUT1 y OUT2. Enchufe el segundo motor en el terminal etiquetado OUT3 y OUT4:

2.) La fila inferior derecha de pines en el L298N controla la velocidad y la dirección de los motores. IN1 e IN2 controlan la dirección del motor conectado a OUT1 y OUT2. IN3 e IN4 controlan la dirección del motor conectado a OUT3 y OUT4. Aquí los tengo enchufados en los pines 2, 3, 4 y 5 del Arduino.

3.) Puede alimentar el L298N con hasta 12 V conectando su fuente de alimentación en el pin del L298N con la etiqueta «12 V». El pin etiquetado como «5V» es una salida de 5V que puede usar para alimentar su Arduino. Aquí hay algunas formas de conectarlo dependiendo de su caso de uso:

Potencia Arduino con L298N

Alimentación L298N y Arduino por separado:

Alimentando el L298N con Arduino:

Software:

4.) Escriba el código. Configurar IN1 en ALTO e IN2 en BAJO hará que el motor izquierdo gire en una dirección. Configurar IN1 en BAJO e IN2 en ALTO hará que el motor izquierdo gire en la otra dirección. Lo mismo es cierto para IN3 e IN4. Aquí hay un breve ejemplo (puede descargar el código completo en la sección «Código» en la parte inferior de la página):

digitalWrite(motor1pin1, HIGH);
digitalWrite(motor1pin2, LOW);

digitalWrite(motor2pin1, HIGH);
digitalWrite(motor2pin2, LOW);

La rapidez:

5.) Puede cambiar la velocidad con los pines EN usando PWM. ENA controla la velocidad del motor izquierdo y ENB controla la velocidad del motor derecho. Aquí los tengo enchufados en los pines 9 y 10 del Arduino. Esto es opcional y los motores seguirán funcionando si no lo hace.

6.) Para cambiar la velocidad en el código, use la función analogWrite() (Más información) en los pines ENA y ENB. Aquí hay un ejemplo (Puede descargar el código completo en la sección «Código» en la parte inferior de la página):

analogWrite(ENA_pin, 50);

codificado

Código sin control de velocidadC/C++
int motor1pin1 = 2;
int motor1pin2 = 3;

int motor2pin1 = 4;
int motor2pin2 = 5;

void setup() {
  // put your setup code here, to run once:
  pinMode(motor1pin1, OUTPUT);
  pinMode(motor1pin2, OUTPUT);
  pinMode(motor2pin1, OUTPUT);
  pinMode(motor2pin2, OUTPUT);
}

void loop() {
  // put your main code here, to run repeatedly:   
  digitalWrite(motor1pin1, HIGH);
  digitalWrite(motor1pin2, LOW);

  digitalWrite(motor2pin1, HIGH);
  digitalWrite(motor2pin2, LOW);
  delay(1000);

  digitalWrite(motor1pin1, LOW);
  digitalWrite(motor1pin2, HIGH);

  digitalWrite(motor2pin1, LOW);
  digitalWrite(motor2pin2, HIGH);
  delay(1000);
}
Código con control de velocidadC/C++
int motor1pin1 = 2;
int motor1pin2 = 3;

int motor2pin1 = 4;
int motor2pin2 = 5;

void setup() {
  // put your setup code here, to run once:
  pinMode(motor1pin1, OUTPUT);
  pinMode(motor1pin2, OUTPUT);
  pinMode(motor2pin1, OUTPUT);
  pinMode(motor2pin2, OUTPUT);

  pinMode(9, OUTPUT); 
  pinMode(10, OUTPUT);
}

void loop() {
  // put your main code here, to run repeatedly:   

  //Controlling speed (0 = off and 255 = max speed):
  analogWrite(9, 100); //ENA pin
  analogWrite(10, 200); //ENB pin

  //Controlling spin direction of motors:
  digitalWrite(motor1pin1, HIGH);
  digitalWrite(motor1pin2, LOW);

  digitalWrite(motor2pin1, HIGH);
  digitalWrite(motor2pin2, LOW);
  delay(1000);

  digitalWrite(motor1pin1, LOW);
  digitalWrite(motor1pin2, HIGH);

  digitalWrite(motor2pin1, LOW);
  digitalWrite(motor2pin2, HIGH);
  delay(1000);
}

diagramas

9v_a3_ksdDAxLdBz.png
L298N alimentando Arduino
9v a3 ksddaxldbz

comentarios