AULA CARRO 2WD 02 Arduino e Ponte H
M2 – Montagem base Kit 2WD usando ponte H L298N , 1 bateria 9V e Arduino
Robótica – Montagem 02
Como montar o kit chassi 2WD com driver ponte H L298N e 1 bateria 9V
Objetivo
O objetivo deste tutorial é mostrar passo a passo a montagem do chassi do robô Arduino móvel de duas rodas 2WD com o driver ponte “H” L298N e uma única bateria 9V. Essa montagem básica deixará pronto o seu robô móvel 2WD para a elaboração de projetos com Arduino que permitam esse formato.
Obs.: O kit 2WD possui dois motores DC (3 a 6V) com caixa de redução (1:48) e são conectados independentemente em cada roda, sobrando assim uma roda boba (universal) para dar sustentação ao chassi.
Referências
Antes de fazer a montagem do seu robô móvel 2WD usando o driver ponte H L298N, recomendamos que faça os seguintes projetos:
Aplicação
Para fins didáticos e projetos de robôs seguidores de linha, autônomos com sensores ultrassônico, movidos por controle remoto, smartphone, bluetooth, entre outros.
Componentes e ferramentas necessários
Referência |
Componente |
Quantidade |
Imagem |
Observação |
Kit chassi 2WD montado | Kit chassi 2WD para Arduino montado | 1 | Dimensões: – Chassi: 21,2 x 15,2cm – Roda: 7 x 7 x 2,6 cmMontagem:M1 – Montagem do kit chassi 2WD |
|
Arduino UNO | Arduino UNO R3 | 1 | ![]() |
Você poderá utilizar uma placa Arduino UNO original ou similar |
Driver Motor Ponte H L298N | Módulo Driver Motor Ponte H L298N | 1 | – Tensão de Operação: 4~35v – Tensão máxima de alimentação externa 7 – 35V – Chip: ST L298N (datasheet) – Controle de 2 motores DC ou 1 motor de passo – Corrente de Operação máxima:2A por canal ou 4A max – Tensão lógica: 5v – Corrente lógica por entrada: 0~36mA – Limites de Temperatura: -20 a +135°C – Potência Máxima: 25W |
|
Parafusos | Parafusos M3 | 2 | Rosca métrica 3mm
Comprimento: 12mm ou maior Fenda ou Fenda Philips |
|
Porcas | Porcas M3 | 2 | Rosca métrica 3mm | |
Amarrilho Aramado Revestido | Amarrilho Aramado Revestido 80mm | 2 | |
Comprimento: 8cm ou menor
Obs.: Fecho de arame revestido, muito utilizado para o lacre de pacotes de pão de forma. Usar de qualquer cor. |
Jumpers | Kit cabos ligação macho / macho | 1 | ||
Chave gangorra | Chave gangorra 3A
(2 terminais) |
1 | Usar chave gangorra (corrente máxima 3A ou maior)
Opcional: Se desejar, você poderá fazer a ligação direta do robô móvel sem a opção de uma chave liga e desliga. |
|
Chave Philips | Chave Philips M3 | 1 | |
Chave philips adequada para parafuso M3 |
Bateria 9V | Bateria 9V recarregável | 1 | Utilize bateria 9V de preferência recarregável. | |
Suporte para bateria 9V | Suporte para bateria 9V | 1 | Suporte para bateria 9V com plugue P4
Também poderá um case para suporte de bateria 9V (opcional) |
|
Cabo USB para Arduino | Cabo USB AB 30cm | 1 | Cabo USB para Arduino (min. 30cm) | |
Ferro de Solda | Ferro de Solda com Solda de Estanho 1mm | 1 | Utilizar solda de estanho de 1mm de diâmetro ou menor | |
Pistola de cola quente | Pistola de cola quente | Potência Máxima: 40W
Diâmetro do bastão de cola: 11 ~ 12mm |
Montagem do robô móvel 2WD base – L298N e 1 bateria 9V
1. Faça a montagem do chassi 2WD conforme tutorial: M1 – Montagem do kit chassi 2WD.
2. Com o chassi 2WD montado, vamos agora fixar a placa Arduino Uno. A fixação poderá ser com parafusos e porcas M3. Entretanto, se desejar, poderá fixar a placa Arduino com fita dupla face aplicada entre o acrílico e placa.
2.1. Fixação da placa Arduino no chassi 2WD usando 2 parafusos M3:
2.2. Os parafusos devem ser fixados e travados com a utilização de 2 porcas M3:
Atenção: Cuidado para não apertar muito os parafusos evitando-se trincas no acrílico do chassi.
3. Para controlar a velocidade e o sentido de rotação dos 2 motores do robô vamos usar o driver driver motor ponte H – L298N.
3.1. Posicione o módulo ponte H L298 sobre o chassi do robô e fixe-o usando 2 fechos aramados (amarrilhos usados para fechar pacote de pão). Obs.: Se desejar, você poderá utilizar outros elementos de fixação, como fita dupla face ou parafusos.
3.2. Veja abaixo como fica o posicionamento da ponte H L298N no suporte do chassi 2WD.
4. Agora que já posicionamos a ponte H L298N sobre o suporte do chassi 2WD, podemos conectá-la aos motores CC.
4.1. Veja abaixo um esquema macro para a conexão dos motores A e B.
4.2. Por padronização, vamos fazer a montagem mantendo-se o cabo vermelho e o preto do motor conectado conforme imagem abaixo:
Obs.: Caso ocorra alguma inversão na polaridade de ligação, não se preocupe, pois podemos corrigir a conexão com o teste final.
4.3. Da mesma maneira, faça a conexão da ponte H com o motor A, como mostra a imagem abaixo:
5. Conecte usando jumpers a ponte H L298N com o Arduino. Isso executara a comunicação e o controle de velocidade dos motores CC (corrente contínua) montados no chassi 2WD.
5.1. Veja na imagem abaixo deve ficar o esquema de montagem do nosso exemplo:
5.2. Entendendo a conexão dos motores A e B:
Obs.: Para entender como controlar de motores CC com Arduino e ponte H L298N leia o artigo: I07 – Como controlar motores DC com o Driver Ponte H – L298N e Arduino
5.2.1. Abaixo a tabela com as identificações dos pinos a serem conectados ao Arduino:
driver ponte H L298N | motor | microcontrolador Aruino |
IN1 | A | 8 |
IN2 | A | 7 |
IN3 | B | 5 |
IN4 | B | 4 |
5.2.2. Para fazer variar a velocidade dos eixos dos motores é necessário conectar os pinos ENA e ENB ao Arduino, conforme tabela abaixo:
Obs.: Se os jumpers Ativa MA e ativa MB do drive ponte H estiverem conectados, remova-os para você poder conectar os pinos abaixo:
Motor | Entrada drive L298N | Saída Arduino |
A | ENA | 3 |
B | ENB | 6 |
5.2.2.1. Veja a imagem abaixo a posição dos pinos de controle de velocidade:
5.3. Veja na foto abaixo como deverá ficar o nosso robô móvel após a conexão do Arduino com o driver motor ponte H – L298N:
6. Antes de fazer as conexões com o Vcc e o GND do driver motor ponte H – L298N, precisaremos preparar os cabos de ligação da chave gangorra (chave liga e desliga).
Obs.1: A utilização da chave liga e desliga é opcional. Se desejar, o robô móvel poderá ser desligado diretamente no plugue da fonte de energia do Arduino.
Obs2.: No projeto, a chave liga e desliga ativa ou desativa a ponte H que controla os motores. Portanto, mesmo desligada a chave, a placa Arduino permanecerá ligada.
6.1. Corte as extremidades de dois jumpers macho-macho, sendo o primeiro com 80mm (mínimo) e o segundo com 160mm (mínimo). Os dois cabos deverão estar desencapados em uma das pontas, como mostra a imagem abaixo:
6.2. Depois de preparados, solde os dois cabos nos terminais da chave gangorra (chave liga e desliga):
6.2.3. A posição dos cabos não tem muita importância, pois a chave 2 terminais apenas interrompem a passagem da corrente elétrica no circuito. De preferência, para facilitar a montagem do circuito, solde o cabo maior no terminal que fica na posição “0” e o cabo menor no terminal que fica na posição “1” da chave liga e desliga.
7. Após o botão liga e desliga ser soldado,vamos agora fazer a conexão dos cabos Vcc e GND do driver ponte H, conforme figura abaixo:
7.1. Posicione a chave gangorra (chave liga-desliga) na base do chassi do robô móvel e conecte o cabo maior no GND do Arduino e o cabo menor no GND do driver móvel Ponte H – L298N. Depois, fixe a chave liga-desliga na parte de baixo base do robô com cola quente. Isto ajudará também a isolar os terminais do componente.
7.2. Conecte agora o cabo Vcc no pino +12V da ponte H – L298N e no pino Vin do Arduino:
7.2.1. Observe que usamos o pino Vin do Arduino como fonte de energia para os motores. Isto é muito útil em protótipos de robótica, pois a mesma bateria poderá alimentar o Arduino e os motores de corrente contínua através do driver ponte H.
8. Finalmente, vamos conectar a bateria de 9V no nosso robô móvel. Para isso, utilizamos um suporte para bateria com um plugue tipo P4 (Jack).
Atenção: A tensão de alimentação feita através do conector Jack deverá estar entre os limites de 7 a 12V. Abaixo de 7V a tensão de funcionamento da placa Arduino poderá ficar instável e acima de 12V o regulador de tensão integrado da placa poderá sobreaquecer.
8.1. Fixe a bateria com fita dupla face ou cola quente na parte inferior do chassi do robô móvel.
8.2. O plugue P4 da fonte de energia deve ficar posicionado de forma que você poderá conectá-lo no Arduino posteriormente.
Testando o robô móvel – Chassi 2WD (1 bateria 9V)
Agora que já temos o nosso robô móvel montado, vamos fazer os testes de funcionamento. Para isso, vamos conectar a placa Arduino do robô no computador usando o cabo USB. A bateria 9V nesse momento poderá permanecer desconectada.
Teste 01 – Robô móvel rodando para frente
No primeiro teste vamos fazer o robô se mover para frente. O robô deverá se movimentar para frente, conforme a imagem anterior, parando 500ms a cada 2 segundos.
Usando o cabo USB, conecte o Arduino do robô móvel no computador para fazer o upload do scketch abaixo:
/*******************************************************************************
Teste 1 - Teste do robô móvel - andando para frente
Autor: Angelo Luis Ferreira
Data: 01/11/2022
http://squids.com.br/arduino
*******************************************************************************/
//motor A
const byte IN1 = 8 ;
const byte IN2 = 7 ;
//motor B
const byte IN3 = 5;
const byte IN4 = 4;
//pinos utilizados para controlar a velocidade de rotacao
const int ENA = 6;
const int ENB = 3;
void setup(){
// configuração dos pinos como saída do Arduino
pinMode(IN1,OUTPUT); // motor A
pinMode(IN2,OUTPUT); // motor A
pinMode(IN3,OUTPUT); // motor B
pinMode(IN4,OUTPUT); // motor B
pinMode(ENA,OUTPUT); // controle velocidade motor A
pinMode(ENB,OUTPUT); // controle velocidade motor B
// inicia com os motores desligados
digitalWrite(IN1,LOW);
digitalWrite(IN2,LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4,LOW);
// incia com velocidade 0
digitalWrite(ENA, LOW);
digitalWrite(ENB,LOW);
}
void loop() {
forward(); // ir para frente
delay(2000); // aguarde 500ms
stopCar(); // parar robô
delay(500); // aguarde 100 ms
}
// forward - robô anda para frente
void forward() {
// 1-0-1-0 - configura o mesmo sentido de rotaçao para os dois motores (frente)
digitalWrite(IN1,HIGH);
digitalWrite(IN2,LOW);
digitalWrite(IN3, HIGH);
digitalWrite(IN4,LOW);
// define velocidade do robô
analogWrite(ENA, 80);
analogWrite(ENB, 80);
}
// 0-0-0-0 - stopCar - parar robô
void stopCar() {
// motores desligados
digitalWrite(IN1,LOW);
digitalWrite(IN2,LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4,LOW);
}
Depois de subir o skecth no IDE, desconecte o cabo USB do Arduino do robô e do computador. Conecte o cabo da bateria (Plugue P4) no Arduino.
Para iniciar o teste, acione o botão (chave liga-desliga) para iniciar o movimento do robô. Veja o vídeo abaixo:
Observações:
1. Verifique se as duas rodas estão girando no mesmo sentido. O robô deverá estar se movimentando para frente.
1.1. Caso as rodas esteja girando em sentidos opostos ou o robô esteja se movendo para trás, inverta a polaridade na conexão dos motores com o drive ponte H.
1.2. Repita o teste novamente, onde o robô móvel deverá se movimentar para frente.
2. Em função da construção do chassi 2WD, montagem das rodas, balanceamento e da carga da bateria, é bem difícil fazer o robô móvel se movimentar perfeitamente em linha reta. Entretanto, isto não afetará nos projetos que podem ser aplicados a este robô com chassi 2WD. Porém, podemos melhorar um pouco este alinhamento, alterando no programa (sketch) o valor da velocidade de um dos motores, a fim de manter as rodas do robô girando na mesma velocidade real.
2.1. Se o carrinho tende a girar para a direita, significa que o motor B esta girando, de modo real, um pouco mais que o motor A. Portanto, podemos reduzir um pouco a velocidade (teórica) do motor B no programa. Isso deve ser feito de forma experimental até encontrar o melhor valor. Mesmo assim, dificilmente o robô móvel irá manter um alinhamento perfeito. Veja o exemplo abaixo:
2.2. O mesmo deve ser feito se o robô móvel tender para a esquerda. Desta forma, reduza o valor do motor A.
3. Com o robô móvel se movimentando para frente, podemos ir para o próximo teste a seguir.
Teste 02 – Robô móvel rodando para frente e para trás
Neste teste vamos fazer o robô móvel se movimentar para frente durante 2 segundos, para por 500ms e se movimenta para trás por 2 minutos, sucessivamente,
Da mesma forma que no primeiro teste, use o cabo USB para conectar o Arduino do robô móvel no computador para fazer o upload do scketch abaixo:
/*******************************************************************************
Teste 2 - Teste do robô móvel - rodando para frente e para trás
Autor: Angelo Luis Ferreira
Data: 05/11/2022
http://squids.com.br/arduino
*******************************************************************************/
//motor A
const byte IN1 = 8 ;
const byte IN2 = 7 ;
//motor B
const byte IN3 = 5;
const byte IN4 = 4;
//pinos utilizados para controlar a velocidade de rotacao
const int ENA = 6;
const int ENB = 3;
void setup(){
// configuração dos pinos como saída do Arduino
pinMode(IN1,OUTPUT); // motor A
pinMode(IN2,OUTPUT); // motor A
pinMode(IN3,OUTPUT); // motor B
pinMode(IN4,OUTPUT); // motor B
pinMode(ENA,OUTPUT); // controle velocidade motor A
pinMode(ENB,OUTPUT); // controle velocidade motor B
// inicia com os motores desligados
digitalWrite(IN1,LOW);
digitalWrite(IN2,LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4,LOW);
// incia com velocidade 0
digitalWrite(ENA, LOW);
digitalWrite(ENB,LOW);
}
void loop() {
forward(); // ir para frente
delay(2000); // aguarde 500ms
stopCar(); // parar robô
delay(100); // aguarde 100 ms
back(); // ir para trás
delay(2000); // aguarde 500ms
}
// forward - robô anda para frente
void forward() {
// 1-0-1-0 - configura o mesmo sentido de rotaçao para os dois motores (frente)
digitalWrite(IN1,HIGH);
digitalWrite(IN2,LOW);
digitalWrite(IN3, HIGH);
digitalWrite(IN4,LOW);
// velocidade do robô
analogWrite(ENA, 80);
analogWrite(ENB, 80);
}
// stopCar - parar robô
void stopCar() {
// 0-0-0-0 - motores desligados
digitalWrite(IN1,LOW);
digitalWrite(IN2,LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4,LOW);
}
// back - robô anda para trás
void back() {
// 0-1-0-1 - configura o mesmo sentido de rotaçao para os dois motores (para trás)
digitalWrite(IN1,LOW);
digitalWrite(IN2,HIGH);
digitalWrite(IN3, LOW);
digitalWrite(IN4,HIGH);
// velocidade do robô
analogWrite(ENA, 80);
analogWrite(ENB, 80);
}
Desconecte o cabo USB do Arduino do robô móvel e do computador. Conecte o cabo da bateria (Plugue P4) no Arduino.
IMAGENS