Como utilizar o EasyDriver para controlar motor de passo

Controlar um motor de passo é bastante simples, já escrevi alguns artigos a respeito, como esse, que é um modo mais direto,  mas exige um bocado de jumpers ou solda. Atualmente tenho preferido utilizar drivers porque é muito prático, principalmente para prototipagem e procurando por um controlador, acabei encontrando o EasyDriver que, apesar do nome, não é tão “Easy” assim se for utilizar todos seus recursos. O básico sim, bastante direto, então começaremos por esse modo, porque estou trabalhando em um longo e interessante artigo  e uma das etapas é justamente controlar alguns motores. Aí entra a questão; Como utilizar o EasyDriver adequadamente?



Como utilizar o EasyDriver?

Primeira coisa a fazer, identificar os pinos. abaixo temos o pinout. Clique na imagem para vê-la em tamanho grande.

como utilizar o EasyDriver - pinout
como utilizar o EasyDriver – pinout

Em detalhes, da esquerda para a direita:

LED 5V

LED informativo da alimentação 5V.

Nível lógico

Por padrão, 5V. Se você quiser trabalhar com nível lógico 3V3 nos pinos, faça a solda nesse ponto para habilitar o divisor de tensão.

Motor de passo

B1 e B2 são as respectivas bobinas do motor de passo.

Power OUT e jumping ao lado

Se desejar sair com 5v usando até 50mA, utilize esses pinos. Para tal, você deverá soldar o jumping ao lado direito dele. Se mantê-lo aberto, você pode utilizá-lo como entrada de tensão para alimentar o circuito.

PFD

Nas especificações técnicas parece um bocado complicado, mas não precisaremos utilizá-lo, por sorte.

Reset

Reset.

Sleep

Você pode deixar o EasyDriver dormindo até que seja  necessárioe certamente será. Quando você coloca o EasyDriver em sleep, nem a controladora e nem o motor de passo esquentam. No projeto atual que estou desenvolvendo, fiz justamente isso, acompanhe os próximos artigos.

Enable

Inicialmente, esse pino está no nível lógico baixo. Se colocar em HIGH, desabilitará todas as saídas de frenagem do motor. Por padrão não será necessário fazer wiring nesse pino, mas adiante eu descrevo sua utiização.

Micro passo 1 e 2

Esses pinos controlam o modo micro passo. As configurações possíveis para esses pinos são full step (0,0), half step (1,0), 1/4 step (0,1), and 1/8 step (1,1 : default):

 

 Micro Step 1   Micro Step 2   Resolução
LOW LOW Passo completo
HIGH LOW Meio passo
LOW HIGH 1/4 de passo
HIGH HIGH 1/8 de passo (padrão)

Power IN

Você deve entrar com uma tensão mínima de 7V e máxima de 30V. O driver trabalha fornecendo correntes entre 150mA e 750mA, então não use uma fonte ordinária,ainda mais se precisar de torque.

GND, passo e direção

O GND deverá ser comum à controladora. Um pino para controlar os passos e o outro para controlar a direção. Mostrarei  detalhes mais adiante.

Detalhes e cuidados

O controle de corrente é ajustável entre 150mA e 750mA por fase. Eu vou utilizar o EasyDriver com um motor de passo 12V e vou utilizar uma fonte chaveada 12V@30A, porque é a que tenho mais próximo.

Identificar as bobinas do motor

Para identificar as bobinas do motor bipolar, use um multímetro e procure a resistência mais baixa para identifcar um par. Os dois fios restantes só poderão ser o outro par.

Wiring

No modo de operação básica, os fios GND, passo e direção (do canto inferior direito) devem ser conectados. Os pares de cada bobina devem ser ligados em qualquer ordem, mas ambos os pares devem ser ligados com a mesma lógica. Meu motor tem os fios vermelho, verde, amarelo e azul. Eu conectei azul com amarelo e vermelho com verde.

Alimentação (externa)   Motor  Arduino   EasyDriver
pino 7 direção
pino 8 passo
bobina 1 fio 1 B1 1
bobina 1 fio 2 B1 2
bobina 2 fio 1 B1 1
bobina 2 fio 2 B2 2
GND GND ao lado do passo
7V até 30V Power IN, pino da esquerda
negativo Power IN, pino da direita

código de operação básica

No modo básico, tudo o que você precisa fazer é definir os pinos para direção e passo. No caso dos passos é bastante simples de entender, bastando selecionar o número de passos desejado para o loop.

