Motor Shield L293D – Driver Ponte H no Controle de Motores

O Motor Shield Arduino L293D é um produto bastante utilizado nos mais diversificados projetos uma vez que possibilita o controle de até quatro Motores DC ou dois Motores de...

O Motor Shield Arduino L293D é um produto bastante utilizado nos mais diversificados projetos uma vez que possibilita o controle de até quatro Motores DC ou dois Motores de Passo simultaneamente e possuir saída para controle de até dois Servos Motores com funcionamento também simultâneo.

Motor Shield Arduino L293D – Driver Ponte H para Projetos

Motor Shield Arduino L293D – Driver Ponte H para Projetos

Além de possuir uma capacidade bastante elevada de funcionamento, o shield também necessita de uma alimentação maior que a cedida pelo próprio Arduino para seu funcionamento, tendo isto em vista o Motor Shield L293D possui pinos para alimentação externa que facilitam a instalação e funcionamento de motores.

Por ser desenvolvido no formato de Shield, o Driver Ponte H em questão possui um encaixe perfeito com o Arduino e elimina a necessidade de Jumpers comumente utilizados nos diversificados Módulos, seu contato direto elimina problemas de mau contato e garante maior qualidade na comunicação entre Shield e Arduino.

 

L293D – Drive Ponte H

O Circuito Integrado L293D é um CI fácil de se encontrar e que possui grande eficiência quando o assunto é o controle de motores, através de seus dois circuitos denominados Ponte H, este possibilita o controle de dois motores simultaneamente através de um sinal externo gerado por um microcontrolador como o Arduino.

Fundamentalmente, a Ponte H é constituída de quatro chaves de contato e uma fonte de alimentação, cada uma destas consegue controlar um Motor DC e seu sentido de rotação, veja abaixo um esquema de funcionamento deste procedimento:

Esquema de Funcionamento da Ponte H

Esquema de Funcionamento da Ponte H

Tomando a imagem acima como base, podemos determinar através dela o sentido de giro de um Motor DC através do acionamento de suas chaves, por exemplo, ao acionarmos as chaves C1 e C4 a corrente irá fluir em um sentido e ao acionarmos as chaves C2 e C4 este sentido de giro será invertido, de maneira ilustrativa, observamos abaixo estes dois procedimentos:

Funcionamento do sentido de inversão da corrente na Ponte H

Funcionamento do sentido de inversão da corrente na Ponte H

Por se tratar de um CI, existem bastantes mistificações quanto a sua utilização, porém esta é bastante simplificada, a conexão dos motores e pinos de comunicação do microcontrolador normalmente são desenvolvidas através de uma protoboard, porém vale observar sempre a alimentação que envolve o funcionamento deste circuito.

Ao observarmos o datasheet do L293D encontramos diversas informações relevantes quanto ao seu funcionamento, dentre elas os seus limites de alimentação, a corrente de saída suportada pelo circuito, por exemplo, é de 600mA por canal com correntes de pico de até 1,2A enquanto que a tensão suportada pelo mesmo é de 4,5 à 36V aproximadamente.

Outra informação bastante importante que encontramos no datasheet diz respeito aos pinos do circuito integrada e as suas devidas funções, através da imagem abaixo podemos verificar os pinos de sinal e alimentação, vale lembrar que ao desenvolver um projeto, todos os pinos de alimentação devem estar devidamente conectados.

Esquema de Ligação do Circuito Integrado L293D

Esquema de Ligação do Circuito Integrado L293D

Além dos pinos de alimentação, temos os pinos Enable 1 e 2 que fornecem a velocidade dos motores e estão associados ao Arduino, os pinos Output 1, 2, 3 e 4 utilizados para a conexão dos motores e os pinos Input 1, 2, 3 e 4 utilizados para realizar o controle do sentido de rotação dos motores através de um microcontrolador como o Arduino.

 

Motor Shield Arduino L293D

Através de um componente como o L293D consegue-se controlar até dois motores DC, porém como o Motor Shield Arduino possui dois destes circuitos, o mesmo expande a sua capacidade de funcionamento e consegue controlar até quatro motores DC simultaneamente.

