Controlando motor de passo bipolar módulo Easydriver com Arduino

Neste post veremos como controlar motores de passo de uma maneira muito simples com o Módulo Motor de Passo Easydriver com Arduino.

O Easydriver é um módulo feito para controlar motores de passo bipolares de 4, 6 ou 8 fios. Funcionou perfeitamente para controlar um motor de 12 v que eu havia retirado de uma impressora antiga e estava esquecido na gaveta. 🙂

Controlado pelo CI A3967, o módulo não funciona apenas com 12 volts: a tensão de entrada pode ser de 7 à 30 volts. A comunicação com o microcontrolador é feita por meio de apenas 3 pinos: um para o controle de passo, outro para a direção e o terceiro vai ligado ao GND.

A tensão do nível de sinal também é ajustável, podendo ser tanto 3.3v como 5v, bastando para isso fechar o contato SJ2 no lado esquerdo da placa. Isso permite que o módulo seja usado tanto em projetos que utilizem o Arduino Uno ou Mega (nível de sinal de 5v), como o Arduino Due (nível de sinal de 3.3v).

Veja na imagem abaixo com o detalhe da pinagem que essa placa permite ainda o controle dos micropassos do motor (utilizando os pinos MS1 e MS2), possui uma saída de 5v para alimentar algum outro circuito/sensor, além do potenciômetro no lado esquerdo para controle da corrente fornecida ao motor.

No site oficial do desenvolvedor (http://www.schmalzhaus.com/EasyDriver/), você encontra  informações completas sobre todas as funcionalidades dessa placa.

Conexão módulo Easydriver com Arduino

Para testar o motor de impressora esquecido na gaveta, eu fiz a seguinte ligação com um Arduino Uno:

Antes de ligar o motor, eu precisava descobrir quais eram os pares das bobinas. No meu caso, o motor tinha 4 fios e simplesmente utilizei o multímetro e segui as instruções desse site. Ali é explicado o procedimento para motores bipolares, unipolares e híbridos.

O programa abaixo gira o motor por uma volta completa, e depois faz a mesma coisa no sentido inverso. Ajuste o programa para o número de passos do seu motor alterando a variável passos_motor no início do programa. 

Como utilizamos apenas dois pinos do Arduino para enviar ao módulo os valores dos passos e da direção, não precisamos carregar nenhuma biblioteca especial.

// Programa : Controle de motor de passo com Easydriver
// Autor : Arduino e Cia

// Pinos conectados ao Step e Dir do Easydriver
int pino_passo = 5;
int pino_direcao = 4;

int direcao = 1;

// Quantidade de passos para uma volta completa
// Ajuste de acordo com o seu motor
int passos_motor = 360;

void setup() 
{
  // Define os pinos como saida
  pinMode(pino_passo, OUTPUT);
  pinMode(pino_direcao, OUTPUT);
}

void loop()
{
  // Define a direcao de rotacao
  direcao = 1;
  digitalWrite(pino_direcao, direcao);
  for (int p=0 ; p < passos_motor; p++)
  {
    digitalWrite(pino_passo, 1);
    delay(1);
    digitalWrite(pino_passo, 0);
    delay(1);
  }
  delay(1000);
  
    // Inverte a direcao de rotacao
  direcao = 0;
  digitalWrite(pino_direcao, direcao);
  for (int p=0 ; p < passos_motor; p++)
  {
    digitalWrite(pino_passo, 1);
    delay(1);
    digitalWrite(pino_passo, 0);
    delay(1);
  }
  delay(1000);
}

Gostou? Confira outros posts sobre motores aqui mesmo no Arduino e Cia!

5/5 - (2 votos)

Related posts

Como medir a rotação de um motor com o sensor de velocidade LM393

by Arduino e Cia
9 anos ago

Como usar motor DC com encoder no Arduino

by Arduino e Cia
8 anos ago

Controlando motor de passo 28BYJ-48 com o Arduino Motor Shield L293D

by Arduino e Cia
10 anos ago
Sair da versão mobile