Vídeo: Tutorial Motor Shield L293D e Arduino 8

O sistema embarcado Arduino apresenta como principal componente o microcontrolador Atmega 328P. Segundo o datasheet do fabricante, este pode drenar cargas de saída de até 40mA, o que torna inviável o controle direto da maioria dos motores DC.

Por este motivo, torna-se necessária a utilização de driver para motores. Existem muitos Shields no mercado prontos para utilização com Arduino, um deles é o Motor Shield L293D, que permite o controle de até 4 motores DC de forma independente, além de possibilitar o controle de servo motores e motores de passo:

Hardware Motor Shield L293D

O hardware deste Shield consiste basicamente em dois circuitos integrados L293D (ponte H dupla com diodos de proteção internos) e um registrador de deslocamento da família TTL, o 74HC595. Na figura abaixo está explícito o diagrama esquemático do Shield. Você pode ter mais informações sobre o funcionamento da ponte H no post Controle Motor DC 12V com Arduino Motor Shield L293D.

Esquemático Motor Shield

De acordo com o byte configurado na saída do registrador, controla-se os motores DC. A ligação com Arduino é bastante simples, visto que o mesmo pode ser encaixado em cima do sistema embarcado. Vale salientar que o Shield ainda permite a alimentação externa exclusiva para os motores (aconselhável para evitar erros de lógica). Se utilizar fonte externa, desconecte o jumper PWR. Confira na Figura 3 a ligação utilizada para o projeto de hoje.

Circuito Motor Shield L293D

Programa controle de motor DC com Motor Shield L293D

Apoiando-se a uma biblioteca free source, pode-se facilmente controlar motores DC utilizando este Shield e o Arduino. No exemplo de hoje traremos o controle de um único motor, que pela análise do código pode ser expandido para o controle de mais motores facilmente.

O Box 1 traz o código proposto. O mesmo está ricamente comentado para maior compreensão.

Antes de compilar o Sketch, baixe a biblioteca AF Motor (disponível juntamente com os demais arquivos deste projeto), descompacte a pasta, cole na pasta Librares do Arduino, e reinicie a IDE.

Para baixar todos arquivos utilizados no projeto, acesse este link.

Posts Relacionados

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

8 Comentários

  1. Se pode utilizar juntamente com o shild motor, o display LCD também vendido por vocês ?

    Eladio Cesar Pinto
    1. Bom dia Eladio,

      Temos vários displays disponíveis em nossa loja. Dê uma olhada nesta categoria, por favor: https://www.filipeflop.com/display-ct-41d86

      Abraço!

      Adilson – Equipe FILIPEFLOP

  2. Boa tarde

    Recentemente adquiri um Motor Drive Shield L293d
    Você poderia me ajudar num questionamento?

    Vi as especificações dele e vi que poderia entrar com uma tensão de até 36v, e que cada CI entrega 0,6A. Coloquei um motor PM55L-048-HHD0 de 24v que tem como pico 0,6A também.
    Em voltagens baixas o motor ficou somente vibrando, mas assim que passou de 20v ele girou e 5 segundos depois os capacitores explodiram. Você poderia me ajudar a entender o que aconteceu?
    Lembrando que me certifiquei da polaridade da minha fonte.

    Você indicaria alguma outra Shield ou uma outra solução? Obrigado

    1. Wagner ou outra pessoa do blog poderia tirar a dúvida do cidadão? A dúvida dele pode ser a de muitos, inclusive a minha. Grato pela atenção

  3. Amigo, na foto do shield, a alimentação está na Sequência “M+ GND”. Seu desenho esquemático não estaria invertido ? O vermelho não deve entrar no M+ da placa?

  4. Oi, queria saber qual seria o código pra um desaceleração gradativa do motor

  5. Bom post, mas tenho umas dúvidas que não foram sanadas nele:
    Posso ligar dois motores com tensões diferentes (1 servo de 6v e 1dc de 12v) para uma mesma alimentação (bateria de 12v) externa com essa ponte h?
    Gostaria de aproveitar os pinos analógicos e os pinos 5v e gnd, no mesmo lado das portas analógicas. é possível?