Controle de motor DC com o L293D Ponte H

Para quem tem um circuito integrado L293D Ponte H e gostaria de entender um pouco mais sobre esse componente, hoje vou mostrar como usar o CI para controle de motor DC.

Chip L293D Ponte H

O L293D é um CI fácil de encontrar, barato e que possibilita o controle de 2 motores ao mesmo tempo, pois contém, internamente, dois circuitos denominados PONTE H.

O CI L293D Ponte H

Ponte H é um conceito bem simples, em que um motor é controlado por 4 chaves e uma fonte de alimentação:

Observando a figura abaixo, vemos que, acionando as chaves S1 e S4, o sentido da corrente será da esquerda para a direita, e o motor será acionado. Desligando S1 e S4 e ligando S2 e S3, o sentido da corrente é invertido, e consequentemente o motor passa a girar no sentido contrário.

Internamente, o L293D utiliza transistores e diodos para realizar este chaveamento. Podemos construir nossa própria ponte H utilizando esses componentes, mas sem dúvida o tamanho compacto do CI representa uma grande vantagem na montagem de circuitos de controle de motor.

Segundo o datasheet do L293D, o componente suporta correntes de saída de 600mA por canal, isso é, você pode ligar até 2 motores de 600mA cada. A voltagem suportada é de 4.5 à 36 volts. Isso nos permite controlar diversos tipos de motores respeitando-se, é claro, a corrente máxima suportada pelo chip. Por questões de segurança, recomenda-se utilizar motores com menos de 600 mA, apesar do CI suportar picos de 1.2A. Também é recomendado utilizar um dissipador de calor caso o CI comece a esquentar.

Para controle do CI, aplicamos uma tensão variável ao pino 1, que irá determinar a velocidade do motor, e aos pinos 2 e 7 (INPUT 1 e INPUT 2), alternamos os estados LOW (baixo) e HIGH (alto) para utilizar os conceitos de ponte H e determinar o sentido de rotação.

Na imagem acima temos a pinagem do L293D, e destacado em vermelho os pinos que utilizaremos para montagem do circuito deste post:

Conexão motor DC e L293D com Arduino

Como estou utilizando um motor de 5v, os pinos 8 (Vs) e 16 (Vss) estão ligados aos 5v do Arduino. Se você for utilizar uma fonte externa, conecte o positivo ao pino 8 (Vs), tomando o cuidado de verificar se o CI não está esquentando. Nesse caso, utilize algum tipo de dissipador de calor.

Optei por uma versão resumida do programa de controle, sem o uso de botões, chaves ou potenciômetros, para mostrar a utilização da porta 3 do Arduino para controle de velocidade (ligado ao pino 1 – ENABLE 1do CI),  e das portas 2 (INPUT 1  – pino 2 do CI), e 7 (INPUT 2  – pino 7 do CI) para controlar o sentido de rotação simplesmente alterando o nível ALTO e BAIXO (1 ou 0) das portas.

//Programa: Controle de motor CC com o L293D Ponte H  
//Autor: Arduino e Cia  
   
int PinoVelocidade = 3; //Ligado ao pino 1 do L293D  
int Entrada1 = 2; //Ligado ao pino 2 do L293D  
int Entrada2 = 7; //Ligado ao pino 7 do L293D  
   
void setup()  
{  
  //Define os pinos como saida  
  pinMode(PinoVelocidade, OUTPUT);  
  pinMode(Entrada1, OUTPUT);  
  pinMode(Entrada2, OUTPUT);  
}  
   
void loop()  
{  
  //Define a velocidade de rotacao  
  int velocidade = 500;  
  analogWrite(PinoVelocidade, velocidade);   

  //Aciona o motor  
  digitalWrite(Entrada1, LOW);  
  digitalWrite(Entrada2, HIGH);  
  delay(3000);  

  //Chama a rotina de parada do motor  
  para_motor();  

  //Aciona o motor no sentido inverso  
  digitalWrite(Entrada1, HIGH);  
  digitalWrite(Entrada2, LOW);  
  delay(3000);  
  para_motor();  
}  
    
void para_motor()  
{  
  digitalWrite(Entrada1, LOW);  
  digitalWrite(Entrada2, LOW);  
  delay(3000);  
}  

Pequenas alterações no circuito e no programa permitem que você utilize os mais variados tipos de chaves, sensores e dispositivos para controlar o seu motor CC.

Abaixo, vídeo mostrando o funcionamento do circuito e programa apresentados neste post:

Gostou? Confira outros posts sobre motores aqui mesmo no Arduino e Cia!

5/5 - (1 voto)

Related posts

Como ligar um motor brushless ao Arduino

by Arduino e Cia
9 anos ago

Como medir a rotação de um motor com o sensor de velocidade LM393

by Arduino e Cia
9 anos ago

Motor de passo 28BYJ-48 com arduino

by Arduino e Cia
11 anos ago
Sair da versão mobile