Skip to content

Motor Shield L293D para Arduino – Motores

Em primeiro lugar, vale ressaltar que o Motor Shield L293D para Arduino facilita muito o controle simultâneo de motores. Isso significa que, essa placa permite o controle de 4 Motores DC ou 2 motores de passo e 2 servo motores ao mesmo tempo. Mas como isso funciona? Vamos entender melhor em seguida.

Antes de tudo, confira o método ARDUHACK! Aprenda Arduino da melhor forma!

A placa possui como principais componentes: dois CI’s (circuitos integrados) L293D e um 74HC595 (registrador de deslocamento). O CI L293D funciona como uma ponte H, ou seja, um circuito composto por 4 chaves cuja função é inverter o giro do motor. Cada CI desses pode controlar 2 motores (possui duas pontes H), portanto, com a Motor Shield é possível controlar até 4 motores DC ou 2 motores de passo.

Fonte: Datasheet

Sendo assim, vamos ver na imagem abaixo como funciona uma Ponte H. Quando as chaves S1 e S4 estão fechadas, e as outras duas abertas, o motor girará em um sentido. Caso contrário, com as chaves S1 e S4 abertas, e S2 e S3 fechadas, o motor inverterá seu giro.

Conheça o Driver – Motor Shield L293D

Antes de continuarmos, é importante saber as especificações do Driver Motor Shield. Dessa forma, você deve alimentá-lo com uma fonte externa de 4,5 a 36V. Nesse caso, retire o jumper destacado na imagem abaixo. Esse jumper tem a função de selecionar o tipo de alimentação, se você usar somente a fonte do Arduino, deixe o jumper, caso utilize uma fonte de alimentação externa, retire o jumper.

Motor Shield L293D

Sendo assim, vamos ver como funciona o controle de rotação. Lembre-se que é possível controlar motores de até 36V. Para esse exemplo, vamos usar um motor DC 5V. Acompanhe o diagrama abaixo:

Motor Shield L293D

Além dessa shield, existem vários outras placas e sensores que podem ser usados com Arduino, como por exemplo, o leitor RFID.

Código – Motor Shield

Em seguida, vamos começar a programar. Baixe a biblioteca AFMotor para o controle da Shield, clique AQUI para baixá-la. Após isso descompacte a pasta, copie e cole em “libraries” do Arduino:

  • Documentos
  • Arduino
  • Libraries

Agora, já temos tudo que precisamos! Carregue o código abaixo para a placa do Arduino. Veja que é possível alterar o número de motores e ainda incluir dois servos. Como utilizaremos somente um motor, o código ficará assim:

//Modifique o código conforme o número de motores que você vai usar
//Salve a biblioteca AFMotor na pasta "libraries" do Arduino

//Inclui a biblioteca AFMotor
#include <AFMotor.h>

//AF_DCMotor motor1(1); // Motor conectado à M1
  AF_DCMotor motor2(2); // Motor conectado à M2
//AF_DCMotor motor3(3); // Motor conectado à M3
//AF_DCMotor motor4(4); // Motor conectado à M4
 
void setup()
{
  //Define a velocidade máxima para os motores 
  //motor1.setSpeed(255); 
    motor2.setSpeed(255); 
  //motor3.setSpeed(255); 
  //motor4.setSpeed(255);
}
 
void loop()
{
  //Aciona os motores no sentido horário
  //motor1.run(FORWARD); 
    motor2.run(FORWARD);
  //motor3.run(FORWARD); 
  //motor4.run(FORWARD); 
   
  delay(5000); // Aguarda 5 segundos

  //Desliga os Motores
  //motor1.run(RELEASE); 
    motor2.run(RELEASE);
  //motor3.run(RELEASE);
  //motor4.run(RELEASE);
   
  
  //Aciona os motores no sentido anti-horário
  //motor1.run(BACKWARD); 
    motor2.run(BACKWARD); 
  //motor3.run(BACKWARD); 
  //motor4.run(BACKWARD); 
  
  // Aguarda 3 segundos
  delay(3000);
  
 // Desliga os motores
 //motor1.run(RELEASE); 
   motor2.run(RELEASE);
 //motor3.run(RELEASE);
 //motor4.run(RELEASE);
}

Desta forma, algumas funções que podemos destacar são o “motor.seetSpeed(255)”, faz com que a o motor trabalhe em velocidade máxima. Para variar a velocidade, você pode alterar este valor de 0 até 255. Por outro lado, caso queira aumentar ou diminuir a velocidade gradativamente, é possível usa a estrutura “for”, da seguinte maneira:

for (i=0; i<255; i++)   {     //0 até velocidade máxima
motor.setSpeed(i);
delay(10);
}

for (i=255; i!=0; i--)   {    //Velocidade máxima até 0
motor.setSpeed(i);
delay(10);
}

Além disso, tem-se também os comandos BACKWARD e RELEASE, ou seja, “para frente” e “para trás”, invertendo o sentido de giro.

Por fim, agora que você já conhece o versátil Motor Shield L293d para Arduino, não deixe de conferir o treinamento completo de Arduino!

Veja mais em nossas redes sociais

Instagram: @lobodarobotica

Facebook: /lobodarobotica

YouTube: /lobodarobotica

plugins premium WordPress

Semana da Automação Com Arduino

Se Cadastre e Receba Acesso a 3 aulas gratuitas na Semana da Automação com Arduino