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!
Bom dia!
Como faço pra usar a Easy Driver em um motor de passo de 6 fios?
Boa tarde Ricardo !
Eu não tenho nenhum motor de 6 fios aqui para testar o código, mas creio que você possa usar as informações desse link para ligação do motor :
http://www.schmalzhaus.com/EasyDriver/
Procure pela questão Q5.1, lá tem o esquema de ligação.
Abraço !
Será necessário usar uma ponte H Ln298
como utilizo a ponte h l 298 nesse driver?
Abandona os dois fios comuns do Unipolar (6 fios) e utiliza os quatro restantes.
Para encontrar as boninas basta ficar com os fios que derem maior resistência.
Com unipolar (5 fios) vai ter que abrir para desfazer as ligações.
Você pode ignorar os fios comuns no motor unipolar (6 fios) escolha os pares de fios que tem mais resistência.
Nos motores unipolar de 5 fios você terá de abrir o motor desfazer as ligações dos fios comuns e pronto.
Bom dia Amigo!
Consegui colocar o motor pra rodar, mas como posso alterar a velocidade do motor de passo com sua programação?
Boa tarde Ricardo,
Eu ainda não testei, mas no site do desenvolvedor tem um exemplo com a biblioteca AccelStepper, com controle de velocidade (veja o exemplo 3 – Using a pre-built library – AccelStepper) :
http://www.schmalzhaus.com/EasyDriver/Examples/EasyDriverExamples.html
Abraço !
Bom dia! Para que possa direcionar o sentido de rotação do motor de passo, através de botões e até mesmo acrescentar mais motores como seria o esquema é como ficaria o código fonte…
Boa noite Jorge,
Tudo vai depender do seu projeto e do motor utilizado, mas você pode usar os exemplos que eu tenho no site, como esse, em que eu controlo o sentido de um motor de passo 28BYJ-48 com botôes :
http://www.arduinoecia.com.br/2013/11/ligando-motor-de-passo-28byj-48-e.html
Abraço !
Qual o maior motor de passo bipolar posso usar com essa easydriver?
Boa noite,
Segundo informações do fabricante, o easydriver é capaz de fornecer até 750mA por bobina do motor.
Abraço !
Boa Noite
Tem como eu controlar este motor de passo com um potenciometro, ou seja girando o potenciometro para direita o motor gira para direita e vice versa!!
Abrs!!
Boa noite,
Por favor dê uma olhada neste artigo, onde eu faço esse controle com um potenciômetro e um servo. Você pode adaptar o programa para fazer a mesma coisa com o motor de passo:
http://www.arduinoecia.com.br/2013/06/controlando-um-servo.html
Abraço !
Boa tarde! Estou fazendo um projeto utilizando arduino e Easydriver e gostaria de saber qual site ou software vocês utilizaram para ilustrar os circuitos de ligação dos componentes.
Abraços !
Bom dia Matheus,
Usamos o Fritzing, disponível para download neste link: http://fritzing.org/download/
Abraço!
excelente tutorial. ahora mismo empiezo a programar una imagen.
Sigue así , personas como tu es que se necesitan para progresar.
Gracias Ender !
Saludos ! 🙂
Boa tarde Amigos, não estou conseguindo fazer a programação para um motor de 6 fil…
alguém pode me Ajudar, por favor.
bom dia amigo rafael, os motores de 6 fios normalmente são bipolares, no caso tem 2 bobinas com 3 fios cada, sendo 1 central e os outros dois as extremidades da bobina, com um multimetro na escala de continuidade você mede os fios aqueles de derem contuidade são da mesma bobina, entre eles o que der menor impedância e o central, ai e so você ligar os dois que deram maior contuidade e ignorar o central ai você terá uma ligação de 4 fios.
de uma olhada nesse video: https://youtu.be/CH5FVfvjG-U
espero ter ajudado
Como o Ricardo mencionou acima vá até http://www.schmalzhaus.com/EasyDriver/
Procure pela questão Q5.1, lá tem o esquema de ligação.
Abraço !
Boa Tarde. Eu estou tentando fazer um motor de passos rodar com este esquema; entretanto o meu motor de passos, possui 5 fios e sinceramente, não sei como fazê-lo rodar. Tente por este método, mas o IDE do arduino diz que não está carregando a placa. Gostaria de alguma ajuda. Agradeço.
Boa noite,
Esse driver só vai funcionar com motores de 4, 6 ou 8 fios.
Abraço!
Boa noite como faço para configurar os passos em passo completo meio passo um quarto de passo e oitavo, nos pinos ms1 e ms2 devo aterrar ou usar jamper mas onde eu ligo qual a tensão para esses pinos?
Oi Rubens,
Vc está usando o Arduino ? tente 3.3V, seguindo essa tabela:
MS1/MS2
0,0 full step
1,0 half step
0,1 1/4 step
1,1 1/8 step
Abraço!
amigos pesquisei bastante e nao achei como faço para mudar a resolução dos passos ligo o ms1 e ms2 aonde
Boa noite,
Aplique tensão (3,3V) ou aterre os pinos, seguindo a tabela abaixo:
MS1/MS2
0,0 full step
1,0 half step
0,1 1/4 step
1,1 1/8 step
Abraço!
Olá amigo, por gentileza, como ficaria o código para, por exemplo, usar um sensor de presença – sendo que, ao se passar na frente do sensor, o motor gire X graus ou usasse uma chave de fim de curso e após, o motor volte a sua posição original. Muito obrigado
Bom, dia, como faço para utilizar um motor de passos de 5 fios com um easy driver v4.4?
Meu motor é de 06 fios. Os fios Centrais são AMARELO e BRANCO. Eu preciso junta-los para que o motor gire corretamente. Mas em todos os tutorias ensina a não junta-los. Como posso fazer funcionar sem eles estarem juntos?
Olá,
Estou começando no mundo do arduino e gostaria de saber se posso usar o Easydriver para controlar uma CNC feita a partir de drivers de CD/DVD.
Abs
Olá amigo gostaria de saber como faria para usar controlar 2 motores o que eu deveria mudar no texto agradeço se poder me der dica
Bom dia gostaria de controlar 2 motores com esse tópico o que devo modificar no texto de comando
Olá, meu motor tem 4 volts tem como usar esse driver?
Boa noite,
Infelizmente não. A alimentação do motor é de 7 à 30 V.
Abraço!
Ola bom dia eu estava msm procurando isso alias excelente explicação ,mas estou com um problema meu motor é de 8 fios como posso ligar ele neste esquema
tenho o arduino e esta msm placa driver e o motor é um lema 23 5v 1A com os fios Amarelo e amarelo listrado ; vermelho e vermelho listrado ;laranja e laranja listrado ;preto e preto listrado
Preciso muito de ajuda por favor se alguem poder me ajudar agradeço
boa noite, gostaria de esclarecer uma dúvida. Nas linhas de programação 28 a 31, eu percebo que para cada passo dado, existe um tempo (delay) de parada, como se fosse uma sequência intermitente. Qual seria o motivo dessa intermitência, obrigado
Boa noite amigo, como posso colocar um led quando o motor estiver parado ?
Gostaria de saber se posso usar o easy driver com um esp8266 nodemcu. Parabéns pelo trabalho.
Bom dia,
Não usei o easydriver com o Nodemcu, mas seria um bom teste. Vamos ver se os outros leitores do blog conseguem te ajudar.
Abraço!
Adilson
Boa noite, posso usar este driver num motor de 5v 50ma?
Oi Iuri,
Pode sim. 🙂
Abraço!
Adilson
boa noite como posso usar esse seu projeto para rodar com um no 8051 em c
Oi Hermes,
Essa vou ficar te devendo. Vamos ver se os outros leitores do blog te ajudam.
Abraço!
Adilson
excelente. funcionou perfeitamente
Valeu Matheus, Abraço!
Adilson