Como usar motor de passo com driver A4988 e Arduino

Como usar Motor de Passo com Driver A4988 e Arduino Deixe um comentário

Neste guia passo a passo, vamos mostrar como utilizar o Arduino Uno R4 WiFi em conjunto com o Driver de Motor de Passo A4988 para controlar um Motor de Passo NEMA 17. Este conjunto é amplamente utilizado em diversas aplicações, como impressoras 3D, máquinas CNC e robôs industriais, proporcionando movimentos precisos e incrementais. 

Controle de Motor de Passo NEMA 17 com Arduino Uno R4 WiFi e Driver A4988

Vamos explorar os materiais necessários, entender o funcionamento dos motores de passo e do driver A4988, além de criar um circuito eletrônico e configurar tudo na Arduino Cloud. Ao final, você terá um sistema funcional de controle de motor de passo, pronto para ser integrado em seus projetos. 

Objetivos

  • Entender o Funcionamento dos Motores de Passo: Explorar os princípios básicos de como um motor de passo opera, compreendendo sua construção, magnetização do rotor, bobinas do estator e controle preciso de posicionamento.
  • Conhecer o Driver de Motor de Passo A4988: Familiarizar-se com o A4988, um driver popular para motores de passo bipolares, compreendendo seu controle de corrente, modulação por largura de pulso (PWM), configuração da corrente e modos de microstepping.
  • Montar o Circuito Eletrônico: Aprender a conectar o Driver A4988 ao Arduino Uno R4 WiFi e ao Motor de Passo NEMA 17, seguindo um esquema de ligações detalhado.
  • Configurar o Arduino Cloud: Criar uma conta na Arduino Cloud, conectar o Arduino Uno R4 WiFi à plataforma e configurar as informações necessárias para permitir a comunicação eficiente.
  • Criar Variáveis na Arduino Cloud: Configurar variáveis como SentidoAntiHorario, SentidoHorario e Velocidade na Arduino Cloud para controlar o motor de passo.
  • Criar um Dashboard na Arduino Cloud: Estabelecer um dashboard na Arduino Cloud para visualizar e interagir com as variáveis criadas, incluindo um slider para a velocidade e botões para controlar o sentido de rotação.
  • Programar o Arduino Uno R4 WiFi: Utilizar o código fornecido no tutorial para programar o Arduino Uno R4 WiFi, permitindo a execução das ações desejadas de acordo com as variáveis configuradas.
  • Testar e Verificar o Funcionamento: Colocar o circuito em funcionamento, testando o controle de velocidade e direção do motor de passo através do dashboard criado na Arduino Cloud.

Materiais Necessários

Para seguir com este tutorial, você irá precisar dos seguintes componentes:

Materiais necessários

Além dos itens mencionados acima, você também precisará ter uma conta cadastrada na Arduino Cloud.

Como funciona um motor de passo?

Um motor de passo é um tipo especial de motor elétrico projetado para girar em passos discretos, ou seja, movendo-se de uma posição para outra em incrementos fixos. Ele é amplamente utilizado em aplicações que exigem precisão de posicionamento, como impressoras 3D, máquinas CNC, robôs industriais e equipamentos de automação.

driver de motor de passo A4988

