Tudo sobre DRIVER A4988 e Motor de Passo > Usando o Arduino

 

Nesse tutorial  DRIVER A4988 + Motor de Passo > Usando o Arduino, você verá :

O Módulo Driver A4988 é bem versátil e tem sido muito usado no controle dos motores de passo de CNCs e Impressoras 3D. Com esse tutorial você aprenderá como usá-lo. Entenderá como funciona um motor de passo e o Driver A4988. Aprenderá como configurar o driver para permitir movimentos mais adequados para o seu projeto.

A diferença desse tutorial para os outros sobre A4988, é que nele você terá um controle digital dos pinos de seleção do modo de passo. Nos outros tutoriais, esse controle é feito através de chaves ! Nada impede, que você despreze esse controle digital e use as chaves para selecionar o modo de passo.

 

Como funciona um Motor de passo :

Motor de passo é um motor elétrico que não possui escovas ou comutadores, permitindo assim uma vida longa sem tantos desgastes.  O rotor constitui-se de um ou mais imãs permanentes. No estator encontram-se várias bobinas. O controle do motor é feito por um circuito eletrônico que aciona repetidamente as bobinas numa sequência que permite o giro do rotor. Cada pulso enviado para o circuito, faz com que o motor avance um passo. O sentido de rotação do motor é controlado também pela sequência e pela polarização das bobinas. A velocidade que o rotor gira  é determinada pela frequência  dos pulsos do circuito de controle. Quanto maior a frequência, maior será o RPM.

Os motores de passo mais comuns são os que precisam de 200 passos para girar uma volta (revolução). Mas existem outros com um menor ou maior número de passos, dependendo da aplicação.

 

Motor de passo NEMA-17 desmontado          Foto: Gustavo Murta

 

Rotor do motor      Foto: Gustavo Murta

Estator do motor       Foto: Gustavo Murta

 

 

 

 

 

 

 

 

Tipos de Motores de Passo :

Existem atualmente três tipos de motores de passo:
– Relutância variável
– Imã permanente
– Híbrido

Os motores de passo de Relutância Variável são os menos comuns, pois não possuem imãs permanentes. O rotor é feito de ferro doce. Os campos magnéticos são formados por enrolamentos no estator alimentados com corrente contínua. São usados em aplicações especiais com tamanho reduzido ou em tamanho maior em aplicações industriais. O circuito driver é diferente dos outros mais comuns. Esse é um motor RV :

 

Os motores de passo com imã permanente são motores mais baratos e com menor precisão (resolução), com passos com ângulos de 7,5 a 15 graus (48 a 24 passos por volta). São os mais usados em periféricos de computadores, devido ao baixo preço e baixa velocidade. Como o nome já diz, tem imãs permanentes que produzem maior torque do que os motores com relutância variável. Os enrolamentos do rotor são magnetizados alternadamente com o polo norte e sul, permitindo uma maior intensidade no  fluxo magnético.

 

Os motores de passo híbridos são os motores mais sofisticados e mais caros, pois produzem melhor performance e maior velocidade devido ao menor angulo por passo. Os ângulos por passo podem variar entre 3,6 a 0,9 graus (100 a 400 passos por volta !) Esse motor possui as melhores características dos outros dois tipos de motor , IP e RV. O rotor é multi-dentado como o motor de RV, e tem dois magnetos polarizados presos ao eixo. Essa estrutura permite melhores características de torque dinâmico e de travamento. Por terem maior precisão, são os mais usados em fresadoras, impressoras 3D, etc.

 

Referências :
http://www.solarbotics.net/library/pdflib/pdf/motorbas.pdf
https://www.astrosyn.com/wp-content/uploads/2015/10/Guide-to-Steppe…
http://www.geckodrive.com/support/step-motor-basics.html

 

Motores de Passo – Unipolar e Bipolar / Tipos de enrolamentos :

Normalmente motores de passo tem duas fases, mas podem existir motores com três ou cinco fases também.
Dependendo do enrolamento dos motores de passo, podemos ter motores Unipolares ou Bipolares:

Motores de Passo – UNIPOLAR

Motores Unipolares tem  fases (duas) com enrolamentos com um terminal central, por isso são consideradas por alguns, por terem quatro fases com um enrolamento para cada fase.
Nesse tipo de motor, cada fase é energizada por um circuito driver num único sentido de corrente somente. Isto é, uma extremidade do enrolamento será sempre positiva e a outra sempre negativa. O driver pode ser implementado com um transistor apenas. A desvantagem do motor unipolar é que tem menos torque do que o bipolar similar, pois sempre terá no máximo, a metade das fases energizadas. Daí pode-se concluir que tem 50% da eficiência em relação ao bipolar.

Motores de Passo – BIPOLAR