Circuitos Integrados que Constituem o Motor Shield Arduino

Na imagem acima, pode-se observar que além de dois L293D, o Motor Shield constitui-se também de um CI 74HC595, um registrador de deslocamento que possibilita uma saída paralela de 8 bits através de uma entrada digital, entrada esta que constituísse de três pinos, clock, latch e data.

A alimentação do Motor Shield Arduino obedece os limites de tensão estabelecidos pelo Driver L293D e por mais que seja um shield com contato direto no Arduino, a alimentação do Arduino normalmente não é suficiente para o funcionamento dos motores, por isto é necessária uma alimentação externa.

Através do esquema exibido abaixo, podemos observar o borne para para alimentação externa e como dito, este possui limite de alimentação de 4,5 a 36V, ao lado tem-se o jumper de seleção para fonte de alimentação, quando este tiver no local indicado a alimentação utilizada para os motores é o do próprio Arduino, porém ao inserirmos uma fonte externa é fundamental a retirada deste jumper.

Sistema de alimentação externa e principais componentes

Sistema de alimentação externa e principais componentes

O Motor Shield Arduino também é constituído de um LED Power de indicação que aponta a funcionalidade do Shield, um botão reset interligado diretamente com o botão reset do Arduino e uma barra de resistores Pull Down que mantem os motores desligados durante a sua inicialização.

Quanto a conexão dos motores, por trabalharmos com um shield que comumente utiliza sua biblioteca para projetos, esta exige a conexão dos motores em locais específicos, cada local corresponde a uma posição, os Motores DC M1, M2, M3 e M4, o motor de passo 1 utilizando os bornes de M1 e M2, o motor de passo 2 os bornes de M3 e M4 e os servos motores, seus locais específicos que possibilitam a conexão direta de seus fios, veja abaixo um esquema com estas posições:

Esquema com os locais de fixação para os motores DC, de passo e Servo Motores

Esquema com os locais de fixação para os motores DC, de passo e Servo Motores

O Motor Shield Arduino L293D é um dispositivo que vai diretamente conectado ao Arduino e possibilita a utilização direta de seus pinos, desta maneira cada modelo possui uma capacidade diferenciada para a inclusão de elementos externos. De uma forma resumida, os pinos utilizados estão associados da seguinte maneira:

– Controle dos Motores DC e Motores de Passo: D3, D4, D5, D6, D7, D8, D11 e D12.

– Controle dos Servos Motores: D9 e D10.

Ao utilizar todos estes pinos mencionados acima para o controle dos motores, o Arduino UNO disponibiliza apenas os pinos D2 e D13 (Digital 2 e Digital 13) para inclusão de sensores e elementos de comunicação digital, quanto aos pinos analógicos, estes ficam disponíveis do A0 ao A5 e podem ser utilizados para incluir diversos equipamentos de comunicaçãoI2C, inclusive displays, por exemplo.

 

Produtos Utilizados no Teste

Arduino Uno R3 + Cabo USB;

Motor Shield Arduino L293D Driver Ponte H;

Motor DC 3-6V com Caixa de Redução e Eixo Duplo;

Motor de Passo 12V 1,5Kgf.cm 39HBD26DJ4;

Servo Motor MG995 Tower Pro 180° 11kgf/cm;

Fonte de Alimentação Chaveada 5VDC 1A;

Fonte de Alimentação Chaveada 12VDC 1A.

 

Esquema de Ligação Motor Shield com Motor DC

Com a capacidade de utilizar até 4 motores DC, o Motor Shield L293D possui a capacidade de controle individual para cada um destes dispositivos, porém também possibilita a utilização controlada de cada um dos seus Bornes de Instalação, ou seja, podemos controlar apenas um ou dois motores sem problema algum.

Motor Shield L293D com 4 Motores DC

Motor Shield L293D com 4 Motores DC

Acima vemos o esquema de ligação possível utilizando-se os 4 motores DC conectados ao Motor Shield Arduino, porém vale ressaltar que nestes casos a corrente máxima por porta deve ser de 600mA, utilizarmos as quatro portas teremos um total de 2,4A e a fonte de alimentação utilizada através dos Bornes deve suprir esta necessidade para o total desempenho dos motores.

