Icono del sitio AranaCorp

Uso de un módulo L298N con Arduino

El módulo L298N es una placa de desarrollo basada en el CI L298N para accionar motores de corriente continua o motores paso a paso. Ya hemos visto el uso del puente H. Se trata de un módulo cómodo de utilizar con diferentes prestaciones en función de los componentes utilizados. Veremos en este tutorial el uso del módulo L298N con un microcontrolador Arduino.

Material

Principio de funcionamiento

El módulo L298N se basa en el circuito integrado del mismo nombre. El circuito L298N es un doble puente H que permite cambiar la dirección y la intensidad de la tensión en el terminal de dos cargas eléctricas.

Las características del módulo L298N son:

Diagrama de cableado

El módulo L298N se alimenta de una fuente de tensión externa. Cada medio puente requiere 3 pines de salida de un microcontrolador.

En algunos modelos de este módulo, es posible añadir dos puentes para conectar directamente los pines de habilitación (ENA y ENB) a 5V. Esto permite activar siempre el puente H y guardar dos salidas del microcontrolador

Código de gestión del módulo L298N

Para utilizar el módulo L298N, es necesario activar el puente H aplicando una tensión de 5V al pin EN. A continuación, envíe una señal PWM al pin Forward (Input1/4) o Reverse (Input2/3) para controlar el sentido y la velocidad de rotación. El sentido de giro hacia delante o hacia atrás depende del sentido de la conexión del motor.

//Constants
#define nbL298N 2

//Parameters
const int enaL298NPin[2] = {2, 4};
const int fwdL298NPin[2] = {3, 5};
const int bwdL298NPin[2] = {6, 9};

//Variables
int Power = 200;

void setup() {
  //Init Serial USB
  Serial.begin(9600);
  Serial.println(F("Initialize System"));
  //Init DCmotor
  for (int i = 0; i < nbL298N; i++) {
    pinMode(fwdL298NPin[i], OUTPUT);
    pinMode(bwdL298NPin[i], OUTPUT);
    pinMode(enaL298NPin[i], OUTPUT);
  }
}

void loop() {
  testL298N();
}

void testL298N() { /* function testL298N */
  ////Scenario to test H-Bridge
  for (int i = 0; i < nbL298N; i++) {
    digitalWrite(enaL298NPin[i], HIGH);
    analogWrite(bwdL298NPin[i], 0);
    for (int j = 0; j <= Power; j = j + 10) {
      analogWrite(fwdL298NPin[i], j);
      delay(20);
    }
    for (int j = Power; j >= 0; j = j - 10) {
      analogWrite(fwdL298NPin[i], j);
      delay(20);
    }
    delay(2000);
  }
}

Resultado

Una vez cargado el código, deberías ver los motores funcionando en una dirección y luego en la otra.

Aplicaciones

Fuentes

Retrouvez nos tutoriels et d’autres exemples dans notre générateur automatique de code
La Programmerie

Salir de la versión móvil