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:
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?
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âmetro | Valor |
Tensão máxima de alimentação | 50V |
Tensão máxima de nível lógico | 7V |
Corrente máxima de Operação | 2A |
Potência Máxima | 25W |
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.
Para entender melhor cada pino deste módulo, na tabela abaixo está descrito a função que cada um tem para o sistema:
Pino | Descrição |
OUT 1 | Saída da ponte H para motor 1 |
OUT 2 | Saída da ponte H para motor 1 |
OUT 3 | Saída da ponte H para motor 2 |
OUT 4 | Saída da ponte H para motor 2 |
IN 1 | Entrada de sinal da chave da ponte H para motor 1 |
IN 2 | Entrada de sinal da chave da ponte H para motor 1 |
IN 3 | Entrada de sinal da chave da ponte H para motor 2 |
IN 4 | Entrada de sinal da chave da ponte H para motor 2 |
EN A | Entrada de sinal PWM do motor 1 |
EN B | Entrada de sinal PWM do motor 2 |
12V | Entrada da alimentação para o módulo e para motores |
5V | Saída de 5V para alimentação do arduino e sensores |
GND | Ground 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.
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
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
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
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!