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.”