fbpixel
Etiquetas: ,

O módulo L298N é uma placa de desenvolvimento baseada no IC L298N para a condução de motores CC ou motores passo-a-passo. Já vimos a utilização da ponte H. Pode ser encontrado como um módulo conveniente para utilizar com diferentes desempenhos, dependendo dos componentes utilizados. Veremos neste tutorial a utilização do módulo L298N com um microcontrolador Arduino.

Material

  • Computador
  • Arduino UNO (ou outro microcontrolador)
  • Cabo USB A Macho/B Macho
  • Módulo L298N

Princípio funcional

O módulo L298N é baseado no circuito integrado com o mesmo nome. O circuito L298N é uma ponte dupla H que permite mudar a direcção e a intensidade da tensão no terminal de duas cargas eléctricas.
As características do módulo L298N são:

  • Controlo do motor de 5 a 35V de tensão nominal
  • 2A corrente máxima (pico)
  • Tensão de 5V aceite nos pinos de entrada
L298N-Module-Pinout Usando um módulo L298N com Arduino

Diagrama de cablagem

O módulo L298N é alimentado por uma fonte de tensão externa. Cada meia-ponte requer 3 pinos de saída de um microcontrolador.

  • GND terra IC ligada à terra do microcontrolador e à terra da fonte de alimentação
  • ENA permissão do motor M1 ligado ao pino 2
  • Input1 Direcção dianteira do motor M1 ligada ao pino 3
  • Input2 direcção traseira do motor M1 ligado ao pino 5
  • ENB habilitação do motor M2 ligado ao pino 4
  • Input3 direcção frontal do motor M2 ligada ao pino 6
  • Input4 direcção traseira do motor M2 ligada ao pino 9
arduino-module-l298n_bb-1280x639 Usando um módulo L298N com Arduino

Em alguns modelos deste módulo, é possível adicionar dois jumpers para ligar directamente os pinos de activação (ENA e ENB) a 5V. Isto permite activar sempre a ponte H e guardar duas saídas do microcontrolador

Código de gestão do módulo L298N

Para utilizar o módulo L298N, é necessário activar a ponte H, aplicando uma tensão de 5V ao pino EN. Em seguida, enviar um sinal PWM para o pino de Avanço (Entrada1/4) ou Inverter (Entrada2/3) para controlar a direcção e velocidade de rotação. A direcção de rotação para a frente ou para trás depende da direcção da ligação do 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

Uma vez carregado o código, deverá ver os motores a funcionar numa direcção e depois na outra.

Aplicações

  • Controlo da velocidade e direcção de rotação de dois motores CC ou de um motor passo-a-passo

Fontes

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