Motores bipolares, como o nome já diz tem duas fases, normalmente um enrolamento por fase.
A corrente no enrolamento precisa ser invertida para reverter um pólo magnético. Por isso , o circuito driver é mais complicado e geralmente utiliza-se de duas pontes-H. Pelo fato de serem melhores utilizados, eles são mais poderosos do que um motor unipolar do mesmo tamanho.

Tipos de Enrolamentos :

Motores que tem quatro enrolamentos separados por fase podem existir. Desse tipo, eles podem ser usados tanto no modo Unipolar quanto no modo bipolar. Mas somente se os quatro enrolamentos estiverem isolados !

Dependendo das conexões dos enrolamentos os motores podem ter quatro fios (modo  Bipolar), cinco, seis ou oito fios. Para motores com cinco fios, somente pode ser usado o modo Unipolar. Mas para seis e oito fios, temos algumas variações bem interessantes.

 Motor Bipolar – quatro  fios

 

                        Motores Unipolares  – Seis e Cinco fios 

 

Motor Bipolar-paralelo / 8 fios

Motor Bipolar-série / 8 fios

 

                                                               

 

 

 

 

 

 

Motor Unipolar / 8 fios

Referências :
https://learn.adafruit.com/all-about-stepper-motors/types-of-steppers
http://www.kocomotion.de/fileadmin/pages/10_PRODUKTE/Dings/Dings_hy…
http://www.ece.mtu.edu/labs/EElabs/EE2304/EE2304_website_2008/Stepp…
http://www.nmbtc.com/pm-step-motors/engineering/pdf/pm_select.pdf

 

Especificações de Motores de Passo:

É importante entender as especificações de um Motor de Passo, para que possa fazer uma escolha correta para um Driver de Motor. Nunca exceda as limitações de um Motor ou de um Driver, pois assim poderá danificá-los.

Esse é o link de um dos maiores e mais antigos fabricantes de Motores de Passo do Japão:

Link de Motores de Passo Minebea 

Especificações de um Motor Minebea 17PM-K053B : (exemplo)

  • Step angle  = 1,8º  (ângulo de cada passo)
  • Drive sequence = Bipolar (duas fases)
  • Rated current =  1,2 A  (máxima corrente a ser aplicada nas bobinas do motor)
  • Resistance = 2,2 ohms (resistência ohmica em cada bobina)
  • Holding Torque = 270 mNm ( torque de retenção do motor)
  • Inductance = 4,6 mH ( indutância de cada bobina)
  • Rotor Inertia = 37 g.cm² (inércia do rotor em grama x centímetro ²)
  • Detent Torque = 11 mNm  (Torque detente)
  • Mass = 200 g  (peso do Motor)

Holding Torque = O torque  máximo que pode ser aplicado a um motor  energizado, sem causar rotação contínua.

Detent Torque = O torque necessário para girar um motor de passo não energizado. Este torque resulta do ímã do rotor de um motor híbrido ou de imã permanente.

Esse Gráfico abaixo representa a variação do Torque do motor em relação à frequência dos pulsos do Driver e RPM do motor. Veja que quanto menor a frequência, maior será o Torque. Importante saber, que todo motor de passo tem uma frequência máxima. Se ultrapassar essa frequência, o motor irá vibrar e parar de girar!

 

Como funciona o  Módulo Driver A4988:

O módulo Driver A4988 possui um chip A4988, resistores e capacitores. O chip A4988 possui duas pontes H com transistores FET DMOS para fazer o controle  de motores de passo Bipolares. (motores com quatro, seis ou oito fios). Esse chip não pode controlar motores de passo Unipolares !

Devido ao uso de FETs para os drivers do motor, a resistência interna da Ponte H é baixa. Isso é muito bom, pois diminui bastante a potência despendida e portanto, o calor dissipado é bem menor. O chip é bem versátil, tem proteção contra curto-circuitos nas saídas e proteção contra excesso de temperatura.

Ele permite cinco modos de controle dos passos – Passo completo(full step), meio passo, um quarto de passo, um oitavo de passo e um dezesseis-avos de passo, os quais chamamos de micro-stepping. A capacidade máxima de controle na saída é de até 35 Volts e +-2 amperes. O chip tem um sofisticado controle de corrente nos motores, que permite o uso, com barulho reduzido, precisão apurada e dissipação reduzida de potência. Não aprofundarei na explicação do circuitos internos do motor, pois são bem complexos.

Essas são as informações (datasheet) do chip A4988:
http://www.allegromicro.com/en/Products/Motor-Driver-And-Interface-…

No chip, de um lado temos as portas de controle do motor e do outro lado , as conexões com o motor e os pinos de monitoramento de corrente. Todas as entradas de controle do motor são compatíveis com os níveis de 3,3V e 5V, adequadas tanto para os  Arduinos quanto para os  ESP8266, ESP32 e Raspberry PIs. O fabricante do chip é a Allegromicro. É uma empresa bastante experiente em drivers de motores. E tem muitos outros chips específicos para controle de motor.

