terça-feira, 13 de março de 2012

Estrutura do equipamento - funcionamento do motor de passo (II)


Motor de Passo Funcionando



motores de passo

Bem no tópico anterior vimos o motor de passo do scanner. Agora veremos como ele funciona.


Se você tiver curiosidade, indico um vídeo produzido por alunos da UNIVASF que explica de modo bem interessante, o funcionamento de um motor de passo, com bobinas, corrente elétrica e uma bússola.


Motor de passo, o que é? 
(trecho tirado daqui)


Um motor de passo por dentro é basicamente assim:
Um motor de passo é um tipo de motor que como o nome indica, roda em "passos", ou seja em ângulos certos (por norma, escrito no próprio motor).

Para fazer um passo, deve-se fazer passar bastante corrente pelas bobinas do motor, de modo a criar um campo magnético e a atrair um dos dentes do eixo.

Na figura, retirada daqui, temos em 1, 2, 3 e 4, solenóides (bobinas) nos quais se passa certa corrente elétrica, de forma que se cria um campo eletromagnético, o qual o atrai os dentes da peça contendo o solenóide em direção a engrenagem, de forma que quando cada solenóide for ativado, a cada passo, se tem o movimento da engrenagem para a direção do passo seguinte. Desta forma temos a seguinte configuração:


Este desenho é from Wikipedia (embora eu tenha alterado um pouco...)



  • Em I - O solenóide do topo (1) esta ativado, atraindo o dente superior do eixo.
  • Em II - O solenóide do topo (1) é desativado, e o solenóide da direita (2) é ativado, movendo o quarto dente mais próximo à direita. Isto resulta em uma rotação de 3.6°.
  • Em III - O solenóide inferior (3) é ativado; outra rotação de 3.6° ocorre
  • Em IV - O solenóide à esquerda (4) é ativado, rodando novamente o eixo em 3.6°. Quando o solenóide do topo (1) for ativado novemante, o eixo terá rodado em um dente de posição, como existem 25 dentes, serão necessários 100 passos para uma rotação completa.


O motor utilizado é o M35SP-7T (folha de dados do motor)da MITSUMI. 

Pela folha de dados:


Notamos que:
  • Possui 4 fases, sendo
    • 50 ohms/fase (entre 46,5 ohms e 53,5 ohms)
    • 7,5°/passo
  • Excitação de 2 em 2 fases - motor unipolar
OBS1: Para saber mais sobre os drivers e excitação das bobinas de indução, que definem se o motor é unipolar ou bipolar, acesse a aba de nosso blog: Espectrofotômetro: Componentes


Isso quer dizer que:

  • dos 5 fios que saem do motor de passo (pela ordem laranja, amarelo, marrom e preto, correspondendo às 2 bobinas):
    • 2 vão ficar com uma tensão mais elevada e 
    • 2 com uma mais baixa (neste caso a GND).
  • Além disso, mais 1 fio (vermelho) segue para alimentação externa (no caso, em geral 18V, mas podendo chegar a 24V)


Cabe colocar aqui que, pela folha de dados do motor, a indutância de suas bobinas é de 50R/fase, assim, para alimentá-lo com 18V temos que ter no mínimo 360mA/fase. Ou seja, para as 4 fases, ao todo, deveremos ter, ao mínimo, 1,4A (!!!!), que é uma intensidade de corrente bem elevada.



A corrente que deve passar pelo motor para acioná-lo de nenhum modo poderáser dada pelo Arduino (nele, a corrente é de 40mA por porta), de modo que para acionar o motor, é necessário aumentar o sinal de corrente que sai do Arduino e chega ao motor.


Mas como se faz isso? - CI's



É necessário usar o que chamamos de CI (circuito integrado, como o mostrado acima), um componente que associa diferentes transistores SMD em paralelo, de modo a permitir aumento de tensão, corrente, regular sinal, etc..., conforme a necessidade do projeto.

Neste caso, pode-se utilizar o que é chamado de ponte H (um conjunto de transistores associados de modo a não permitir correntes de fuga):


 
Ponte H (CI L293D) associado ao motor de passo, vista no programa Fritzing, (acima, à esquerda) e à direita imagem real do CI.



Ou um CI chamado ULN 2003A (datasheet aqui), que basicamente aumenta o sinal de corrente que sai do Arduino e vai chegar no motor, e ao quals e pode associar o sinal de tensão de 18V sem prejudicar o funcionamento do Arduino:

Ao centro, imagem do CI ULN2003A


