Hoje vou mostrar um driver de
motor de passo. Especialmente, neste vídeo, vamos tratar do Driver A4988, mas pretendo falar mais para
frente do “irmãozinho mais atualizado” dele, que é o DRV8825. Através destes dois modelos, vocês vão começar a entrar no
mundo da mecatrônica de verdade, da robótica real, onde você comanda com
precisão e com força o motor de passo. Então, é nesse mundo que vocês vão
começar a entrar agora. Eu vou começar a gravar vários vídeos mostrando a
mecatrônica profissional. Quero mostrar o fuso
de esfera, uma série de dispositivos, e depois vocês vão recombinar isso
tudo para poder fazer a sua própria máquina
CNC.
Driver A4988 |
DRV8825 |
Mas, falando da montagem de
hoje, é o motor de passo ligado no Driver A4988, utilizando somente dois pinos
do Arduino Uno (Para aqueles que
estão bravos comigo porque dizem que só gravo ESP... Hoje estou usando o
Arduino Uno!). Coloquei uma fonte regulável só pra me fornecer a tensão para o motor DC.
Então, é isso, a gente usa um
componente eletrônico, como um capacitor
eletrolítico de 220uF, nosso driver e o nema 17, que é o motor, o qual é muito utilizado, por exemplo, senão
o mais utilizado em impressoras 3D.
Datasheet
Arduino Uno |
A4988 |
Deixo aqui o Datasheet do Arduino Uno e também do Datasheet
do A4988. Este segundo tem a mesma pinagem do DRV8825. A diferença é que, na
hora de encaixar ele na placa é preciso inverter a parte de cima, pois ambos
têm potenciômetros, mas em lados distintos.
O Driver A4988 é muito legal,
pois funciona tanto com 3v3 quanto com 5 volts. Dá pra usar também com ESP. Ele
tem duas tensões. Uma que alimenta o microcontrolador interno dele e também a
tensão que ele joga para o motor que vai até 35 volts por 2A de corrente máxima
por fase ou corrente contínua por fase de 1A. A tensão de operação mínima
costuma ser de 8 volts. Ele tem vários modos de passo, mas, hoje, vamos optar
por fazer o modo “Completo”. Em breve, quero fazer um outro vídeo detalhando quais
os outros recursos desse driver.
Quanto à pinagem A4988, ele
tem a alimentação do motor, a alimentação lógica, as conexões de ligação das
bobinas e depois tenho os modos de operação: Reset, Sleep, os quais não vamos
aprofundar hoje, além do Step e Dir, que serão ligados no Arduino Uno.
Nema 17
Quem não tem o Nema 17 pode usar outro desde que seja
Bipolar. Neste caso, o motor unipolar não funciona. Tem que ser o bipolar de
quatro fios. O capacitor eletrolítico utilizado é um componente simples,
passivo.
Montagem
No vídeo mostro para vocês o
esquema da montagem no protoboard. Em
caso de dúvida da pinagem é só olhar no datasheet do A4988. No meu caso, para
não jogar 5 volts, eu liguei o arduino direto no meu computador.
Driver de Passo A4988
Esse componente, o A4988, ele
tem um Trimpot, que é uma espécie de potenciômetro bem pequeno.
Então, você
precisa regular esse dispositivo. Como? Você tem que pegar a seguinte equação:
VRef = Lc x 8 x Rs
A VRef é a tensão de
referência.
Rs: valor correspondente aos resistores da placa.
Veja abaixo:
Para facilitar, deixo aqui a
calculadora que já vai calcular automaticamente a tensão de referência pra você.
Calculadora
Driver de Passo A4988
Quanto ao componente, temos o potenciômetro que poderá ser controlado apenas com uma chave Philips bem pequena. Existem ainda dois componentes SMD, que são resistores. Eles indicam R100, que é a nomenclatura, indicando que o valor dele é 0,1.
No vídeo coloco um exemplo, que está aqui abaixo:
VRef = 0,598
Rs = 0,10 (nossa placa tem R100)
Aplicando na fórmula:
Limite da Corrente = 0,598 / (8 * 0,10)
Limite da Corrente = 0,75A
Não temos uma precisão muito grande nesse valor de corrente, mas funciona para limitar a corrente em cima do motor. Por que eu tenho que fazer isso, afinal? Porque, muitas vezes, se você for utilizar um motor de menores proporções, sem limitação da corrente, você vai queimar esse equipamento.
Rs = 0,10 (nossa placa tem R100)
Limite da Corrente = 0,75A
Exemplo
No nosso exemplo do vídeo a gente faz um ciclo completo de 200 passos em uma direção e, em seguida, a gente faz dois ciclos completos de 400 passos. Lembrando que, cada passo é 1.8 grau, que são 200 passos, o suficiente para dar uma volta completa. Trabalhamos com o motor no Full Step Mode.
Na montagem, o Arduino Uno é ligado no driver A4988 que, por sua vez, está ligado no motor de passo, que já fica funcionando porque o nosso programa fica em Loop. Ele gera um loop de 200 passos para um lado e 400 passos para o outro. A fonte eu alimentei com 12 volts e ela mostra a corrente que está consumindo o circuito. Então, vocês podem ver que, com 12 volts, o driver está puxando em torno 200 miliampere.
Código
Começamos definindo as
constantes que utilizaremos para indicar os pinos STEP e DIR do driver. Em
seguida na função SETUP, vamos configurá-los como pinos de saída.
// define números de pinos do driver no arduino const int stepPin = 3; const int dirPin = 4; void setup () { // Define os dois pinos como Saídas pinMode (stepPin, OUTPUT); pinMode (dirPin, OUTPUT); }
Loop
Na função loop(), vamos
fazer as chamadas para girar o motor. Primeiro uma sessão de 200 iterações para
girar 1 ciclo completo em uma direção, depois 400 para girar 2 ciclos completos
na direção contrária.
void loop() { // permite que o motor se mova em uma direção particular digitalWrite(dirPin, HIGH); // faz 200 pulsos para fazer uma rotação de ciclo completo for(int x = 0; x < 200; x++) { digitalWrite(stepPin,HIGH); delayMicroseconds(500); digitalWrite(stepPin,LOW); delayMicroseconds(500); } delay(1000); //1 segundo de delay para inverter a direção
Abaixo vemos a continuação da
função loop(), onde faremos 2 ciclos completos com o motor.
//Muda a direção da rotação digitalWrite(dirPin,LOW); // faz 400 pulsos para fazer duas rotações de ciclo completo for(int x = 0; x < 400; x++) { digitalWrite(stepPin,HIGH); delayMicroseconds(500); digitalWrite(stepPin,LOW); delayMicroseconds(500); } delay(1000); //1 segundo de delay para inverter a direção
Faça o download dos arquivos:
16 Comentários
Boa noite!
ResponderExcluirEu estou iniciando neste universo do arduino, eu tenho um arduino mega 2560, da pra usar ele nesta aplicação citada acima?
Desde já obrigado
sim
Excluirpara que servem os pinos sleep e reset
ResponderExcluireu nao entendi a parte do conector do motor na protoboard, você descascou o conector original que vem no motor pra encaixar na protoboard ou você usou um adaptor?
ResponderExcluirBoa noite. Gostaria de saber se é possipos utilizar o drive A4988 com um motor nema 17 com uma corrente de 1.5A por fase? Usando um cooler é possível ter um bom rendimento do drive e motor?
ResponderExcluirMuito bem detalhado!
ResponderExcluirporque vce usa capacitor?na minha montagem usei fonte de 12vlts e o capacitor estourou:)
ResponderExcluirusei uma fonte de 9vlts dai rodou tranquilo porem o motor nema 17 nao esta com tanta força quando seguro o eixo dele
Fernando, seu material é excelente. Didática de mestre! Parabéns!
ResponderExcluirNesta programação e ligação, o motor fica dando um "tec tec" e não gira, o que fazer?
ResponderExcluirconfere as fases do motor, se ele trava e nao gira as fases podem estar conectadas erradas
ExcluirAntes de mais nada, meus parabéns pelo trabalho!
ResponderExcluirEstou com duvida no calculo do Vref para um motor Nema 17 modelo 17HS4401, de 1.8 A 0.53 N.m funcionar em 4 etapas (1/4) com driver A4988. A conta certa a se fazer é:
Vref = Im x Rs x 8 => 1,8 x 0,1 x 8;
Vref = 1,44
Como eu posso adicionar 2 botões para controlar o sentido de rotação do motor
ResponderExcluirParabéns, simples e objetivo!
ResponderExcluirlegal, mas qnd vou fazer a regulagem do trimpot ele chega no max 0,30 não aumenta alem desse valor, por que sera?
ResponderExcluirEste comentário foi removido pelo autor.
ResponderExcluirProfessor, adorei o seu vídeo mas não consi fazer meus motor funcionar de jeito nenhum. Pode me dar um auxilio?
ResponderExcluir