Aqui estão os princípios básicos de como um motor de passo funciona:

  • Construção: Um motor de passo é composto por um rotor (parte que gira) e um estator (parte estacionária). O rotor pode ter dentes magnetizados, e o estator contém bobinas de fio.
  • Magnetização do Rotor: Os motores de passo podem ter diferentes configurações, mas uma configuração comum é ter um rotor com ímãs permanentes. Os ímãs são polarizados de forma que o norte e o sul estejam distribuídos alternadamente ao redor do rotor.
  • Bobinas do Estator: O estator contém bobinas de fio. Geralmente, há quatro bobinas ou mais, dependendo do tipo de motor de passo. Cada bobina é conectada a um circuito controlador.
  • Controle das Bobinas: Para mover o rotor, as bobinas do estator são energizadas sequencialmente em padrões específicos. O controle pode ser feito de diferentes maneiras, incluindo a técnica de passo completo, meia passo, e micro passo. O controle preciso das bobinas gera campos magnéticos que interagem com os ímãs do rotor, fazendo com que ele se mova em incrementos.
  • Passo e Posicionamento: Cada vez que as bobinas são energizadas de uma certa maneira, o rotor se move um passo. A combinação de pulsos elétricos nas bobinas determina a direção e a quantidade de passos que o motor de passo realiza. Isso permite um controle preciso sobre a posição angular do rotor.
  • Sem Feedback de Posição: Motores de passo geralmente não têm feedback de posição integrado. Isso significa que o controlador deve ter informações precisas sobre o número de passos enviados para o motor para inferir a posição atual.

Em resumo, um motor de passo funciona convertendo pulsos elétricos em movimento angular preciso, proporcionando controle preciso sobre a posição sem a necessidade de um sistema de feedback externo. Essas características fazem dos motores de passo uma escolha popular em aplicações onde é importante ter um controle preciso sobre o posicionamento.

Como funciona o driver A4988?

O A4988 é um popular driver de motor de passo usado para controlar motores de passo bipolares. Ele fornece uma maneira eficiente de controlar a corrente e a polaridade das bobinas do motor, permitindo movimentos precisos

Como funciona o driver de motor de passo A4988

Aqui estão os principais aspectos de como funciona o driver de motor de passo A4988:

  • Controle de Corrente: O A4988 utiliza um método de controle de corrente chamado controle de corrente constante. Ele ajusta automaticamente a corrente nas bobinas do motor para um valor constante durante o funcionamento. Isso ajuda a otimizar a eficiência e a evitar o superaquecimento do motor.
  • Modulação por Largura de Pulso (PWM): O A4988 controla a intensidade da corrente nas bobinas do motor usando a modulação por largura de pulso (PWM). A largura do pulso do sinal de controle determina a quantidade de corrente fornecida ao motor.
  • Configuração da Corrente: O driver A4988 geralmente tem um trimpot (potenciômetro ajustável) para ajustar a corrente máxima do motor. A corrente é ajustada ajustando-se a tensão no pino de referência (REF).
  • Controle de Direção e Pulso: O A4988 utiliza dois pinos principais para controle: um para a direção (DIR) e outro para os pulsos (STEP). O pino de direção (DIR) determina a direção do movimento, e o pino de pulso (STEP) recebe pulsos para avançar o motor um passo.
  • Modos de Microstepping: O A4988 oferece diferentes modos de microstepping, como meio passo (1/2), quarto de passo (1/4), oitavo de passo (1/8), e assim por diante. O modo de microstepping é selecionado por meio de pinos específicos no driver.
  • Proteções: O A4988 inclui proteções contra sobretensão e contra correntes excessivas. Isso ajuda a proteger o motor e o driver contra danos.
  • Clock Interno: O A4988 tem um oscilador interno que gera os pulsos para controlar o motor. A frequência desse oscilador determina a velocidade do motor.

Ao utilizar o A4988, é importante seguir as especificações e configurações fornecidas no datasheet do dispositivo. Configurar corretamente os pinos de controle, ajustar a corrente conforme necessário e escolher o modo de microstepping apropriado contribuirá para o desempenho eficaz do motor de passo controlado pelo A4988.

Circuito Eletrônico do Driver A4988 e NEMA 17

Abaixo está o esquema de ligações para o circuito que utiliza o Driver Motor de Passo A4988 para controlar um Motor de Passo Nema 17:

Circuito eletrônico do driver de motor de passo A4988

As conexões realizadas são as seguintes:

Importante! Pinos RESET e SLEEP do driver A4988 estão conectados um ao outro (jumper marrom).

