No artigo de hoje você vai conhecer e aplicar um motor de passo com controle através do Arduino UNO. Segundo a wikipedia o motor de passo consiste em um estator bobinado com várias bobinas independentes e um rotor metálico com vários pequenos “dentes”.

   O acionamento coordenado e sequencial das bobinas do estator é capaz de fazer o rotor girar tão devagar e precisamente quanto a quantidade de dentes do rotor permitir. O motor que utilizaremos neste artigo é capaz de dar 4096 passos por volta, resultado de uma caixa de redução de 1:64 e 64 dentes por volta (portanto 64*64= 4096).

funcionamento do motor de passo

Fonte: wikipedia

   Essa quantidade toda de passos por volta (aliado à caixa de redução) garante ao motor de passos uma grande resolução (precisão) de movimento. Porém não existe feedback/realimentação de posição na maioria deste motores, portanto não há garantia de que ele realmente vai executar uma volta (ou várias voltas) completa o tempo todo, e nem que vá parar na posição desejada todas as vezes.

   Em sistemas onde se necessita precisão real é sempre recomendado um servo-motor ou então algum tipo de realimentação de posição.

   Neste artigo utilizaremos o motor modelo 28BYJ-48 (imagem abaixo), pois é facilmente encontrado à venda em sites como ICStation, eBay e Aliexpress. É um motor unipolar de quatro fases que funciona em 5VDC e tem torque de 300g.f/cm .

motor de passo 28BYJ-48Fonte: o próprio autor

   A ligação elétrica do motor passa por um driver de potência ULN2003 e segue o proposto neste artigo do blog “arduinoecia” (imagem abaixo). São utilizados os pinos digitais 8,9,10 e 11, um para cada bobina do motor.

ligação elétrica do motor de passo 28BYJ-48

Fonte: arduinoecia

   A biblioteca “oficial” (embutida na IDE oficial) para controle de motores de passo com Arduino se chama “Stepper“. Porém eu não gostei da forma como ela controla o motor: algumas vezes o motor nem gira, e algumas coisas nela são mal explicadas.

     Nas minhas pesquisas eu descobri uma biblioteca chamada “CustomStepper“, feita por um terceiro e que parece bem melhor estruturada e fácil de usar. O link para informações sobre esta biblioteca está aqui. Ela tem que ser instalada na IDE do Arduino antes de ser utilizada; eu fiz um guia de como instalar novas bibliotecas aqui.

   Após instalar a biblioteca, na sua IDE vá em “Arduivo > Exemplos > CustomSteppter > stepper”. Na linha de código abaixo são configuradas informações específicas do motor: os pinos digitais utilizados (8,9,10,11), a relação real de passos do motor (4075,7728), a velocidade de rotação (14 – nos meus testes essa é a máxima possível) e o sentido de rotação (CW – sentido horário).

   Dentro do setup() são configurados novamente a velocidade de rotação (14) e o número de pulsos por volta (4075.7728), conforme código abaixo.


Já o código completo do exemplo “stepper” (abaixo) demonstra todas as capacidades da biblioteca:

  • Primeiro o motor dá duas voltas no sentido anti-horário (CCW)
  • Depois ele gira 90 graus no sentido horário (CW)
  •  E finalmente ele permanece girando á 14 RPM no sentido anti-horário (CCW).

   Deixo para vocês um video demonstrando a utilização da biblioteca “CustomStepper”:

   Os parâmetros definidos no sketch são dependentes de cada motor, portanto os valores de número de passos por volta, velocidade máxima e quantidade de bobinas vão depender do motor que você tiver em mãos. Recomendo sempre ler o datasheet dele antes!.

   Para os mais curiosos, deixo aqui alguns links específicos sobre testes no motor 28BYJ-48:

Motor de passo com Arduino
Classificado como:                            

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Solve : *
15 + 5 =