pub1

quarta-feira, 22 de setembro de 2010

Arduino - Como controlar Motor DC

Este topico vai ser util para quem pretende controlar motores dc, muito utilizado por exemplo em robots visto permitir atraves do nosso Arduino movimentar os motores para frente ou para tras. Neste caso vou por enquanto mostrar o controlo de 1 só motor mas o L298 permite controlar 2 motores simultaneamente.

O L298 é um H-Bridge isto é Ponte-H permitindo inverter os polos de um motor fazendo-o girar em direcções opostas, suporta uma corrente até 2A, podem ver o Datasheet Aqui L298 .

Outra possibilidade seria o SN754410que também possibilita controlar motores da mesma forma, datasheet aqui.
Vamos agora ao que realmente importa as ligações entre o Arduino e o L298:



(Cliquem na imagem para a aumentar)


Codigo Arduino:

int pin2 = 2;
int pin3 = 3;

void setup (){

     pinMode(pin3,OUTPUT);
     pinMode(pin2,OUTPUT);
}

void loop(){
  {
     digitalWrite(pin2,HIGH);
     digitalWrite(pin3,LOW);
     delay(2000); 
     digitalWrite(pin3,HIGH);
     digitalWrite(pin2,LOW);
     delay(2000); 
   }

O L298 funciona da seguinte forma:
Input 1  = 1
Input 2  = 0
O motor gira numa direcção.

Quando invertemos:
Input 1  = 0
Input 2  = 1
O motor vai girar em sentido oposto.

Construí um código bastante simples apenas como função inverter os movimentos do motor.
Com esta função já nos vai dar umas ideias para os próximos projectos..

Espero que tenha sido útil.

3 comentários:

  1. olá amigo, queria saber se com este di posso controlar a velocidade do motor com o pwm? guilhermee_leon@hotmail.com

    ResponderEliminar
  2. Boa noite, gente boa!
    eu fiz essa ligação com L298 mas não deu certo.
    liguei o pino 11-9-6 do L298 e liguei no 5v da placa.
    está correto?dudukra@hotmail.com

    ResponderEliminar
  3. Amigo usei seu codigo com uma ponte H usando transistors tip31 e tip32, funcinou perfeitamente, obrigado pela colaboraçao....

    ResponderEliminar