Driver Motor de Passo A4988 <-> Arduino Uno R4 WiFi
DIR <-> Pino 8
STEP <-> Pino 9
VDD <-> Pino 5V
GND <-> Pino GND

Driver Motor de Passo A4988 <-> Motor de Passo Nema 17
B2 <-> Cabo Azul
A2 <-> Cabo Vermelho
A1 <-> Cabo Preto
B1 <-> Cabo Preto

Driver Motor de Passo A4988 <-> Fonte DC Chaveada 12V
VMOT<-> Polo Positivo
GND <-> Polo Negativo

Configurando uma placa na Arduino Cloud

  1. O primeiro passo é logar na Arduino Cloud. Caso ainda não tenha uma conta cadastrada, você pode criar uma aqui.

 

  1. Na sequência, é necessário conectar o Arduino Uno R4 WiFi na Arduino Cloud. Para isso, vá em “Devices” e clique em “ADD DEVICE”.
  2. Depois, em “Setup Device”, selecione “Arduino board”.
  3. Caso você não tenha instalado o Arduino Create Agent em seu computador, a mensagem abaixo irá aparecer. Clique em “INSTALL” para continuar. 
  4. Depois que o Arduino Create Agent for instalado, a tela abaixo irá aparecer. Clique em “CONFIGURE”.
  5. Dê um nome para a sua placa.
  6. Na sequência, salve/copie as informações sobre o “Device ID” e “Secret Key”. Clique em “CONTINUE”.
  7. Aguarde as configurações do seu dispositivo serem concluídas. 
  8. Por fim, desconecte a placa do seu computador e conecte-a novamente para que o processo seja concluído corretamente. Clique em “CONFIRM”.

Pronto! A placa Arduino Uno R4 WiFi já está pronta para ser utilizada na Arduino Cloud

Criando uma Thing na Arduino Cloud

Agora precisamos criar as variáveis que estarão disponíveis no Dashboard. 

 

  1. Para isso, na Arduino Cloud clique em “Things” e depois em “CREATE THING”.
  2. Clique em “Select Device”.
  3. Depois, clique em “ASSOCIATE”.
  4. Na sequência, clique em “Configure”.
  5. Insira o nome e a senha da rede WiFi onde a placa está conectada. Também insira a “Secret Key” fornecida na etapa anterior. Clique em “SAVE”.
  6. Agora clique em “ADD” para adicionar uma variável.
  7. Configure a variável da seguinte maneira:
  • Name: SentidoAntiHorario
  • Type: Boolean
  • Declaration: bool sentidoAntiHorario
  • Variable Permission: Read & Write
  1. Clique em “ADD VARIABLE”.
  2. Repita o processo acima para a segunda variável:
  • Name: SentidoHorario
  • Type: Boolean
  • Declaration: bool sentidoHorario
  • Variable Permission: Read & Write
  1. Repita o processo acima para a terceira variável:
  • Name: Velocidade
  • Type: Integer Number
  • Declaration: int velocidade
  • Variable Permission: Read & Write

Pronto! Suas variáveis já estão configuradas.

Criando um Dashboard na Arduino Cloud

Agora precisamos configurar o dashboard onde os botões de controle do motor de passo estarão disponíveis.

 

  1. Para isso, na Arduino Cloud clique em “Dashboard” e depois em “CREATE DASHBOARD”.
  2. Clique em “ADD” e depois no widget Slider.
  3. Em “Name” digite Velocidade.
  4. Clique em “Link Variable”. Selecione a variável Velocidade e depois clique em “LINK VARIABLE”.
  5. Configure o range mínimo para 1 e máximo para 20
  6. Por fim, clique em “DONE”.
  7. Agora vamos repetir o processo acima para adicionar o botão para girar o motor no sentido anti-horário. Clique em “ADD” e depois selecione o widget Push Button.
  8. Em “Name” digite Sentido Anti-Horário
  9. Clique em “Link Variable”.
  10. Selecione a variável SentidoAntiHorario e depois clique em “LINK VARIABLE”.
  11. Por fim, clique em “DONE”.
  12. Agora vamos repetir o processo acima para adicionar o botão para girar o motor no sentido horário. Clique em “ADD” e depois selecione o widget Push Button.
  13. Em “Name” digite Sentido Horário.
  14. Clique em “Link Variable”.
  15. Selecione a variável SentidoHorario e depois clique em “LINK VARIABLE”.
  16. Por fim, clique em “DONE”.