Pinos do Módulo Driver A4988:

  • STEP (passo) – um sinal com transição de baixo para alto avança um passo,
  • DIR – permite a alteração no sentido da rotação do motor,
  • – ENABLE – um sinal baixo ativa os drivers do motor,
  • – RESET – um sinal baixo dá um reset no chip, desativando todas os drivers de saída,
  • – SLEEP (dormir) – esse pino quando negativo, desabilita alguns circuitos internos para economizar energia.
  •  MS1, MS2 e MS3 – são entradas para selecionar o modo da sequência dos passos (micro stepping) .

Algumas informações adicionais sobre o chip A4988:

O pinos MS1, MS2 e MS3 tem resistores conectados no terra (pull down). Portanto se não conectar esses pinos em alguma porta de um microcontrolador, o modo que será usado é o Passo completo ( Full Step).

O pino -ENABLE também tem um resistor conectado no terra (pull down) , portanto se não conectar no microcontrolador, o módulo ficará sempre ativo.

Já o pino -SLEEP tem um resistor conectado no VDD (pull up). Portanto se estiver isolado ele nunca irá dormir ..

 

Modos de passo do Driver A4988:

Esses são os cinco Modos de Passo do Motor, selecionados através dos pinos MS1,MS2 e MS3:

Tabela de Modos de Passo

Os motores de passo mais comuns, são os motores que cada passo corresponde à 1,8 graus. Como uma revolução completa tem 360 graus, portanto esse motor precisa de 200 passos para completar uma volta. Sabemos que para o avanço de cada passo é necessário um pulso, portanto:

PPR = 360º / 1,8º = 200 passos (ou pulsos) 

Esse parâmetro chama-se  PPR – pulsos por revolução. Veja que quanto menor o  modo de passo, maior é o número PPR, permitindo uma maior precisão no controle do motor. Mas saiba, que o modo micro-passo produz um torque menor do que o modo passo completo, devido à redução de corrente usada nesse modo.

  • Modo Passo Completo ( Full Step):  PPR = 200 
  • Modo Meio Passo ( Half Step):          PPR = 400
  • Modo Micro-passo ( MP 1/4):             PPR = 800
  • Modo Micro-passo ( MP 1/8):             PPR = 1600
  • Modo Micro-passo ( MP 1/16):           PPR= 3200

Referências sobre Micro-Stepping :

https://www.zaber.com/applications/technotes_documents/microstepping_tutorial.pdf
http://users.ece.utexas.edu/~valvano/Datasheets/StepperMicrostep.pdf
http://homepage.cs.uiowa.edu/~jones/step/micro.html

 

Recomendações Importantes antes de usar o seu módulo A4988 !

                 (para evitar de danificá-lo) 

  • Esse módulo foi feito para motores de passo Bipolar, não use um motor unipolar. (exceto se o motor Unipolar puder ser usado no modo Bipolar)
  • Antes de fazer a conexão dos fios das bobinas do motor, certifique-se que a identificação dos fios esta correta. Recomendo que meça o valor da resistência das bobinas.
  • Use um motor que se encaixe nas especificações do módulo – tensão máxima 35V e corrente máxima de 2 A.
  • Se estiver usando duas fontes separadas, alimente primeiramente a fonte de 5V (Arduino) e depois a de 12V (Driver A4988).
  • Conecte os fios das bobinas do motor no módulo A4988, antes de energizá-lo.
  • Não desconecte os fios da bobina, quando o módulo A4988 estiver energizado.
  • Se o módulo A4988 estiver aquecendo muito, cole o dissipador no chip.

 

Montagem do Driver A4988 + Motor de Passo

Para testes, montei um circuito do Módulo Driver A4988 conectado à um  motor de passo NEMA17, sendo controlado por um Arduino Nano (ou outro modelo de Arduino). Normalmente encontra-se na WEB, inúmeros circuitos desses, mas somente controlando os pinos de sentido de rotação (DIR) e dos pulsos dos passos (STEP). Para permitir um controle total do Driver A4988, na minha montagem todos os pinos de controle estão conectados às portas digitais do Arduino.

 Observações importantes :

      • A tensão de alimentação do Motor deve ser entre 8V e 35 V (não poderá usar motores com 5V somente).
      • A fonte de alimentação do Motor deverá suportar 2 ou mais amperes.
      • A corrente não pode ultrapassar 2A em cada bobina do motor.
      • Use um capacitor (C1)  de no mínimo 100 uF para filtrar ruídos na alimentação 12V do motor.
      • Use um capacitor (C2)  de no mínimo 10 uF para filtrar ruídos na alimentação 5V do chip A4988.
      • Não se esqueça de conectar o terra do Arduino ao terra do Módulo A4988 !
      • As cores dos fios do motor podem variar – veja nas especificações do seu motor.