O CI que utilizamos foi o ULN2003A, devido a questões financeiras e porque em termos de arranjo no experimento ocupa menos espaço e é mais fácil associar os fios. Na ligação com o motor fica mais ou menos assim:




No lado esquerdo da imagem acima, CI ULN2003A mostrado em detalhe, observa-se do lado esquerdo do CI, os cabos se ligam ao motor e do direito do CI ao Arduino nos pinos em que se deseja realizar o movimento, podendo variar também a velocidade do motor de passo. Para este teste (o da imagem) foi utilizado um diferente do Mitsumi do resultado final, mas com as mesmas especificações. Ao lado direito, imagem mostrando a ligação de um motor de passo ao CI e do CI ao Arduino.


Falando em associação dos fios entre motor e CI ULN2003A e entre CI e arduino, esta ordem de fios ocorre assim:



No caso do motor utilizado, a ordem dos fios é esta


Cor do fio
Motor de Passo – CI
CI – Arduino
Laranja
16
8
Amarelo
15
9
Marrom
14
10
Preto
13
11
Vermelho
9
---


Modos de Operação

Os modos de operação variam conforme a necessidade de uso do motor de passo. Por exemplo, no caso do experimento implementado, temos um Conversor de Frequência, associado a estrutura da cabeça de leitura do scanner, o qual deve varrer a extensão dos comprimentos de onda do espectro projetado pela rede de difração. (Veremos adiante sobre redes de difração, e indicamos que acesse a aba Teoria com Simuladores).
Para tanto, a velocidade do motor de passo deve ser baixa o suficiente para que ele trabalhe com precisão suficiente. Isso porquê, os números de passos que a cabeça de leitura do scanner desloca, deve resultar em um intervalo de distância baixo. Com isso, podemos fazer a coleta do comprimento de onda proporcionalmente precisa.


Sendo assim, nos testes e no resultado final usamos um Arduino MEGA, o CI ULN2003A, motor de passo Mitsumi M35SP-7.






Nas imagens acima, temos a montagem do motor associado ao ci e este ao arduino. Na imagem de baixo, detalhe do ci montado em um soquete de 8 16 pinos, e com cabos conectados.

Para o controle da ida e da volta da cabeça de leitura, basta fazer o motor gira no sentido anti-horário (frente), e a cabeça de leitura faz a ida, ou para o sentido horário (para trás), na qual a cabeça de leitura volta.

O programa para isso é bastante simples:

const int stepsPerRevolution = 50; // muda o ajuste de passo por revolução do motor
char leitura; //comando para o arduino associar a leitura do teclado
Stepper myStepper(stepsPerRevolution, 4,5,6,7);  // inicia a biblioteca do motor de
                                                                        //passo nos pinos 4 a 7, de modo que a 
                                                                        //função "stepsPerRevolution" dará o 
                                                                        //comando de cada uma das portas 
                                                                        //digitais associadas para o motor girar 
                                                                       //ou para o sentido anti-horário ou 
                                                                       //horário:
void setup() {
  myStepper.setSpeed(50);  // ajusta a velocidade de giro do motor para 50 rpm:
  Serial.begin(9600);  // inicia comunicação com a porta serial :
}
void loop() {
  leitura = Serial.read();
  // uma volta para trás:
   if(leitura == 't') {
      myStepper.step(stepsPerRevolution); //comando para acionar passos para trás
     Serial.println("clockwise = tras"); //imprime o comando "para trás"
        delay(5); //espera 5ms.
   }   
   if(leitura == 'f') {
     myStepper.step(-stepsPerRevolution); //comando para acionar os passos para frente
     Serial.println("anti-clockwise = frente"); // imprime o comando "para frente"
       delay(5); //espera 5ms.
   }
}

Como quero atingir uma velocidade baixa, tenho que manter o ajuste de velocidade em um número baixo, e posso utilizar um baixo tempo de espera, pois o motor de passo terá força para arrancar com esta velocidade.

Desta forma consigo manter velocidade baixa, sem sobrecarga do motor (deste que os fios estejam corretamente ligados, evitando superaquecimento, e retorno de corrente), e faço com que a cabeça de leitura se mova a passos curtos e consiga coletar mais informação.



Mais detalhes de como funciona um motor de passo, você encontra na aba Espectrofotômetro: Componentes




No próximo item veremos como é realizado o cálculo do comprimento de onda através do motor de passo


2 comentários :

Deixe aqui seus comentários, críticas, sugestões de melhorias, dúvidas, o que quiser. Mas por favor, seja educado e claro. OK?