O que é uma Ponte H?
Na maioria das abordagens em robótica faz-se
necessária a utilização de motores DC em diversos tipos de locomoção de robôs,
movimentação de braços mecânicos, etc. Os motores DC (direct current ou
corrente continua) são cargas indutivas que, em geral, demandam uma quantidade
de corrente superior à que as portas do Arduino conseguem fornecer.
Sendo assim, não devemos ligar estes motores
diretamente nas portas do Arduino pois se o motor demandar uma corrente acima
de 40mA nas portas digitais (máxima fornecida pelo Arduino) pode queimar a
porta e danificar a placa.
Para solucionar a questão da alta corrente
poderíamos usar transistores, porém é importante que seja possível controlar o
sentido de giro do motor, função que não se faz possível usando apenas um
transistor já que para inverter o sentido de giro devemos inverter a polaridade
da alimentação do motor (onde era positivo se põe negativo e vice-versa). Um
transistor só seria suficiente para ligar e desligar o motor.
Para resolver nosso problema utilizamos um famoso
circuito conhecido como Ponte H que nada mais é que um arranjo de 4
transistores. Este circuito é uma elegante solução por ser capaz de acionar
simultaneamente dois motores controlando não apenas seus sentidos, como também
suas velocidades. Além de seu uso ser simples no Arduino.
Mas como funciona a Ponte H? Porque este nome?
As pontes H em possuem este nome devido ao
formato que é montado o circuito, semelhante a letra H. O circuito utiliza
quarto chaves (S1, S2, S3 e S4) que são acionadas de forma alternada, ou seja,
(S1-S3) ou (S2-S4), veja as figuras abaixo. Dependendo da configuração entre as
chaves teremos a corrente percorrendo o motor hora por um sentido, hora por
outro.
Circuito Ponte H
Quando nenhum par de chaves está acionado, o
motor está desligado (a). Quando o par S1-S3 é acionado a corrente percorre
S1-S3 fazendo com que o motor gire em um sentido (b). Já quando o par S2-S4 é
acionado a corrente percorre por outro caminho fazendo com que o motor gire no
sentido contrário (c).
Modulo de Ponte H
Esses módulos são muito utilizados em
aplicações de robótica. Eles possuem dimensões pequenas e já possuem o circuito
básico para o uso do CI, o que facilita na acomodação do módulo no robô ou em
outros projetos e a sua utilização.
Existem várias opções disponíveis no mercado, com
tamanhos e especificações diferentes. Algumas especificações são importantes ao
escolher seu módulo, são elas:
- Especificação
de potência máxima fornecida;
- Tensão
máxima suportada;
- Corrente
máxima suportada;
- Tensão
lógica.
Módulo Ponte H com CL L298N
Agora que já sabemos como a Ponte H funciona,
vamos entender na prática como podemos usá-las em conjunto com o Arduino.
Para isso iremos usar o módulo com CI L298N.
Entradas e Saídas
Para começa vamos entender função de cada pino bem como deve ser utilizado.Entradas e saídas do módulo |
- Motor
A e Motor B: Conectores para os dois motores
- 6-35V:
Porta para alimentação da placa com tensão entre 6 a 35V.
- Ativa
5V: Quando jumpeado, a placa utilizará o regulador de
tensão integrado para fornecer 5v (na porta 5v) quando a porta 6-35V
estiver sendo alimentada por uma tensão entre 6 e 35V. Neste caso, não se
deve alimentar a porta 5V pois pode danificar os componentes. A tensão
fornecida na porta 5V pode ser usada para alimentar o Arduino, por
exemplo.
- 5v:
Em casos de não haver fonte de alimentação com mais de 6V podemos
alimentar a placa com 5V por esta porta.
- Ativa
MA: Quando jumpeado aciona o motor A com velocidade
máxima. Para controlar a velocidade do motor A basta remover o jumper e
alimentar o pino com uma tensão entre 0 e 5v, onde 0V é a velocidade
mínima (parado) e 5V a velocidade máxima.
- Ativa
MB: Quando jumpeado aciona o motor B com velocidade
máxima. Para controlar a velocidade do motor B basta remover o jumper e
alimentar o pino com uma tensão entre 0 e 5v, onde 0V é a velocidade
mínima (parado) e 5V a velocidade máxima.
- IN1
e IN2:são utilizados para controlar o sentido do motor A;
- IN3
e IN4: são utilizados para controlar o sentido do motor B;
Veja que agora, no lugar das chaves S1-S3 e S2-S4
temos os pinos IN1 e IN2. Onde IN1 corresponde às chaves S1-S3 e a IN2 às
chaves S3-S4.
Para controlar o sentido, temos as seguintes
combinações para o motor A(IN1 e IN2)
Tabela de combinações |
Para o motor B (IN3 e IN4), a tabela funciona da mesma forma.
Ponte H com Arduino – Exemplo de Código Básico
Vamos fazer um exemplo para testar na pratica a
ponte h. Neste primeiro exercício queremos testar o controle do sentido de giro
dos motores A e B através do Arduino.
Para este exemplo, utilizaremos:- Arduino
UNO
- Ponte H
- 2
Motores DC 12V (pode ser feito com apenas 1)
- Fonte
alimentação de 12V
Garanta que seu Arduino e a fonte externa estejam desligados durante a montagem.
Esquema de montagem do exemplo |
Agora vamos à implementação do programa. Dessa forma,
dentro da IDE Arduino: escreva o seguinte código e ao final clique em
Upload para que o programa seja transferido para seu Arduino.
/*Pinagem do arduino*/
//motor A
int IN1 = 2 ;
int IN2 = 3 ;
//motor B
int IN3 = 4 ;
int IN4 = 5 ;
//Inicializa Pinos
void setup(){
pinMode(IN1,OUTPUT);
pinMode(IN2,OUTPUT);
pinMode(IN3,OUTPUT);
pinMode(IN4,OUTPUT);
}
void loop(){
/*Inicio dos Estados do
motor A*/
//Sentido Horario
digitalWrite(IN1,HIGH);
digitalWrite(IN2,LOW);
delay(5000);
//Freia Motor
digitalWrite(IN1,HIGH);
digitalWrite(IN2,HIGH);
delay(5000);
//Sentido Anti-Horario
digitalWrite(IN1,LOW);
digitalWrite(IN2,HIGH);
delay(5000);
//Freia Motor
digitalWrite(IN1,HIGH);
digitalWrite(IN2,HIGH);
delay(5000);
/*Fim dos Estados do motor
A*/
/*Inicio dos Estados do
motor B*/
//Sentido Horario
digitalWrite(IN3,HIGH);
digitalWrite(IN4,LOW);
delay(5000);
//Freia Motor
digitalWrite(IN3,HIGH);
digitalWrite(IN4,HIGH);
delay(5000);
//Sentido Anti-Horario
digitalWrite(IN3,LOW);
digitalWrite(IN4,HIGH);
delay(5000);
//Freia Motor
digitalWrite(IN3,HIGH);
digitalWrite(IN4,HIGH);
delay(5000);</pre>
/*Fim dos Estados do
motor B*/
Nenhum comentário:
Postar um comentário