Ponte H L298N Arduino: Como usar no Arduino Uno (+projeto de exemplo)

Flávio Babos
Escrito por Flávio Babos
Atualizado em:

Você sabe como controlar motores CC com Arduino? Hoje nós trazemos uma forma diferente para conseguir ligar e desligar estes motores com o Arduino através de um “driver”, também conhecido como ponte H Arduino.

Neste artigo, abordaremos todos os detalhes do que é e como utilizar uma onde H em seu projeto para controlar motores de diversos tamanhos e potências com o Arduino UNO.

Além deste projeto introdutório, traremos também mais 3 projetos que utilizam ponte H e motores CC como exemplo para te motivar e ilustrar o que é possível desenvolver com estes componentes.

👨‍💻 Comprar Agora – Kit Iniciante Arduino com Tutorial e + 20 Projetos

O que é uma ponte H e qual sua função?

Sabemos que cada pino do arduino consegue fornecer uma tensão de 5V e uma corrente máxima de 20mA, porém no caso de alguns motores CC (Corrente Contínua) a tensão de alimentação é maior do que os 5V e a corrente necessária é bem maior do que a fornecida pelo arduino.

Com isso surge a necessidade de utilizar um elemento que suporte estes níveis solicitados pelo motor, ao mesmo tempo que seja controlado pelos comandos elétricos do arduino. Chegamos então aos “drivers” de corrente e tensão.

Estes “Drivers” são componentes que suportam uma tensão e uma corrente além do que o fornecido pelo Arduino, permitindo se acoplar ao circuito cargas muito maiores e de diferentes tensões.

Transistores, que por sua vez são muito utilizados na refrigeração residencial e industrial, Tiristores e Circuitos Integrados (CIs) especiais como o L298N, são componentes que exercem essa função citada no parágrafo anterior.

No caso de motores CC, existe uma ligação denominada Ponte H, que permite “drivar” os motores e ao mesmo tempo controlar o sentido de rotação deles. Esta ligação é exemplificada na figura a seguir:

Sentido motor de passo controlado com Arduino

Quando os 4 contatos estão abertos o motor está desligado. Para ligar em um sentido é necessário ligar um par de chaves (Conforme imagem do sentido normal), para inverter o sentido deve se utilizar as outras chaves (Conforme imagem do sentido reverso).

Como funciona o módulo L298N?

Plaquinha driver motor de passo

O módulo L298N possui um CI projetado para exercer a função de driver e permitir a ligação dos motores em ponte H no arduino. Neste projeto iremos utilizar o seguinte módulo da imagem abaixo:

As especificações técnicas desse módulo seguem descritas na tabela abaixo, ela nos permite estimar quais os requisitos dos dispositivos que nós podemos ligar neste módulo.

ParâmetroValor
Tensão máxima de alimentação50V
Tensão máxima de nível lógico7V
Corrente máxima de Operação2A
Potência Máxima25W
Temperatura de trabalho-25°C à 130°C

Para realizar as conexões com o arduino é importante entender sobre os pinos do módulo L298N, a imagem abaixo representa os pinos de conexão do módulo.

Simbologia da placa de motor de passo

Para entender melhor cada pino deste módulo, na tabela abaixo está descrito a função que cada um tem para o sistema:

PinoDescrição
OUT 1Saída da ponte H para motor 1
OUT 2Saída da ponte H para motor 1
OUT 3Saída da ponte H para motor 2
OUT 4Saída da ponte H para motor 2
IN 1Entrada de sinal da chave da ponte H para motor 1
IN 2Entrada de sinal da chave da ponte H para motor 1
IN 3Entrada de sinal da chave da ponte H para motor 2
IN 4Entrada de sinal da chave da ponte H para motor 2
EN AEntrada de sinal PWM do motor 1
EN BEntrada de sinal PWM do motor 2
12VEntrada da alimentação para o módulo e para motores
5VSaída de 5V para alimentação do arduino e sensores
GNDGround do sistema lógico

É importante ressaltar o funcionamento do PWM no controle dos motores CC, para entender melhor como utilizar este recurso no controle da velocidade, veja o artigo sobre PWM Arduino em nosso site, que descreve detalhadamente como funciona e como utilizar o PWM do arduino.

Projeto

Neste projeto faremos um simples controle de velocidade e direção de 2 motores utilizando o arduino, controlando as velocidades e a direção através 2 botões utilizando LEDs para indicar o funcionamento do sistema.

Lista de Materiais

2 – LEDs

2 – Resistores 330 Ohm

2 – Botões

2 – Resistores 10KOhm

1 – Protoboard

1 – Arduino UNO

1 – Módulo L298N

2 – Motores CC

Cabos para ligação

Montagem do Circuito

Para a realizar a montagem desse circuito podemos seguir o diagrama abaixo. A intenção e demonstrar como controlar os motores de forma efetiva.

Circuito montado na protoboard com o motor d epasso e arduino

Com o circuito montado podemos passar para a parte do código. Observamos que caso você não disponha de uma bateria, pode ser utilizado uma fonte externa para alimentar o circuito, sem sofrer nenhuma alteração neste diagrama.

Código

