Controlando motor DC com o CI Ponte H L293D
Neste tutorial, você aprenderá a controlar motores DC utilizando o Circuito Integrado (CI) ponte H L293D. Aqui nós abordaremos a função dos CI’s, o uso de uma ponte H e finalizaremos com a utilização do CI ponte H L293D em conjunto com um Arduino UNO.
O que é um CI?
CI é uma abreviação para Circuito Integrado. Hoje em dia, podemos encontrar Os circuitos integrados em quase todos os equipamentos eletrônicos e é inegável que eles revolucionaram o mundo da eletrônica. Os circuitos integrados foram inventados Em meados do século XX, com o avanço da área da computação.Os CI’s vieram para reduzir o espaço que os componentes eletrônicos dos computadores ocupavam, incorporando miniaturas de diversos componentes: transistores, diodos, resistores e capacitores, em uma pequena lâmina de silício.
O que é uma ponte H?
Na robótica, para locomoção de robôs, os motores de corrente contínua ou motores DC (direct current), são muito utilizados. Esses motores demandam de uma corrente superior à que as portas do Arduino conseguem fornecer, portanto, se estes forem utilizados usado de forma incorreta, podem acabar danificando a porta em questão e até mesmo a placa como um todo.
As portas do Arduino podem fornecer uma corrente máxima de 40mA nas portas digitais.
O problema da alta corrente poderia facilmente ser resolvido com uso de transistores, porém, no momento em que quiséssemos realizar a inversão do motor teríamos um problema em função da quantidade de transistores requerida. Basicamente, a movimentação de um motor DC ocorre quando este é submetido a uma corrente contínua, no entanto, caso a polaridade da alimentação do mesmo seja alterada, este passará a se movimentar no sentido contrário. Dessa forma para cumprir este objetivo, nós utilizamos o circuito ponte H, que por sua vez, consiste em quatro transistores necessários para a realização da inversão da polaridade.
Usando uma Ponte H para controlar motores
A ponte H é uma configuração eletrônica que permite controlar a direção e a velocidade de motores DC. É chamada de “ponte” porque, visualmente, se assemelha a uma ponte em esquemas elétricos, e “H” devido à sua forma.
O que pode ser feito com uma Ponte H
Com uma ponte H, podemos controlar a direção de rotação de um motor DC simplesmente invertendo a polaridade de sua alimentação. Além disso, usando modulação por largura de pulso (PWM), podemos controlar a velocidade do motor.
Modelos mais conhecidos de Ponte H
Existem diversos CI’s populares que contêm uma ponte H, como o L298 e o L293. O L298 é capaz de controlar motores mais potentes em comparação ao L293D, mas ambos são amplamente usados em projetos de robótica e automação.
Como funciona a ponte H?
As pontes H consistem em um conjunto de quatro chaves que são acionadas de forma alternada. De acordo com a configuração entre as chaves, temos o motor se movimentando em um sentido, no sentido contrário, ou desligado.
Quando as quatro chaves estão abertas, o motor está desligado, como mostra o exemplo da esquerda. Quando o par S1-S3 estiver acionado, isto é, quando as chaves em questão estiverem fechadas, o motor girará em um sentido, como mostra o exemplo do centro. Em contrapartida, quando o par S2-S4 estiver acionado, o motor girará em sentido contrário, como mostra o exemplo da direita.
Circuito integrado Ponte H L293D
O CI L293D é utilizado com o propósito de possibilitar o controle de motores e a velocidade dos mesmos. As vantagens do uso desse CI são a baixa complexidade e a presença de dois circuitos ponte H, isto é, pode-se utilizá-lo no controle de dois motores simultaneamente. Na figura abaixo podemos ver a pinagem do CI.
Os pinos Enable são utilizados para habilitar as portas de saída e também podem ser utilizados para controle da velocidade do motor. O CI L293D pode suportar dois motores para controle simultâneo, neste caso, liga-se cada porta do motor em uma porta de saída do mesmo lado.
Diferenças entre o L293D e o L298
O L293D e o L298 são dois drivers de motor muito populares. O L293D é mais compacto e possui dois circuitos ponte H, enquanto o L298 é mais robusto e pode lidar com correntes mais altas. Uma vantagem do L293D é que ele possui diodos de proteção internos, enquanto no L298, eles precisam ser adicionados externamente.
Aplicações do L293D
O L293D é versátil e pode ser usado para controlar motores DC e motores de passo. Além disso, ele pode ser encontrado em shields e módulos, tornando sua implementação mais fácil e rápida. Usar um shield ou módulo facilita a conexão com plataformas como o Arduino e também oferece proteções adicionais ao circuito.
Shields e Módulos
Existem shields e módulos disponíveis no mercado que integram o L293D, facilitando a conexão com microcontroladores. Usar esses módulos simplifica o processo de montagem e oferece proteções adicionais, como diodos e capacitores. No entanto, em aplicações específicas, pode ser mais vantajoso criar seu próprio circuito.
Mãos à obra – Controlando motor DC – CI Ponte H L293D
Agora, vamos testar o CI L293D para fazermos a inversão dos motores A e B.
Componentes necessários
Para esse exemplo, utilizaremos:
Montando o projeto
Prossiga com a montagem para os dois motores conforme esquema abaixo. Em seguida, abordaremos a montagem do circuito para uso de um único motor.
Garanta que seu Arduino e a fonte externa estejam desligados durante a montagem.
Conectando o Arduino ao computador
Conecte seu Arduino ao computador e abra a IDE Arduino.
Primeiramente, selecionaremos qual placa e porta você deseja usar para fazer o upload do programa no Arduino. Dentro do Arduino IDE, clique no menu Ferramentas(tools) e abra o submenu Placa(Board) e selecione a placa que você usará no projeto.
Em seguida, no menu Ferramentas(Tools) e abra o submenu Porta(Port). Clique na porta que seu Arduino está conectado. Geralmente aparece o nome da placa Arduino: “COM3 (Arduino/Genuino Uno)”.
Programando
Crie um no programa (sketch) e salve com o nome de “controle_motores”.
Para controlarmos os motores é necessário o uso da biblioteca específica.
-Instalando a biblioteca
Para download da biblioteca, clique aqui >> Biblioteca L293D
Descompacte a pasta “Firmware”. Em seguida, basta mover a pasta para o local:
Windows: “Meus documentos\Arduino\libraries”
Mac: “Documents/Arduino/libraries”
Depois desse processo, a biblioteca estará disponível em “Sketch -> Incluir Biblioteca” na próxima vez que o IDE for aberto.
-Código exemplo
Com a biblioteca instalada e o programa salvo, escreva o seguinte código nela.
//Controlando motores DC com L293D #include "Arduino.h" #include "DCMDriverL293D.h" #define ENABLE_1 13 #define IN_1 12 #define IN_2 11 #define ENABLE_2 10 #define IN_3 9 #define IN_4 8 DCMDriverL293D Motor(ENABLE_1,IN_1,IN_2,ENABLE_2,IN_3,IN_4); void setup() { } void loop() { Motor.setMotorA(200,1);//gira um lado em um sentido delay(2000); Motor.setMotorA(200,0);//gira em sentido contrário delay(2000); Motor.stopMotors(); //para os motores delay(2000); Motor.setMotorB(200,1);//gira o outro lado em um sentido delay(2000); Motor.setMotorB(200,0);//gira em sentido contrário delay(2000); Motor.stopMotors(); delay(2000); }
Colocando pra funcionar
Se seu projeto está com tudo certo, teremos os motores realizando os movimentos:
- Motor A gira em um sentido por dois segundos,
- Motor A gira pelo sentido oposto por dois segundos,
- Motores param por dois segundos,
- Motor B gira em um sentido por dois segundos,
- Motor B gira pelo sentido oposto por dois segundos,
- Motores param por dois segundos.
Entendendo a fundo
Entendendo o Software
No software, começamos com a inclusão das bibliotecas necessárias.
#include "Arduino.h" #include "DCMDriverL293D.h"
Depois definimos os pinos que estão conectados ao CI.
#define ENABLE_1 13 #define IN_1 12 #define IN_2 11 #define ENABLE_2 10 #define IN_3 9 #define IN_4 8
Então definimos ao Arduino o uso dos motores por:
DCMDriverL293D Motor(ENABLE_1,IN_1,IN_2,ENABLE_2,IN_3,IN_4);
Movimentando os motores
Para fazermos os motores se movimentarem precisamos informar sua direção e sua velocidade:
Motor.setMotorA(200,1);//gira um lado em um sentido delay(2000);
Nesta movimentação dos motores, se alterarmos o primeiro parâmetro entre 0 e 255, alteraremos sua velocidade, e se alterarmos o segundo parâmetro entre 0 e 1, alteramos sua direção de giro. Para movimentar o outro motor é necessário apenas trocar setMotorA por setMotorB.
Considerações finais
Esperamos que se divirtam com seus motores e seus projetos de robótica. Deixe suas dúvidas, sugestões, ou até mesmo a foto do seu projeto nos comentários.
Mais detalhes em instalação de bibliotecas em DHT11 e DHT22 | Sensor de umidade e Temperatura com Arduino.
Entenda mais sobre protoboard’s em Como usar uma Protoboard?
1 Comment
Deixe uma pergunta, sugestão ou elogio! Estamos ansiosos para ter ouvir!Cancelar resposta
Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.
Bom dia. Parabéns pelo conteúdo. Já procurei muito um projeto assim com detalhes e não havia encontrado.