Motor DC.

article featured image

Nesta aula vamos aprender o que é um motor DC (Direct Current) e como podemos controlá-lo através de um Arduíno no sentido de rotação e de velocidade.

Antes de começarmos faço a ressalva para algo muito importante:

  • Nunca ligue o motor diretamente ao Arduíno. Porquê? O Arduíno, mais especificamente o microcontrolador integrado, controla os sinais. A eficiência de cada saída é relativamente pequena (cerca de 20mA). É fácil supor que, 99,999% dos motores que encontrar, vão precisar de muito mais corrente. Posto isto, ao ligar um motor ao Arduíno corre o risco de danificar irreversivelmente a placa.

 

A utilização de motores DC abre a janela muitas possibilidades de construção de projetos. A exemplo disso podemos criar veículos controlados por uma app instalado no nosso telemóvel, um robot que limpe a casa, entre muitos outros exemplos que podiam ser dados.

Estes convertem energia elétrica direta em energia mecânica. Nesta aula, iremos falar de motores normalmente utilizados em projetos de robótica, motores que consomem em média menos de 1A, quando alimentados por 5-9V.

Para o desenvolvimento desta aula vamos precisar do seguinte material: Arduíno, Breadboard, L293D, Resistência de 1K, Condensador_Ceramico 10-220uF, Condensador_Eletrolitico 10-220uF, Motor DC, Jumpers.

Como podemos ver pela lista de materiais dada, vão ser necessários vários componentes intermédios entre o Arduíno e o motor DC. Estes são frequentemente denominados por Pontes H. Estes drivers podem ser construídos a partir de vários transístores ou pode ser simplesmente um circuito integrado Ponte H. Nesta aula, iremos utilizar o chip L293D.

curso arduino - #8 - motores DC

O principal objetivo das Pontes H é ler e converter os sinais enviados pelo Arduíno em tamanhos compatíveis com o controlo do motor. Por exemplo, o Arduíno, cujos sinais podem funcionar a um máximo de 5V/20mA, após a aplicação da ponte H, pode facilmente controlar um motor que requer 12V/1A para funcionar.

O chip L293D é muito comum por ser barato e fácil de usar porque possui uma montagem THT, isto é, podemos ligá-lo diretamente à breadboard.

Este possui 16 pinos distribuídos da seguinte forma:

curso arduino #8 controlo de motores dc

Em particular, o L293D possui uma corrente média por canal de 0.6A-1.2A, isto significa que o motor pode consumir até 0.6A, mas, se por algum motivo, a corrente aumentar para 1.2A nada de mal irá acontecer desde que seja por um curto período de tempo.

Ao olhar para a imagem acima, podemos ver que os pinos 4, 5, 12, 13 são pinos Terra(GND), o chip L293D é alimentado pelo Arduíno com 5V pelo pino 16 e pode haver uma alimentação externa dos motores até 36V pelo pino 8.

Um dos problemas que podemos ter nesta ponte é a queda de tensão. Por exemplo, se alimentarmos os motores com 9V, o L293D vai gastar parte desta energia e os motores só irão receber no máximo 7V. Existem pontes mais recentes, como a TB6612, que têm uma queda de tensão menor.

Para controlar a direção do motor temos os pinos 2 e 7 e, no caso de termos um segundo motor, podemos utilizar os pinos 10 e 15. Os pinos 1 e 9 servem para definir a velocidade dos motores.

Utilizando a seguinte tabela, Tabela Verdade, podemos parar ou mudar de direção a rotação do motor:

curso arduino - #8 - controlo motores dc

 

Pinos de saída dos motores: 3 e 6 para o primeiro motor e 11 e 14 para um segundo motor.

 

Vamos agora dar início ao nosso exercício prático com Ponte H. Iremos utilizar o seguinte circuito:

Como podemos ver pela imagem do circuito, o mesmo é alimentado por duas fontes de alimentação, pelo Arduíno e por uma pilha de 9V, a razão que nos leva a fazer isto é para que não haja interrupções e resets frequentes. Neste caso os motores vão ser alimentados pela pilha de 9V diretamente.

O condensador eletrolítico utilizado no esquema vai servir para filtrar a tensão fornecida pela bateria de 9V.

 

Vamos passar agora à programação.

Um dos grandes desafios é o controlo de rotação, sentido horário e anti-horário. Nesta aula este desafio cairá por terra, iremos criar um pequeno código que nos permita colocar o motor a rodar nos dois sentidos e ao mesmo tempo regular a velocidade do mesmo.

Antes de iniciar o algoritmo, devemos ter em atenção o seguinte:

  • O sentido da rotação depende do sinal de entrada.  Assim, olhando para a tabela verdade apresentada anteriormente, sabemos que o sistema funciona se uma das entradas tiver no estado LOW -> “0” e a outra no estado HIGH -> “1”;
  • Os pinos responsáveis pelo controlo do sentido de rotação são o 7 e 8 ;
  • O pino 6(PWM) é responsável pela regulação da velocidade. No entanto, se não quisermos definir a velocidade basta definir o pino 6 como HIGH;

  • Se o objetivo for controlar a velocidade dos motores basta definir o valor analógico do pino 6.

 

Espero que tenham gostado desta aula e aproveitem-na para dar criatividade aos vossos projetos.

Fiquem bem. Abraço...