Capa Como usar Motor de Passo com Driver A4988

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

Os motores de passo são componentes extremamente úteis na robótica, permitindo controle preciso da velocidade e ângulo da movimentação. Neste post, veremos como controlar um motor de passo com auxílio do driver A4988 de forma simples usando o Arduino.

Motor de Passo com Driver A4988

Materiais Necessários

Para montagem do circuito de teste, utilizaremos os seguintes componentes:

Circuito do Motor de Passo com Driver A4988 e Arduino Nano

A montagem do circuito deve ser feita conforme a imagem e a tabela abaixo. É importante que os pinos RESET e SLEEP do driver estejam conectados juntos para que ele funcione corretamente.

Motor de Passo com Driver A4988

Arduino A4988 Motor Fonte 12V
VIN VMOT Positivo (+)
5V VDD
GND GND Negativo (-)
D2 DIR
D3 STEP
2B 1
2A 2
1A 3
1B 4

Para mais informações sobre o funcionamento de um motor de passo acesse o post O que é motor de passo? Entenda seu funcionamento e aplicações.

Opções

Podemos utilizar os pinos MS e o potenciômetro presentes no driver para alterar os modos de operação e a corrente fornecida para o motor.

Modo MS1 MS2 MS3
Passo Completo LOW LOW LOW
½ Passo HIGH LOW LOW
¼ Passo LOW HIGH LOW
⅛  Passo HIGH HIGH LOW
1/16 Passo HIGH HIGH HIGH

Podemos usar a fórmula abaixo para determinar o valor da corrente I limitada a partir da tensão V medida sobre o potenciômetro.

Motor de Passo com Driver A4988

Código

No código abaixo controlamos a direção de rotação pelo estado do pino DIR e comandamos que o motor realize um passo alterando o estado do pino STEP para HIGH, esperando 500 microssegundos e alterando o estado para LOW.

/*
  #--------------------------#
  |       Driver A4988       |
  |      Motor de Passo      |
  |       Ítalo Coelho       |
  #--------------------------#
*/

const int DIR   = 2;
const int STEP  = 3;

void setup() 
{
  pinMode(DIR , OUTPUT);
  pinMode(STEP, OUTPUT);
}

void loop() 
{
  //Define sentido de Rotação
  digitalWrite(DIR, LOW);

  //Realiza uma volta completa
  for(int i = 0; i < 200; i++)
  {
    //Realiza um Passo
    digitalWrite(STEP, HIGH);
    delayMicroseconds(500);
    digitalWrite(STEP, LOW);
    delayMicroseconds(500);
  }

  delay(1000);

  //Muda o sentido de Rotação
  digitalWrite(DIR, HIGH);

  //Realiza uma volta completa
  for(int i = 0; i < 200; i++)
  {
    //Realiza um Passo
    digitalWrite(STEP, HIGH);
    delayMicroseconds(500);
    digitalWrite(STEP, LOW);
    delayMicroseconds(500);
  }

  delay(1000);
}

Gostou de aprender como controlar um motor de passo utilizando o Driver A4988? Deixe um comentário aqui embaixo nos contando o que achou. Se ficou com alguma dúvida ou quiser compartilhar o resultado do seu projeto, acesse a Comunidade do Facebook.

Faça seu comentário

Acesse sua conta e participe