Pronto! Seu dashboard já está configurado. Se desejar, você pode ajustar os widgets clicando no botão de ajuste.

Criando um Sketch na Arduino Cloud

O último passo é realizar o configuração do código que será carregado para a placa Arduino Uno R4 WiFi. Para isso, na Arduino Cloud clique em Sketches. Você verá que ao criar as variáveis, um sketch será criado automaticamente. Clique nesse sketch recém criado.

Criando sketch na Arduino Cloud

Apague todo o texto que está na área de edição e cole o código abaixo: 

// Programa: Controle de motor de passo Nema 17 com driver A4988
// Autor: Rosana Guse

// Adiciona as bibliotecas utilizadas no códig
#include "thingProperties.h"

// Define os pinos de ligação do driver A4988 com o Arduino
int pinoDIR = 8;
int pinoSTEP = 9;

// Define as variáveis utilizadas no código
int tempo = 500;

void setup() {

  // Inicia a comunicação serial
  Serial.begin(9600);
 
  // Aguarda 1,5 segundos para continuar
  delay(1500);

  // Conecta com o Arduino IoT Cloud
  initProperties();
  ArduinoCloud.begin(ArduinoIoTPreferredConnection);
  setDebugMessageLevel(2);
  ArduinoCloud.printDebugInfo();
 
  // Define os pinos DIR e STEp como saídas
  pinMode(pinoDIR, OUTPUT);
  pinMode(pinoSTEP, OUTPUT);
}

void loop() {
 
  // Atualiza as informações no Arduino IoT Cloud
  ArduinoCloud.update();
 
  // Faz o cálculo de tempo de pausa dos passos do motor de acordo com velocidade
  tempo = 10000/velocidade;
 
  // Verifica se o botão Sentido Horário foi acionado para girar o motor neste 
  sentido
  if (sentidoHorario == HIGH) {
    digitalWrite(pinoDIR, HIGH);
   
    for (int i = 0; i <= 200; i++) {
      digitalWrite(pinoSTEP, HIGH);
      delayMicroseconds(tempo);
      digitalWrite(pinoSTEP, LOW);
      delayMicroseconds(tempo);
    }
  }
    // Verifica se o botão Sentido Anti-Horário foi acionado para girar o motor neste 
   sentido
  if (sentidoAntiHorario == HIGH) {
    digitalWrite(pinoDIR, LOW);
   
    for (int i = 0; i <= 200; i++) {
      digitalWrite(pinoSTEP, HIGH);
      delayMicroseconds(tempo);
      digitalWrite(pinoSTEP, LOW);
      delayMicroseconds(tempo);
    }
  }
}
void onSentidoHorarioChange()  {
}
void onSentidoAntiHorarioChange()  {
}
void onVelocidadeChange()  {
}

Depois clique em “Upload and Save”. Aguarde o upload ser finalizado.

Funcionamento do Driver A4988

Para colocar o circuito em funcionamento, é necessário ligar a placa Arduino Uno R4 WiFi em uma fonte de alimentação e também alimentar o motor de passo através do driver A4988 utilizando uma fonte de 12V

No dashboard, é possível controlar a velocidade e a direção de rotação (sentido horário ou anti-horário) do motor de passo. 


Se você tiver dúvidas, sugestões ou experiências para compartilhar, fique a vontade para deixar um comentário abaixo. E para não perder nenhum conteúdo como este, não deixe de nos seguir no Instagram.

Faça seu comentário

Acesse sua conta e participe