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!