chip-l293d
Tutorial: Invertendo o sentindo do motor DC com L293D
Índice

Neste tutorial vamos te ensinar a programar e conectar o driver L293D com um motor DC 6V e inverter o sentido de rotação.

 

L293D

O CI L293D é um controlador que possui Ponte-H e pode controlar motores de corrente contínua (DC) de 4.5V até 36V. O L293D suporta uma corrente constante de 600mA e uma corrente de pico de 1.2A. Portanto, tome cuidado para não utilizar motores que exijam correntes maiores que 600mA. Também possuem diodos de proteção internamente. É possível ligar até dois motores (ou três, para isso consulte o datasheet).
E o que é Ponte-H? 
O L293D permite que façamos algumas coisas com os motores, como ligar mais de um motor, inverter o sentido da rotação ou alterar sua velocidade. Por enquanto vamos abordar somente a inversão da rotação/ sentido da corrente. E como isso acontece? Veja as figuras a seguir:
PONTE-H-1

Figura 1: Ponte H em sentido horário

 

PONTE-H-2

Figura 2: Ponte H em sentido anti-horário

 

Perceba que o desenho das chaves forma um H, por isso Ponte H. Temos 4 portas (dentro do L293D são os transistores) e observe como a rotação do motor se comporta na Figura 1: as portas fechadas em sentidos opostos (em U3 a superior está conectada e na U2, a parte de baixo) faz com que a corrente percorra em um sentido e faz o motor girar da esquerda para a direita, em sentido horário. Fechando seus opostos (em U3 a parte conectada é a inferior e na U2, a parte superior), fazemos o motor girar em sentido anti-horário, como na Figura 2. Dessa forma o driver altera o sentido de rotação do motor.

A conexão do Driver deve ser feita com cuidado já que cada pino corresponde a uma função específica. Veja a figura abaixo:

l293d

L 293D visto “por dentro”

 

Parece muita coisa logo de cara, mas não é. Perceba que em ambos os lados temos os mesmos pinos só que em ordens diferentes, por isso é possível conectar mais de um motor.

Vamos começar com os pinos do lado esquerdo, de cima para baixo. O pino ENABLE é responsável por ligar/ desligar o motor e com ele também podemos controlar a velocidade do mesmo por meio de frequências, mas por enquanto não vamos trabalhar com ele, ok? Os pinos seguintes não são novidade se você já tentou conectar e acender um Led no Arduino. Repare que temos dois pinos INPUT, dois OUTPUT, dois GND e um VCC de cada lado.

Pensando no exemplo de um Led e botão: o botão desempenha o papel de INPUT (entrada), pois ele envia um comando ao Led (acender ou apagar), enquanto que o Led faz o papel de OUTPUT (saída), ou seja, executa uma ação, no caso emitir luz ou apagar. Para o motor e o L293D faremos a mesma analogia: o L293D será a chave de comando, o INPUT, enquanto que o motor executará a ação, o OUTPUT.

No motor DC temos apenas dois pinos de saída, portanto podemos conectar dois motores no driver L293D – um de cada lado -, no entanto com o motor de passo temos quatro pinos para conexão, usando dessa forma, os 4 pinos de saída do driver.

Veja a diferença entre esses motores:

MOTORES

Diferença entre motores

 

Programa

Vejamos um programa bem simples com objetivo de entender como inverter o sentido da corrente.

Definimos duas variáveis inteiras para representarem nossos pinos de comunicação entre L293D e Arduino, int Sentido1 = 2; int Sentido2 = 7;

Em seguida, no bloco void Setup, dizemos ao programa que os pinos 2 e 7, ou Sentido1 e Sentido2, são nossos OUTPUTS: pinMode(Sentido1, OUTPUT); pinMode(Sentido2, OUTPUT); (Não confunda essa parte: o que declaramos como OUTPUT no programa trata-se dos pinos INPUT do L293D!)

int Sentido1 = 2; //Ligado ao pino 2 do L293D
int Sentido2 = 7; //Ligado ao pino 7 do L293D

void setup()
{
pinMode(Sentido1, OUTPUT);
pinMode(Sentido2, OUTPUT);
}