Para o nosso teste, vamos utilizar apenas um motor sendo controlado pelo shield, para isto, vamos utilizar uma fonte externa de 5V 1A e o Motor DC na posição M4, veja no esquema de ligação abaixo:

Esquema de Ligação para Controle de Motor DC

Esquema de Ligação para Controle de Motor DC

Para realizar o controle de outros motores basta instalá-los em um dos outros bornes, vale lembrar que os motores não possuem uma polaridade específica e por isto não possuem uma pinagem correta para instalação, porém dependendo do modo de instalação o sentido de direção poderá ser diferenciado.

 

Código de Funcionamento Motor Shield com Motor DC

O código de funcionamento, através da utilização da biblioteca específica torna-se bastante simples e dinâmico, uma vez que possibilite atalhos de comandos e dispensa uma configuração direta de pinos já que estes contam internamente na biblioteca.

Biblioteca AFMotor: DOWNLOAD AQUI.

O código está totalmente comentado e não possui grandes segredos, para realizar a alteração do local de instalação do Motor, deve-se alterar a função abaixo de acordo com o apresentado:

Com este código base consegue-se realizar a maioria dos procedimentos possíveis no controle de Motores DC através do Motor Shield, seus comandos são simples e de fácil adaptação, porém vale lembrar que para incluir mais um motor, fundamentalmente todos estes comandos devem ser duplicados de acordo com o projeto.

 

Esquema de Ligação Shield L293D com Motor de Passo

Além de possuir a capacidade de controlar até quatro motores DC, o Motor Shield também consegue controla até dois Motores de Passo com correntes de funcionamento de até 600mA, porém vale ressaltar que o motor de passo utiliza o local de dois motores DC para o seu funcionamento, veja na imagem abaixo a posição de instalação para cada um dos motores de passo 39HBD26DJ4:

Motor Shield Arduino no Controle de dois Motores de Passo

Motor Shield Arduino no Controle de dois Motores de Passo

Para este projeto, já que o Motor de Passo possui uma tensão de funcionamento de 12V, é necessário incluirmos uma fonte de alimentação de 12V 1A, corrente necessária para o controle de até dois destes Motores de Passo 12V 39HBD26DJ4 que possuem uma corrente máxima de funcionamento de 480mA.

Tendo em vista a diversidade dos motores de passo e a suas diferentes especificações, muitas vezes o que dificulta a sua utilização diz respeito a identificação dos fios correspondentes às bobinas, se você também possui esta dúvida, assista o vídeo abaixo de nosso parceiro e verifique como desenvolver tal verificação:

Após termos realizado o teste e identificado os pinos, conectamos o motor aos terminais M3 e M4 do Shield para realizarmos o controle de sua direção e velocidade, o diagrama correspondente ao código disponibilizado logo abaixo e utiliza o Motor de Passo 39HBD26DJ4 como base:

Projeto Controle de Motor de Passo via Motor Shield L293D

Projeto Controle de Motor de Passo via Motor Shield L293D

Vale ressaltar aqui, que alguns modelos como este são comercializados com barramentos de 5 ou 6 fios, porém ao realizarmos a medição com um multímetro verificamos que apenas 4 destes são realmente conectados à bobinas, onde um par de bobinas iria conectado no M3 e outro no M4, por exemplo.

 

Código de Funcionamento Shield L293D com Motor de Passo

A grande maioria dos códigos de funcionamento do Motor Shield L293D possuem suas funções atribuídas à Biblioteca AFMotor uma vez que esta possibilita funções práticas e diretas para a utilização de motores, é o caso do código abaixo o qual nos possibilita em poucas linhas realizar o teste de funcionamento de um Motor DC.

Biblioteca AFMotor: DOWNLOAD AQUI.

Neste código, algumas das variáveis possuem algumas funções mais complexas e que geram algumas dúvidas, na tradução literal FORWARD significa “para frente” e BACKFORWARD “para trás”, porém estes podem variar de acordo com a instalação das bobinas e o método de conexão dos fios.

