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:
const int L293_ENA2 = 8;
const int L293_INP3 = 9;
const int L293_INP4 = 10;

void setup()
{
  pinMode (L293_ENA2, OUTPUT);
  pinMode (L293_INP3, OUTPUT);
  pinMode (L293_INP4, OUTPUT);
  
  digitalWrite (L293_ENA2, LOW);
  digitalWrite (L293_INP3, LOW);
  digitalWrite (L293_INP4, LOW);
}

void loop () 
{
  delay (3000);
  digitalWrite (L293_ENA2, HIGH);
  delay (100);
  digitalWrite (L293_INP3, HIGH);
  delay (1000);
  digitalWrite (L293_INP3, LOW);
  delay (100);
  digitalWrite (L293_INP4, HIGH);
  delay (1000);
  digitalWrite (L293_INP4, LOW);
  digitalWrite (L293_ENA2, LOW);
}

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.