A direção é selecionada pelo estado do respectivo pino, sendo 0 ou 1. O número de passos do motor de estou utilizando é 200 por volta, dando algo em tornode 1.8 graus por passo. Um código básico de exemplo para um teste inicial, fazendo o motor girar em ambas as direções, seria:

Código de operação com controle de micro step

Não tem nada de mais nesse código, apenas adicionaremos  2 outros jumpers no wiring e conforme a tabela supracitada, faremos o controle de todas as maneiras disponíveis para ver como o motor reage a cada configuração. Ao código, devemos adicionar  os controles de MS1 e MS2. Utilizei os pinos 4 e 5 para MS1 e MS2, respectivamente.

Motor de passo esquentando

Mais acima citei a utilização do pino Enable para frenagem do motor de passo. isso significa que quando o estiver utilizando em uma CNC, provavelmente querará que o motor não se desloque enquanto aguarda em uma posição. O comportamento padrão do EasyDriver é mantê-lo travado em sua posição e quando nesse estado, é comum o motor aquecer bastante, podendo chegar aos 70 graus ou mais, dependendo do controle de corrente. E é por isso que o EasyDriver é um dos melhores drivers para controle de motores de passo, já que ele fornece o controle de corrente do motor, e assim você consegue diminuir a temperatura dos componentes em operação.




Você pode pensar: “O motor de passo da impressora não esquenta”. Verdade, e isso se dá ao fato de que  a impressora possui um encoder para fazer o alinhamento da cabeça de impressão, portanto o motor retorna ao seu ponto de descanso e encerra sua tarefa, já que sua memória de posicionamento se baseia no encoder. Para trabalhar desse modo, basta modificar o comportamento do EasyDriver através do pino Enable. Na configuração, utilizei o pino 3 do Arduino no pino Enable do EasyDriver, daí  compilei o seguinte sketch:

 

Torque do motor

Se você precisar  de torque, deverá aumentar  a corrente. Faça-o gradativamente e veja o ponto ideal para evitar superaquecimento do motor, ainda mais se estiver utilizando-o no modo de frenagem do eixo.

Outro modo de controlar um motor de passo bipolar

E se quiser utilizar algo mais simples, sugiro esse outro  artigo relacionado a esse motor de passo, utilizando uma ponte H L293D.

Motor de passo unipolar

Se você tem um desses motores de passo baratinhos unipolar, o artigo relacionado a ele pode ser encontrado nesse link, onde faço uma introdução.

No artigo sobre o robô seguidor de linha, utilizei esse motor unipolar para movimentar a polia. O robô foi todo feito com palitos de sorvete, por isso acredito que seja no mínimo uma leitura interessante.

Onde comprar

Esse módulo adquiri com um parceiro de longa data, Fulltronic, através desse link. A lista de produtos dele é sempre bem atrativa.

Video demonstrativo dos controles do motor de passo bipolar

Esse video  não tem absolutamente nada,  apenas a demonstração do funcionamento do motor com 1 passo, 1/2 passo, 1/4 de passo e 1/8 de passo utilizando  todos os recursos descritos anteriormente. Testei ele com modo de frenagem e 150mA  e ele esquenta de maneira assustadora. Para o video, utilizei o modo livre, que praticamente não chegou a ficar morno. Alías, se eu não soubesse que o motor é gelado, não  teria percebido que  ele esquentou um pouco.

 

1 Star2 Stars3 Stars4 Stars5 Stars (442 votes, average: 5,00 out of 5)
Loading...

Inscreva-se no nosso newsletter, alí em cima à direita e receba novos posts por email.

Siga-nos no Do bit Ao Byte no Facebook.

Prefere twitter? @DobitAoByte.

Inscreva-se no nosso canal Do bit Ao Byte Brasil no YouTube.

Nossos grupos:

Arduino BR – https://www.facebook.com/groups/microcontroladorarduinobr/
Raspberry Pi BR – https://www.facebook.com/groups/raspberrybr/
Orange Pi BR – https://www.facebook.com/groups/OrangePiBR/
Odroid BR – https://www.facebook.com/groups/odroidBR/
Sistemas Embarcados BR – https://www.facebook.com/groups/SistemasEmbarcadosBR/
MIPS BR – https://www.facebook.com/groups/MIPSBR/
Do Bit ao Byte – https://www.facebook.com/groups/dobitaobyte/

Próximo post a caminho!

Comments

comments

Djames Suhanko

Djames Suhanko é Perito Forense Digital. Já atuou com deployer em sistemas de missão critica em diversos países pelo mundão. Programador Shell, Python, C, C++ e Qt, tendo contato com embarcados ( ora profissionalmente, ora por lazer ) desde 2009.