Olá makers, como andam os projetos?
Hoje iremos mostrar a introdução de uma parte fascinante e muito ampla da eletrônica, a robótica. Um dos principais itens para a robótica são os motores, vamos lá então aprender a utiliza-los.
Nesse post ensinaremos como controlar motores, sentido e velocidade, utilizando o circuito integrado L293D.
Antes de tudo, vale comentar que muitas pessoas acreditam que ligar um motor de corrente contínua ou motor DC é como liga um LED, basta ligar em alguma porta digital do arduino e inserir o outro fio no GND. Porém, essa atitude pode ser extremamente fatal para o arduino, pois diferentemente de um LED, um motor DC consome uma corrente bastante elevada, que os pinos do arduino não são capazes de suportar, conectar o motor diretamente em uma das portas pode acabar ocasionando a queima da mesma, por isso vamos evitar isso, ok?
Para controlar motores com o arduino são é utilizado um sistema similar ao de várias chaves ligadas nos terminais do motor, através dessas que passam a corrente alta e o arduino só atua abrindo e fechando essas chaves, esse sistema se chama Ponte H, olhe como ele funciona na imagem abaixo:
Agora que já sabemos o que é uma Ponte H vamos lá ao projeto.
- 1 x circuito integrado L293D
- 1 x arduino uno
- 1 x protoboard / matriz de contato
- 1 x fios jumper
- 1 x motor DC
- 1 x suporte para 4 baterias AA
Esquema de Montagem do Circuito:
Figura 03: Esquema de ligação
Fonte: Saulo Alexandre
Código Comentado:
//Programa: Controle de motor DC com L293D
//Autor: Saulo Alexandre
int PinoVelocidade = 3; //Pino que define a velocidade do motor e está ligado ao pino 1 do L293D e a Digital 3 do Arduino
int Entrada1 = 2; //Entrada do terminal do motor ligado ao pino 2 do L293D e a Digital 2 do Arduino
int Entrada2 = 7; //Entrada do terminal do motor ligado ao pino 7 do L293D e a Digital 7 do Arduino
void setup( )
{
//Iniciando o Serial do arduino
Serial.begin(9600);
Serial.println("Vamos la controlar o motor:");
Serial.println("Digite 1 para ir para frente");
Serial.println("Digite 2 para ir para tras");
Serial.println("Digite 0 para parar");
//Define os pinos como saida
pinMode(PinoVelocidade, OUTPUT);
pinMode(Entrada1, OUTPUT);
pinMode(Entrada2, OUTPUT);
}
void loop( )
{
//Define a velocidade de rotacao
int velocidade = 500;
analogWrite(PinoVelocidade, velocidade);
//Verificando se algum valor foi inserido no Serial
if(Serial.available() > 0) {
//Convertendo esse valor para Inteiro e atribuindo a variável val
val = Serial.parseInt();
//definindo o movimento do motor de acordo com o valor digitado
if (val == 1) {
digitalWrite(Entrada1, HIGH);
digitalWrite(Entrada2, LOW);
Serial.println("Girando para Frente");
} else if (val == 2) {
digitalWrite(Entrada1, LOW);
digitalWrite(Entrada2, HIGH);
Serial.println("Girando para Tras");
} else if (val == 0) {
digitalWrite(Entrada1, LOW);
digitalWrite(Entrada2, LOW);
Serial.println("Parado");
} else {
Serial.println("Opcao Invalida");
Serial.println("Digite 0, 1 ou 2");
}
//dando um intervalo para evitar mudança de estado brusca
delay (100);
}
}
Resultado :
Observações: Não utilizei o motor que descrevi no projeto, utilizei um carrinho de controle remoto modificado, isso tudo para vocês verem o que podemos fazer controlando um motor
Se o seu motor girou para trás quando você mandou ele girar para frente, não se preocupe, basta apenas inverter as conexões do motor com o circuito integrado.
Comentários adicionais:
Espero que tenham gostado desse tutorial ;D
Este é só um início para a robótica, então, achou fácil? Se achou, temos um desafio, queremos ver se você consegue fazer o arduino controlar dois motores ao mesmo tempo, isso tudo com a mesma ponte H, e ambos individualmente, ou seja, um pode estar rodando enquanto o outro está parado.
Comentem as suas dúvidas, sugestões e críticas nos comentários, será um prazer para nós falar com você!
Estudante de Ciência da Computação pela Universidade Federal de Pernambuco, técnico em eletrônica pelo Instituto Federal de Ciência e Tecnologia de Pernambuco e apaixonado desde criança por eletrônica programação e uma boa música. Adoro projetos de cunho social e que da alguma forma possam ajudar alguém, e sou adepto de que “A melhor maneira de prever o futuro é inventá-lo.”
