fbpixel
Etiquetas: ,
0
(0)

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

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

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

How useful was this post?

Click on a star to rate it!

Average rating 0 / 5. Vote count: 0

No votes so far! Be the first to rate this post.

As you found this post useful...

Follow us on social media!

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?