terça-feira, outubro 02, 2012

Motores DC: Arduino Controlando um Motor usando um L293D

Veremos neste post um exemplo de controle de motor com o Arduino, usando o integrado L293D que vimos no post anterior da série.




Para montar este exemplo, usei uma ProtoShield. Para quem não conhece, é uma shield com uma pequena protoboard colada:

Coloquei o L283 na protoboard e fiz as ligações abaixo:




Para um primeiro teste preferi usar um LED bicolor, ligado a um resistor de 390R, ao invés de um motor. O LED irá acender verde ou vermelho conforme a polaridade das saídas da ponte H. O programa de teste é bem simples:
  1. const int L293_ENA2 = 8;  
  2. const int L293_INP3 = 9;  
  3. const int L293_INP4 = 10;  
  4.   
  5. void setup()  
  6. {  
  7.   pinMode (L293_ENA2, OUTPUT);  
  8.   pinMode (L293_INP3, OUTPUT);  
  9.   pinMode (L293_INP4, OUTPUT);  
  10.     
  11.   digitalWrite (L293_ENA2, LOW);  
  12.   digitalWrite (L293_INP3, LOW);  
  13.   digitalWrite (L293_INP4, LOW);  
  14. }  
  15.   
  16. void loop ()   
  17. {  
  18.   delay (3000);  
  19.   digitalWrite (L293_ENA2, HIGH);  
  20.   delay (100);  
  21.   digitalWrite (L293_INP3, HIGH);  
  22.   delay (1000);  
  23.   digitalWrite (L293_INP3, LOW);  
  24.   delay (100);  
  25.   digitalWrite (L293_INP4, HIGH);  
  26.   delay (1000);  
  27.   digitalWrite (L293_INP4, LOW);  
  28.   digitalWrite (L293_ENA2, LOW);  
  29. }  

O vídeo abaixo mostra o resultado deste primeiro teste.


Agora que já estou seguro que não tem nada de muito errado, é só trocar o LED por um motor DC de 5V, que não puxe muita corrente (pois estou usando a alimentação do cabo USB que está ligado no micro). O vídeo abaixo mostra o resultado:




4 comentários:

Anônimo disse...

Muito bom Daniel... eu fiz um projetinho onde eu controlo a velocidade do motor 12v com PWM e a ponte H(PWM em 5v gera na saída 12v)...posso fazer isso usando o transistor FET?

Daniel Quadros disse...

Se a corrente for até 600mA, você pode controlar os 12V diretamente com o L293: ligue os 12V ao pino VS (8) e os 5V ao pino VSS (16).

hugoelmago disse...

sim eu fiz isso mas liguei o VSS e VS a 12V...eu queria controlar motores DC mais potentes com o PWM do Arduíno deixando o FET fazer a parte de potência da questão.é possível?você tem algum tutorial desse tipo?

Daniel Quadros disse...

Sim, é possível fazer uma ponte H com MOSFET. Não coloquei nenhum tutorial aqui, mas tem uma descrição muito boa no livre "Intermediate Robot Building" de David Cook.