O que é uma Ponte H?
Na maioria das abordagens em robótica é necessário a utilização de motores DC em diversos tipos de locomoção de robots, 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 transístores, porém é importante que seja possível usando apenas um transístor já que para inverter o sentido de giro devemos inverter a polaridade da alimentação do motor (onde era positivo se pões negativo e vice versa). Um transístor só seria suficiente para ligar e desligar o motor.
Para resolver o problema utilizamos o famoso circuito conhecido como Ponte H que não é mais do que 4 transístores. Este circuito é uma elegante solução por ser capaz de acionar simultaneamente dois motores controlado não apenas seus sentidos, como também as suas velocidades. Além do seu uso ser simples no Arduino.
Mas como funciona a Ponte H? Porquê este nome?
As Pontes H possuem este nome devido ao formato que é montado o circuito, semelhantes a letra H. O circuito utiliza quatro 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 tanto por um sentido ou por outro.
Quando nenhum par de chaves esta acionado, o motor está desligado (a). Quando para S1-S3 é acionado à corrente que percorre S1-S3 fazendo com que o motor gire em um sentido (b). Já quando o par S2-S4 é acionado à corrente percorrendo outro caminho fazendo com que o motor gire no sentido contrário (C).
Circuito integrado L298N
O CI L298N é muito utilizado para o propósito do controlo de motores, é uma ponte H num componente integrado. Uma das vantagens do uso desse CI é o menor espaço ocupado, a baixa complexidade do circuito e o facto de ele já possuir dois circuitos H, podendo assim, controlar dois motores. Na figura a seguir pode conferir o diagrama de blocos do CI L2398N retirado da sua datasheet (datasheet L298N):
As funções dos principais pinos desse CI descritas na tabela a seguir:
Outra vantagem do L298N é a resposta a sinais de PWM. Se no lugar de usar sinais lógicos TTL for usado sinais de PWM, é possível regular a tensão de saída, e dessa forma regular a velocidade dos motores.
O PWM, Pulse Width Modulation (Modulação por Largura de Pulso), consiste basicamente em aplicar uma onda quadrada de amplitude Vcc e frequência alta no lugar da tensão continua Vcc. Leia mais sobre PWM no post Qual a diferença entre entradas Digitais, Analógicas e PWM
Ao usar um sinal de PWM nas entradas IN1 e IN2, por exemplo, teremos uma tensão de saída nos pinos OUT1 e OUT2 em PWM que será igual à Duty Cycle*Vcc. Dessa forma, podemos regular a diferença de potencial média aplicada nos motores, controlando as suas velocidades.
Existem outras opções de CI’s de ponte H no mercado, é importante consultar as especificações deles em suas folhas de dados (Datasheet) para saber qual será a melhor para o que pretende. Veja algumas opções de ponte H:
Módulos de Ponte H
Esses módulos são muito utilizados em aplicações de robótica. Esses módulos 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 robot ou em outros projetos e a sua utilização.
Existem varias opções disponíveis no mercado, com tamanhos e especificações diferentes. Algumas especificações são importantes ao escolher seu módulo:
- Especificação de potência máxima fornecida;
- Tensão máxima suportada;
- Corrente máxima suportada;
- Tensão lógica.
Um exemplo desses módulos é o oferecido em nossa loja, sua características são:
- Ci L298N;
- Tensão para os motores: 5 – 35V;
- Corrente máxima para os motores: 2A;
- Potencia máxima: 25W;
- Tensão lógica: 5V;
- Corrente lógica: 0-36mA;
- Dimensões: 43x43x27 mm
- Peso: 30g.
Módulo Ponte H com CI 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.
- 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 deve ser 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)
Para o motor B (IN3 e IN4), a tabela funciona da mesma forma.
Ponte H com Arduino – Exemplo de Código 1 – 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
Prossiga com a montagem conforme esquema abaixo(caso você use apenas um motor, basta desconsiderar o motor B:
Garanta que seu Arduino e a fonte externa estejam desligados durante a montagem.
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); //trava Motor digitalWrite(IN1,HIGH); digitalWrite(IN2,HIGH); delay(5000); //Sentido Anti-Horario digitalWrite(IN1,LOW); digitalWrite(IN2,HIGH); delay(5000); //travaMotor 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); //trava Motor digitalWrite(IN3,HIGH); digitalWrite(IN4,HIGH); delay(5000); //Sentido Anti-Horario digitalWrite(IN3,LOW); digitalWrite(IN4,HIGH); delay(5000); //trava Motor digitalWrite(IN3,HIGH); digitalWrite(IN4,HIGH); delay(5000); /*Fim dos Estados do motor B*/ }
Artigo gentilmente cedido por Vida de Silicio
Todos os produtos utilizados neste artigo podem ser encontrados na Loja de Eletrónica e Robótica – ElectroFun.
Gostaram deste artigo? Deixem o vosso comentário no formulário a baixo e partilhem com os vossos amigos.
Não se esqueçam de fazer like na nossa Página no Facebook.
Podem ainda colocar as vossas dúvidas no nosso Forum da Comunidade Arduino em Portugal ou no nosso Grupo no Facebook Arduino Portugal – Qual o teu projeto?