Resolvida essa primeira parte agora vamos ao void loop(). Para fazer com que o motor gire em determinado sentido precisamos ligar (digitalWrite(Sentido1, HIGH)😉 um dos pinos e desligar (digitalWrite(Sentido2, LOW);) o outro, acrescentando um tempo (delay(3000)) para ambos desligarem e girarem para o outro lado.

void loop()
{
digitalWrite(Sentido1, LOW);
digitalWrite(Sentido2, HIGH);
delay(3000);
desligar_motor();
digitalWrite(Sentido1, HIGH);
digitalWrite(Sentido2, LOW);
delay(3000);
desligar_motor();
}

Vamos descrever uma função específica para desligar os dois motores como desligar_motor();

Dentro da função só precisamos desligar (LOW) os dois pinos (digitalWrite(Sentido1, LOW); digitalWrite(Sentido2, LOW);)

void desligar_motor()
{
digitalWrite(Sentido1, LOW);
digitalWrite(Sentido2, LOW);
delay(3000);
}

Esse é o programa completo e comentado:

Partes

Você precisará dos seguintes itens:

  • L293D;
  • Motor DC 6V;
  • Arduino UNO;
  • Cabo USB;
  • Protoboard;
  • Cabos Jumper
protoboard-830-1

Protoboard

 

placa arduino uno

Arduino UNO

 

cabos-jumper-macho

Cabos Jumper

 

motor-dc-6v

Motor Dc 6V

 

chip-l293d

L293D

 

cabo usb

Cabo USB

 

Montagem

Vamos começar posicionando o L293D na Protoboard. Um dos ldois lados possue uma meia circunfenrência, que serve de referência – a partir dela leia os pinos descritos lá no começo:

l293d-solo

L293D

 

Vamos conectar com os cabos Jumpers os pinos do L293D e Protoboard, começando pela alimentação: quatro cabos pretos conectam os pinos GND do L293D aos pólos negativos da Protoboard e mais um para conectar os dois pólos negativos da mesma. Para o VCC (cabos vermelhos) temos o mesmo esquema, exceto por termos apenas dois cabos VCC conectando o L293D com a Protoboard:

 

l293d-gnd-vcc

Alimentando o L293D

 

Agora só precisamos conectar uma das extremidades da Protoboard com o Arduino:

l293d-arduino-alimentacao

Alimentando L293D

 

Logo após isso vamos conectar os dois pinos INPUTS do L293D com a placa Arduino. O INPUT 1 do L293D será conectado ao pino 2 (cabo laranja) do Arduino e o INPUT 2, ao pino 7 (cabo lilás):

l293d-inputs

Conectando pinos INPUTS

 

Por último, mas não menos importante, temos o motor DC. Vamos conectar cada fio com um pino OUTPUT do L293D, dessa forma:

motor-l293d

Conectando motor e L293D

 

A montagem completa fica assim:

projeto-pronto-l293d

 

 

Upload do programa

Lembre-se de conectar a placa de Arduino à entrada de USB do seu computador. Verifique se a placa e portas estão já estão configuradas no seu IDE.

Para efetuar o Upload clique na seta indicada em vermelho.

upload

 

Dicas

Caso o projeto não esteja funcionando teste primeiramente o código (compile e verifique se está certo). Caso esteja tudo certo, verifique as conexões do L293D com o motor e Arduino. Mude de pino, troque de cabo, etc.

Produtos
Promoção!
Arduino UnoArduino UnoOut Of Stock

Uno SMD – Arduino compatível

R$59,90 R$54,90

Ideal para iniciantes, o Uno é um Arduino compatível bem capaz, barato e com diversos shields e sensores compatíveis disponíveis. Se você está começando a aprender sobre microcontroladores e Arduinos, esta é a placa perfeita! Ela é a nossa placa principal nos nossos tutoriais de Arduino.

protoboard-830-2Out Of Stock

Protoboard transparente 830 pontos

R$24,90

Protoboard transparente com 830 pontos para prototipagem é ideal para trabalhos elétricos e eletrônicos com Arduino e microcontroladores em geral. É fácil tem muito espaço para conectar leds, cabos, resistores entre outros.

Os pólos negativos e positivos estão bem identificados para facilitar seu trabalho com vários componentes.

chip-l293d

Circuito Integrado L293D

R$8,90

Se você nunca mexeu com esse circuito integrado de controle tipo Ponte H, não sabe o que está perdendo!

Grande ferramenta para controlar motores de passo ou DC, ele serve para inverter o sentido de rotação das hélices, bem como desligar/ ligar e manipular a velocidade dos mesmos.

sua conexão deve ser feita de forma manual.

Veja nesse tutorial sobre motor DC 6V como inverter o sentido da corrente, mudando automaticamente, o sentido de rotação do motor.

dc6-1

Motor DC 6V

R$13,90

Se você planeja desenvolver um carrinho ou um projeto móvel/ articulado, você precisa desse motor! Movimente rodas, engrenagens e muito mais!

Deixe uma resposta

Seu endereço de e-mail não será publicado. Campos obrigatórios estão marcados *

limpar formulárioPostar Comentário