Na linha acima temos a função responsável por realizar um dos procedimentos de movimentação do motor, o valor 648 define quantas etapas o motor irá executar, FORWARD define a direção deste movimento e por fim o tipo de movimento, por exemplo:

– SINGLE: As bobinas são energizadas de maneira individual e possuem um torque razoável.

– MICROSTEP: As bobinas adjacentes sofrem um movimento o qual cria um número de “micro etapas”, isso resulta em uma resolução mais fina e suave, porém faz com que o motor perda parte do seu torque.

 

Esquema de Ligação Motor Shield com Servo Motor

Dentre os objetos de controle do Motor Shield, o Servo Motor a depender da sua utilização e modelo é o único que exerce suas funções básicas sem problema e apenas com a alimentação do próprio Arduino, porém ao utilizamos Servos Motores metálicos como os selecionados para este projeto, é recomendada a inclusão de uma fonte externa, podendo ser a mesma 5V 1A utilizada para o controle dos motores DC.

Assim como na utilização do Motor de Passo, o Shield L293D controla também duas unidades do Servo Motor, porém estes possuem um local específico de instalação que possibilita a conexão direta de seus cabos em uma barra de pinos especial. Abaixo vemos o esquema de ligação para controle de um Servo Motor:

Esquema de ligação Projeto Motor Shield Controle de Servo Motor

Esquema de ligação Projeto Motor Shield Controle de Servo Motor

Como vemos, o primeiro pino da esquerda pela direita é o pino GND e após temos o pino de alimentação e o pino de comunicação, seguindo sempre o mesmo padrão dos servos motores comercializados.

 

Código de Funcionamento com Servo Motor

O pino de sinal do Servo Motor é conectado diretamente no pino PWM do Arduino, ou seja, diferente do Motor DC e do Motor de Passo, este não passa pelo 74HC595 e não necessita da biblioteca AFMotor, apenas a biblioteca Servo que já vem instalada junto do Arduino.

O controle de Servo Motor pode ser executado utilizando códigos padrões como o que já desenvolvemos anteriormente em nosso seguinte artigo e que novamente utilizaremos para demonstrar o funcionamento do nosso Motor Shield L293D:

https://www.usinainfo.com.br/blog/controle-de-posicao-servo-motor-com-arduino/

Com todas as funções já comentadas, este código demonstra algumas funções padrões do software Arduino quando trabalhamos com o Servo, o que facilita ainda mais a sua utilização é a sequencia de pinos específico necessários para o funcionamento do mesmo.

 

CONCLUSÃO

O funcionamento do Motor Shield Arduino é baseado quase que exclusivamente na biblioteca AFMotor.h, porém vale ressaltar que os projetos podem ser executados sem esta, porém é necessário um conhecimento mais aprofundado de programação para este procedimento.

A linha de projetos possíveis de se desenvolver com este Shield é extremamente grande, o mesmo pode ser atribuído a projetos de carros tanto 2WD quanto 4WD, pode ser atribuído a projetos com necessidade de precisão de movimento através de motores de passo e até mesmo os mais diversificados projetos com Servo Motor 180 ou 360º.

Se você já usou este Shield, tem algum uma experiência com ele e deseja compartilhar com os demais, não esqueça de deixar o seu comentário logo abaixo, além da utilização de cada um dos tipos de motores, é possível intercalar o seu funcionamento, sendo ideal para o desenvolvimento de um Carro Robô 4WD com Micro Servo Motor e Eixo Móvel.

Categorias
Arduino

Mecânico de Manutenção com Experiência em Sistemas Embarcados, Automação e Desenvolvimento de Projetos; Graduado nos Cursos de Matemática - URI e Física - UFFS.
Sem Comentários

Deixe seu Comentário

*

*

Sobre nós

Hoje a Usinainfo é um dos maiores ecommerces de Ferramentas, Peças para Eletrônica, Componentes Eletrônicos, Sensores e Arduino do Brasil, contando com uma grande diversidade de produtos na linha de eletrônica.

Sugestões

Artigos Relacionados