terça-feira, 19 de março de 2013

Motor CC/DC no Arduino e ponte H dupla. Controle de velocidade e sentido da rotação

Olá pessoal, para os aficionados por Arduino e para quem se interessa por robótica, ou se interessa por mecanismos eletrônicos que usam motores, aqui está um conceito muito importante, conceito este que trata do controle de um motor de corrente contínua CC/DC, que permite que você controle a velocidade de rotação e também o sentido da rotação, horário ou anti-horário. Esse tipo de mecanismo é a base para a construção de braços robóticos, mini guinchos, mini elevadores e mais um monte de coisas. Neste projeto arduino iremos usar um componente importante, o L293D, que é um circuito integrado de ponte H dupla, que vai permitir que tenhamos total controle de um motor cc/dc e além disso o L293D permite que você controle até dois motores cc/dc de forma independente. Então vamos iniciar o nosso projeto arduino com ponte H dupla para controle de velocidade e sentido da rotação de um motor cc/dc.
Para uma visão geral deste projeto arduino, assista o vídeo abaixo que mostra o projeto pronto em pleno funcionamento.

Para começar é ideal que se conheça o circuito integrado de ponte H dupla L293D. Na imagem abaixo segue a descrição dos pinos que fazem parte deste componente. Um ponto importante sobre este componente eletrônico é que ele já possui diodos internamente, por isso o "D" no final de seu nome, por isso não usaremos diodos externos na protoboard. E observe o chanfro no topo do componente L293D, parecido com um meio círculo, pois é a partir dele que deverá ser iniciada a contagem dos pinos. O pino 1 será o primeiro pino no sentido anti-horário partindo do chanfro.
Esquema L293D
No nosso projeto usaremos os seguintes pinos do CI (circuito integrado) L293D:
  • pino 1 - enable 1, 2 - ligado ao pino digital 9 (PWM) do arduino;
  • pino 2 - input 1 - ligado ao pino digital 3 do arduino;
  • pino 3 - output 1 - ligado ao motor cc/dc;
  • pino 4 - GND - ligado ao terra (ground) do arduino;
  • pino 5 - GND - ligado ao terra (ground) do arduino;
  • pino 6 - output 2 - ligado ao motor cc/dc;
  • pino 7 - input 2 - ligado ao pino digital 4 do arduino;
  • pino 8 - Vcc 2 - ligado ao positivo vindo das pilhas;
  • pino 12 - GND - ligado ao terra (ground) do arduino;
  • pino 13 - GND - ligado ao terra (ground) do arduino;
  • pino 16 - Vcc 1 - ligado ao pino 5V (volts) do arduino;
E para desenvolver este projeto iremos usar do seguinte material:
  • um arduino UNO, Leonardo, Duemilanove, Mega ou outra versão;
  • uma protoboard;
  • um circuito integrado L293D;
  • fios jumper;
  • quatro pilhas pequenas;
  • um motor CC de 6 volts;
  • um potenciômetro de 10 K ohms;
  • uma chave liga/desliga;
  • um resistor de 10 K ohms.
Segue abaixo o esquema do nosso projeto, que servirá de base para o desenvolvimento do mesmo, e que mostra detalhadamente todas as ligações entre os componentes eletrônicos que fazem parte deste projeto. O potenciômetro vai controlar a velocidade de rotação do motor, aumentando ou diminuindo. A chave liga/desliga irá controlar o sentido da rotação do motor, horário ou anti-horário.
Arduino e L293D ponte H dupla
Vamos começar colocando na protoboard os componentes L293D e o potenciômetro, que controlará a velocidade de rotação do motor cc/dc.
Arduino e L293D ponte H dupla
Agora faça a ligação da chave liga/desliga, juntamente com o resistor e os fios jumper.
Arduino e L293D ponte H dupla
Faça as ligações do potenciômetro, do L293D, das pilhas e do motor cc/dc. Para realizar estas ligações o melhor é seguir o esquema do início deste post que possui uma forma de visualização mais detalhada do projeto.
Arduino e L293D ponte H dupla
Outro ângulo das ligações entre o arduino e os componentes.
Arduino e L293D ponte H dupla
Ao finalizar a montagem dos componentes eletrônicos do seu projeto você terá algo parecido com o projeto da imagem abaixo. Usei uma bateria de 9V para alimentar o arduino, mas também poderia conectá-lo ao computador através do cabo USB para alimentá-lo.
Arduino e L293D ponte H dupla
Agora chegou a grande hora, a hora de programar o seu arduino. Conecte o arduino ao seu computador com o cabo USB, execute a IDE do arduino, e copie e cole o programa abaixo na IDE, depois compile o programa e faça o upload para o arduino.
Segue abaixo o código fonte comentado do programa de controle do motor cc/dc com ponte H dupla para o arduino. Apesar de todos os recursos deste projeto o programa é pequeno e simples.
/*
Projeto Arduino motor cc com ponte H dupla. Gira nos dois
sentidos e possui controle de potência.
Por Jota
----------------------------------------
--=<| www.ComoFazerAsCoisas.com.br |>=--
----------------------------------------
*/


#define chaveMudaSentRot 2 //Chave que muda o sentido da rotação do motor.
#define motorCCEnt1 3      //INPUT 1 do L293D.
#define motorCCEnt2 4      //INPUT 2 do L293D.
#define controleL293D 9    //Pino de ativação e controle do L293D.
#define controleVelocPot 0 //Pino analógico para controle de potência/velocidade do motor.
int potVelPotencia = 0;    //Variável para armazenar o valor lido no potenciômetro.

void setup() {
  //O pino da chave seletora de rotação definido como de entrada.
  pinMode(chaveMudaSentRot,INPUT);
 
  //Pinos do motor e de ativação do L293D definidos como de saída.
  pinMode(motorCCEnt1,OUTPUT);
  pinMode(motorCCEnt2,OUTPUT);
  pinMode(controleL293D,OUTPUT);
}

void loop() {
  //Lendo valor do potenciometro para aplicar a potência/velocidade ao motor.
  //O valor lido é dividido por 4 para se obter valores entre 0 e 255;

  potVelPotencia = analogRead(controleVelocPot) / 4;
 
  //Transfere o valor lido de velocidade/potência no potenciômetro para o L293D.
  analogWrite(controleL293D,potVelPotencia);
 
  //Controlando o sentido de rotação do motor pela chave liga/desliga e pelos
  //INPUTs do L293d.

  if (digitalRead(chaveMudaSentRot) == HIGH) {
    digitalWrite(motorCCEnt1,LOW);
    digitalWrite(motorCCEnt2,HIGH);
  } else {
    digitalWrite(motorCCEnt1,HIGH);
    digitalWrite(motorCCEnt2,LOW);
  }
}
Após o upload do programa para o arduino seu projeto estará completamente pronto, se você chegou até aqui meus parabéns! Use o potenciômetro para controlar a velocidade de rotação do motor e use a chave liga/desliga para mudar o sentido de rotação do motor. Esteja também sempre atento a temperatura do L293D ele costuma esquentar bastante, se você for deixar seu projeto ligado por muito tempo use um dissipador de calor no L293D. E abaixo segue o vídeo do mini guincho feito de palitos de picolé que demonstra uma das milhares de aplicações de uma ponte H.

Então é isso pessoal, um grande abraço a todos, e aprendam bem este projeto, pois ele será a base de muitos outros projetos, como um braço robótico, que estaremos desenvolvendo aqui no site

Nenhum comentário:

Postar um comentário