O Módulo Driver A4988 tem um potenciometro (POT) de ajuste de corrente máxima. Se a corrente ultrapassar o limite, o chip será desativado para proteção dos circuitos. Antes de rodar o programa de teste, o ajuste de corrente deverá ser realizado ! Veja o procedimento abaixo. 

 

Ajuste de Corrente do Módulo Driver A4988:

O chip A4988 tem recursos de proteção contra excesso de temperatura ( temperatura de Shutdown é de 165 graus Celsius), proteção contra excesso de corrente nos FETs de potência e ainda proteção contra curto-circuitos nos pinos conectados nas bobinas.

A corrente máxima do Driver deverá ser ajustada para o mesmo valor da corrente máxima do motor (datasheet). A verificação das correntes nas bobinas do motor é realizada através da  medição das tensões sobre os resistores RS1 e RS2 do módulo. Essas tensões são comparadas com a tensão de referência (V REF) do chip A4988.

Essa tensão de referência é ajustada através do trimpot (POT), marcado com uma seta vermelha. Use uma chave de fenda de relojoeiro para ajustar – gire com delicadeza.

Carregue o programa A4988_ajusteCorrente , pois o módulo deve ser configurado para o modo de Passo Completo (FULL) para esse ajuste de corrente. Não ligue a fonte de 12V ainda. Não é necessário ligá-la, para fazer esse ajuste. Conecte a ponta negativa (preta) do seu Voltímetro no  pino GND do Módulo A4988. E a ponta positiva (vermelha) pode colocá-la sobre a parte superior metálica do potenciômetro. Muito cuidado para não provocar um curto-circuito. A tensão de Referência (do POT) deve ser ajustada de acordo com os cálculos abaixo.

O cálculo da corrente máxima é esse ( retirado das especificações do fabricante do chip A4988) :

I max = V REF / ( 8 x RS )          ou        V REF = I max  x ( 8 x RS )

No meu módulo RS = 0,1 ohm e a tensão Vref = 1,25 V ( veio ajustado com essa tensão)

Portanto :

 I max = 1,25 / ( 8 x 0,1 )  =  1,56 Ampéres 

Fazendo alguns cálculos como exemplo : 

( S1 e S2 = 0,1 ohms – codigo R100 no resistor)

  I max = Vref / ( 8 x 0,1 )  

      •        para 2A (max) =>      Vref = Imax x ( 8 x 0,1 ) = 2,0 x 0,8 = 1,6 V

                (não ultrapasse esse limite !)

      •        para 1,5 A       =>      Vref = Imax x ( 8 x 0,1 ) = 1,5 x 0,8 = 1,2 V
      •        para 1,0 A       =>      Vref = Imax x ( 8 x 0,1 ) = 1,0 x 0,8 = 0,8 V
      •        para 0,5 A       =>      Vref = Imax x ( 8 x 0,1 ) = 0,5 x 0,8 = 0,4 V

 

Testes do Driver A4988 + Motor de Passo

Criei um Sketch para permitir o teste de todos os pinos de controle / funções  do Módulo A4988. Usei as oito portas digitais do Arduino. A designação de cada porta foi escolha minha. Nada impede que você utilize outras portas, desde que altere as ligações e o seu sketch de acordo com o novo circuito.

O Sketch permite o uso de todos os modos de passo :

  • Passo Completo (Full),
  • Meio Passo (Half),
  • Micro-passo de 1/4,
  • Micro-passo de 1/8,
  • Micro-passo de 1/16.

Permite também que configure a frequência dos pulsos (passos) e o RPM, a quantidade de passos,o sentido de rotação, etc.

Carregue o Sketch na IDE Arduino. Compile-o e grave-o no Arduino. Abra o Monitor Serial (Console) com a velocidade de 9600 Bps. Pronto, agora pode ligar a fonte de 12V . Acompanhe os  testes através da Console.

Faça as alterações necessárias no programa, se quiser fazer outro tipo de teste. Se o sentido da rotação não corresponde ao Monitor, inverta as ligações das bobinas. Onde esta ligada a bobina A, conecte a bobina B. E a bobina B conecte na ligação da A.

Arquivo do Sketch : A4988_teste.ino

 

Se tiver alguma dúvida,  deixe um comentário!

 

Avaliações: 5.0. de 2 votos.
Por favor, aguarde...
Gustavo Murta
Gustavo Murta
Consultor e Projetista de Sistemas Embarcados. Técnico em eletrônica, formado em Curso superior de TPD, pós-graduado em Marketing. Trabalhou por muitos anos na IBM na área de manutenção de computadores de grande porte. Aposentou-se, podendo curtir o que mais gosta : estudar e ensinar Tecnologia. Hobista em eletrônica desde 1976. Gosta muito de Fotografia e Observação de aves.