Insira este código em um novo projeto no Arduino IDE, compile e grave no dispositivo.

// Inclui biblioteca de funções matematicas
#include <math.h>

//Definindo os pinos para o motor A
#define IN1   7
#define IN2   5
#define VEL_A 6

//Definindo os pinos para o motor B
#define IN3   4
#define IN4   2
#define VEL_B 3

//Definindo os pinos para os botões 
#define BUTTON_1 11
#define BUTTON_2 10

//variavel auxiliar
int velocidade = 0;;


void setup(){
// Inicializa a serial do arduino
Serial.begin(9600);

// Inicializa os pinos do motor
pinMode(IN1,OUTPUT);
pinMode(IN2,OUTPUT);
pinMode(IN3,OUTPUT);
pinMode(IN4,OUTPUT);
pinMode(VEL_A,OUTPUT);
pinMode(VEL_B,OUTPUT);

// Inicializa os pinos dos botões
pinMode(BUTTON_1,INPUT);
pinMode(BUTTON_2,INPUT);
}


void loop(){

    // Verifica se o botão 1 foi pressionado
    if(digitalRead(BUTTON_1) == HIGH && velocidade < 250){
      // Incrementa a velocidade do motor
      velocidade += 10;
      // Espera 80 ms
      delay(80); 
    }
    
    // Verifica se o botão 2 foi pressionado
    if(digitalRead(BUTTON_2) == HIGH && velocidade > -250){
      // Decrementa a velocidade do motor
      velocidade -= 10;
      // Espera 80 ms
      delay(80); 
    }

    // Se a velocidade for positiva, o motor gira em um sentido
    if(velocidade > 0){
        digitalWrite(IN1,HIGH);
        digitalWrite(IN2,LOW);
        digitalWrite(IN3,HIGH);
        digitalWrite(IN4,LOW);
    }
    // Se a velocidade for zero, o motor para
    else if (velocidade == 0){
        digitalWrite(IN1,LOW);
        digitalWrite(IN2,LOW);
        digitalWrite(IN3,LOW);
        digitalWrite(IN4,LOW);   
    }
    // Se a velocidade for negativa, o motor gira em outro sentido
    else if (velocidade < 0){
        digitalWrite(IN1,LOW);
        digitalWrite(IN2,HIGH);
        digitalWrite(IN3,LOW);
        digitalWrite(IN4,HIGH);
    }
    // Gera saida no pino de controle de velocidade com PWM
    analogWrite(VEL_A,abs(velocidade));
    analogWrite(VEL_B,abs(velocidade));
    // Espera 80 ms
    delay(50);
}

Projetos exemplo utilizando a ponte h Arduino:

Agora que você testou os conceitos básicos de funcionamento deste módulo com os motores CC, é hora de passar para um projeto mais desafiador. Confira abaixo alguns projetos que incrementam o nível de desafio deste projeto.

Robô com reconhecimento de obstáculo de 2 motores   

Projeto de um carrinho sendo controlado pelo motor de passo

Para construir este robô que detecta obstáculos é necessário utilizar além dos componentes que vimos neste artigo o sensor de distância ultrassônico. Em nosso site temos um artigo ensinando a utilizar este sensor, clique no link acima para ver.

Robô seguidor de linha de 4 motores

Carrinho base azul controlado pelo Arduino

Outro projeto que envolve os motores CC e também o módulo L298N, é o robô seguidor de linha de 4 motores. O principio de funcionamento dos motores é o mesmo que vimos neste artigo, porém neste caso o robô utiliza 2 sensores de sinal infravermelho para detectar as bordas das linhas e seguir seu caminho. É um projeto de dificuldade maior que o anterior.

Robô Equilibrista de 2 motores  

Projeto de um carrinho bípede equilibrador controlado pela ponte H e Arduino

Para fecha esta lista de projetos, o robô equilibrista entra como o mais complexo, tanto por que exige o uso de acelerômetro e giroscópio para verificar seu posicionamento, quanto por exigir teorias de controle avançado para permitir que o sistema controle em tempo real os motores para equilibrar o robô na vertical, é um projeto muito desafiador que facilmente contempla temas de iniciação científica e TCCs.

Considerações Finais

Como vimos neste artigo, a aplicação do módulo L298N pode ser empregada nas mais diversas ideias de projetos envolvendo controle de motor CC. Conhecer o funcionamento deste item lhe permite alcançar um novo patamar na projeção e no desenvolvimento de suas ideias na eletrônica.

A partir de agora você tem o conhecimento para utilizar este modelo de ponte H Arduino para controlar diversos tipos de motores que tenham a construção semelhante ao que vimos neste artigo.

Espero ter ajudado você a entender melhor sobre motores CC e ponte H. Obrigado e até o próximo artigo!


Foto escritor

Flávio Babos

Flávio é especialista em tecnologia, empreendedor e estudante de Engenharia Mecatrônica pela Universidade Federal de Uberlândia (UFU). Já desenvolveu diversos projetos de elétrica, eletrônica e atualmente dedica seu tempo em escolher os melhores produtos de tecnologia para ajudar sua audiência no processo de decisão de compra na internet.


Deixar comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Comentário