LOJA FÍSICA
Praça Mauá, 4541 - Sala 22
09580-050 - São Caetano do Sul / SP
CENTRAL DE ATENDIMENTO
(11) 3522-7626
info@robocore.net
HORÁRIO DE FUNCIONAMENTO
De segunda à sexta das 9:00 às 19:00
Retornar
ao topo

Driver de Motor de Passo A4988


Quantidade:
Formas de pagamento:
  • Pague em até 12x no cartão
  • Pague através do PayPal
  • Pague por Boleto Bancário

Esta placa possui um chip fácil de usar da Allegro A4988, para motores de passo bipolares e trata-se de uma evolução da A4983.

A diferença desta placa para a placa com A4983, é que esta possui proteção controle sobre-corrente, e possui um resistor interno de pull-down de 100k no pino de seleção MS1, mas é virtualmente idêntica a placa com A4983.

A placa vem com uma pequena barra de pinos e o usuário deve soldá-la.

Atenção: Conectar ou desconectar motores de passo com o driver ligado pode destruí-lo! Antes de mais nada, desligue a alimentação do driver.

Atenção: Esta placa pode ficar quente a ponto de queimar o usuário. Tome muito cuidado ao utilizá-la.

Confira como obter a resolução dos passos pela tabela abaixo:

MS1 MS2 MS3 Resolução
Low Low Low Passo total
High Low Low Meio passo
Low High Low Quarto de passo
High High Low Oitavo de passo
High High High Dezeseis avos de passo

Veja o esquema de ligação nas fotos do produto.

Documentação:


Para fazer comentários é necessário estar logado. Efetuar login.

Você ainda nao é cadastrado? Cadastre-se agora!


Heloiso
date Enviado: 2017-08-10 16:59:21
com resistor pullup externos nos botões de 3,3k para a entrada de 3,3v do arduino ... 
Valeu .

Heloiso
date Enviado: 2017-08-10 16:54:53
FALA GALERA ! 

Muito obrigado pela ajuda . 
Problema resolvido . 
Mudei a Biblioteca para a AccelStepper.h 
Agora ficou show . 

#define DISTANCE 2700 
 
 int StepCounter = 0; 
 int Stepping = false; 
 
 void setup() { 
 pinMode(8, OUTPUT); 
 pinMode(9, OUTPUT); 
 digitalWrite(8, LOW); 
 digitalWrite(9, LOW); 
 
 pinMode(2, INPUT); 
 pinMode(3, INPUT); 
 } 
 
 void loop() { 
 if (digitalRead(3) == LOW && Stepping == false) 
 { 
 digitalWrite(8, LOW); 
 Stepping = true; 
 } 
 if (digitalRead(2) == LOW && Stepping == false) 
 { 
 digitalWrite(8, HIGH); 
 Stepping = true; 
 } 
 
 if (Stepping == true) 
 { 
 digitalWrite(9, HIGH); 
 delay(1); 
 digitalWrite(9, LOW); 
 delay(1); 
 
 StepCounter = StepCounter + 1; 
 
 if (StepCounter == DISTANCE) 
 { 
 StepCounter = 0; 
 Stepping = false; 
 } 
 } 
 }

ViniDj
date Enviado: 2017-08-10 17:23:30
Heloiso
Ficamos felizes que tenha consigo resolver o problema!

Heloiso
date Enviado: 2017-08-09 00:31:21
Entendi a lógica ... 
Vou tentar modificar essa Sketch ... 
Muito obrigado  ....

Heloiso
date Enviado: 2017-08-08 16:16:47
Fala François ! 

Sou iniciante em Arduino ... 
Infelizmente eu não sei qual variável auxiliar usar e exatamente aonde (na sketch) , usar essa variável ... 
Eu já tentei ... 
 if (leitura != 0)
 myStepper.step(passos); 
mas não deu certo .

ViniDj
date Enviado: 2017-08-08 19:05:21
Heloiso
Acredito que o Fraçois estava se referindo a ter uma nova variável no código que tomaria conta de quantos passos foram dados. Ou seja, fazer uma contagem nessa variável enquanto o código estiver dentro da condicional de algum botão apertado e fazer com que o código saia dessa condicional caso esse contador chegue a um determinado valor.

Heloiso
date Enviado: 2017-08-08 15:39:10
Fala galera ! 

Estou com um probleminha na Sketch abaixo ... 
Eu consegui fazer quase tudo direito , menos o numero de passo que o motor gira pra esquerda , quanto pra direita 
Nessa Sketch ele gira infinitamente quando pressiono o botão pra direita , quanto pra esquerda  ... 
quero que ele gire o flat da asa do avião , por isso preciso limitar o numero de passos da esquerda e da direita , " lembrando que ele gira infinitamente quando eu pressiono o botão ... 
Podem me ajudar com essa Sketch ??? 


#include <Stepper.h>

// define um valor constante chamado stepPin e atribua o valor 9 a ele
// isso pressupõe que o pino digital 9 do Arduino está conectado à entrada de passo do drive

#define stepPin 9
// define um valor constante chamado dirPin e atribua o valor 8
// isso pressupõe que o pino digital 8 do Arduino está ligado à entrada de passo do seu drive 
#define dirPin 8
 
// define os pinos em numero Botões
#define button1 2
#define button2 3
 
// loop setup (), o Arduino corre por esta vez
void setup() {
  // pinos digitais no Arduino só podem ser configurados como saída ou entrada - no meu caso, quero enviar dados para o driver, então eu escolho a saída
  pinMode(stepPin , OUTPUT);
  pinMode(dirPin , OUTPUT);
 
   // define pinos do botão como tipo de extração de entrada
  pinMode(button1, INPUT_PULLUP);
  pinMode(button2, INPUT_PULLUP);
 
  // define um valor inicial baixo para os nossos pinos passo e dir, posso facilmente escrever falso ou 0 em vez de BAIXO
  digitalWrite(stepPin , LOW);
  digitalWrite(dirPin , LOW);
}
 
// loop () loop, o Arduino continuamente passa por isso o mais rápido possível
void loop() {
 
  if (digitalRead(button1) == LOW && digitalRead(button2) == HIGH) { // se o botão 1 for pressionado e o botão 2 não estiver pressionado
    digitalWrite(dirPin, LOW); // mova-se na direçao baixa
  } else if (digitalRead(button1) == HIGH && digitalRead(button2) == LOW) { // se botao 1 não é pressionado e o botão 2 é pressionado
    digitalWrite(dirPin, HIGH); // move-se na direçao HIGH
  }
 
  if (digitalRead(button1) == LOW || digitalRead(button2) == LOW) { // se qualquer botão estiver pressionado
 
     // define um valor ALTO para o nosso pino de passo, isso liga a tensão para esse pino
    digitalWrite(stepPin , HIGH);
 
    // vamos esperar aqui por 20 milissegundos; Note as unidades, isso significa 0.02s
    delay(2);
 
     // vamos definir o nosso passo para falso, isso desliga a tensão para esse pino e nos dá o ciclo on / off que precisamos
    digitalWrite(stepPin , LOW);
 
    // espere mais 20 milissegundos após o qual voltamos para o início do loop loop ()
    delay(2);
 
  }
}

Francois
date Enviado: 2017-08-08 16:01:48
Heloiso
Você precisa usar uma variável auxiliar para monitorar a quantidade de passos (para os dois lados) e impedir o acionamento caso ela seja maior do que um valor determinado (o seu fim de curso).

moratori
date Enviado: 2017-07-31 11:04:23
Bom dia. Preciso de um drive como estes (A4988) mas que controle motor unipolar de 5 fios, utilizado a biblioteca AccelStepper. Obrigado

ViniDj
date Enviado: 2017-07-31 15:50:45
moratori
Este driver serve apenas para motores bipolares de 4 fios.

wesley.paulino
date Enviado: 2017-07-12 11:59:36
Bom dia, 
Possuo motor SM1.8-A1740CHNBK-CS datasheet (https://s3.amazonaws.com/uploads.hipchat.com/610734/4190082/QGMqPTGRz1SqNpn/SM1.8-A1740CHNBK-CS%20%282%29.pdf). 
Este driver consegue controlar este motor: Phase = 2 // Tensão: 6V //Corrent 1.2A. 
Como ?
Obrigado

Francois
date Enviado: 2017-07-12 12:22:22
wesley.paulino
A princípio sim, mas recomendamos usar um driver que consiga fornecer mais corrente, por exemplo o 32V/2,2A (www.robocore.net/loja/produtos/driver-de-motor-de-passo-32vdc-2_2a.html). Isso porque apesar do A4988 suportar até 2A, ele acaba esquentando bastante e isso prejudica a sua performance. Dependendo da sua aplicação você conseguirá usar o A4988 e, se achar que ele está muito quente, pode até tentar resfriá-lo (por exemplo com um dissipador e uma ventoinha).

wesley.paulino
date Enviado: 2017-07-12 12:37:06
wesley.paulino
Entendi. A preocupação esta em torno da tensão de trabalho, pois o motor trabalha em 6V e o do Driver entre 8-35V, se utilizar uma fonte de 12v o motor vai funcionar? Pode danificar o motor?
 Obrigado

Francois
date Enviado: 2017-07-12 12:46:36
wesley.paulino
Sim, você pode alimentar o conjunto com 12V. Drivers de motor de passo controlam a corrente que vai para o motor (pode haver exceções) ao invés da tensão, assim eles garantem o torque e a performance do motor. Por isso é recomendado usar uma tensão maior do que a tensão do motor, uma vez que isso fará com que a transição para a corrente de acionamento seja mais rápida.

Heloiso
date Enviado: 2017-07-09 23:04:10
Beleza ... vou tentar achar o datashett dele . Obrigado .

Heloiso
date Enviado: 2017-06-30 22:37:45
Fala galera . 

É possível controlar um motor de passo unipolar de 5 fios com esse driver ?

hallszombie
date Enviado: 2017-07-01 09:28:19
Heloiso
Olá Heloiso,

É possivel, lembrando que o motor deve se adequar as especificações técnicas do driver.

pbn
date Enviado: 2017-03-31 22:22:36
Prezados(as), comprei uma A4988 e um motor de passo NEMA23 4.6Kgf.cm. Preciso controlar a velocidade do motor. Já visitei o site que contém maiores informações sobre a biblioteca (http://www.airspayce.com/mikem/arduino/AccelStepper/classAccelStepper.html) e nada. Meu projeto está assim: tenho dois botões que definem a direção (rotação contínua). Tenho um ajuste da resolução dos passos (full, 1/2, 1/4, etc) mas queria controlar a velocidade com um potenciômetro para ajustar os parametros: motor1.setMaxSpeed() e motor1.setAcceleration(). Não consigo de jeito nenhum. Para acionar o motor estou usando o comando motor1.runSpeed(). Outra ponto é: como descubro quanto o motor "andou" de um ponto a outro? A função currentPosition () não retorna nada. Obrigado

Francois
date Enviado: 2017-04-01 10:54:26
pbn
Para saber se o motor realmente girou você deve usar um encoder no eixo dele e monitorar o movimento. Quanto à biblioteca, você deve verificar a documentação dela, pois setMaxSpeed() talvez não seja a melhor função para controlar a velocidade. Um teste fácil para fazer é usar o modelo do exemplo Blink, usar delayMicroseconds() ao invés de delay(), adicionar a leitura do potenciômetro, usar a função map() para converter a leitura para um valor mais adequado e usar o valor retornado como parâmetro do delay. Se você mantiver a resolução e o sentido fixos, você deve ver a velocidade variando em função do potenciômetro. É recomendado fazer o teste primeiro sem carga para garantir a rotação do motor.

pbn
date Enviado: 2017-04-01 18:33:04
pbn
Olá Francois, agradeço muito suas dicas. Penso que vc está se referindo a algo assim:
    digitalWrite(stepPin,HIGH);
    delayMicroseconds(xx);
    digitalWrite(stepPin,LOW);
    delayMicroseconds(xx);
onde xx é o valor vindo da função map(), baseado na leitura do potenciometro. Minha dúvida é se devo continuar usando a biblioteca AccelSteper. Quanto ao encoder vou pesquisar um pouco mais sobre o assunto. Se tiver alguma dica será bem vinda.

Francois
date Enviado: 2017-04-03 11:13:47
pbn
Sim, o código ficaria mais ou menos assim. Você até poderia usar XX como o valor lido direto do potenciômetro (0 a 1023), porém a função map() é mais interessante para você poder definir limites mais específicos ou uma faixa diferente, por exemplo de 50 a 500.
O encoder mais comum é o óptico (https://goo.gl/GSrrBg), sendo que há versões absolutas ou relativas, simples ou de quadratura.  Existem modelos prontos, mas caros, e você pode montar o seu dependendo da precisão que você necessita.

Dumont23
date Enviado: 2016-09-27 14:15:24
Boa tarde, 

Estava em outros comentários referentes a drive de motor. Fiz a compra do mesmo A4988 conforme indicação da equipe da Robocore, consegui de acordo com os passos acionar de &#39;n&#39; maneiras o Motor de Passo NEMA 17 de forma Bipolar. Porém ainda tenho uma dúvida sobre o driver.  

Existem portas especificas para o seu funcionamento ? Pois em 90% dos códigos que encontrei todos usam porta digital 4 e porta digital 2 ... essas duas portas para o projeto que tenho não podem ser ocupadas. Como faço ? Algum conselho, alguma restrição ? 

Aguardo retorno,
Atenciosamente.

MarceloFarias
date Enviado: 2016-09-27 14:43:34
Dumont23
Acredito que não existe nenhuma restrição tendo em vista o tipo de sinal que o driver recebe. Contudo, vale você dar uma olhada no código fonte da sua biblioteca e verificar se existe alguma configuração relacionada à esses pinos em específico(tudo me leva a acreditar que não). 

millanJoao
date Enviado: 2016-08-18 20:51:29
vende o dissipador para desse drive?

MarceloFarias
date Enviado: 2016-08-19 09:45:27
millanJoao
Infelizmente ainda não temos dissipadores.

Ricardo_Ribas
date Enviado: 2016-07-15 10:29:42
É possível usar 2 motores DC com escova usando essa placa ? Se for possível, onde posso achar um exemplo ?

ViniDj
date Enviado: 2016-07-15 12:18:15
Ricardo_Ribas
Ser possível é, já que cada canal da placa pode controlar uma bobina de um motor, porém não é tão trivial. Veja o seguinte link para ter uma ideia: letsmakerobots.com/node/43452
De toda forma, nós realmente aconselhamos o uso do Shield Motor Driver 2x2A no lugar deste chip para controle de motores DC com escova de até 2A. Por R$10,00 a mais você compra uma placa mais robusta, e feita para motores DC com escova. Segue o link: www.robocore.net/modules.php?name=GR_LojaVirtual&prod=200

Ricardo_Ribas
date Enviado: 2016-07-15 12:26:57
Ricardo_Ribas
Obrigado pela atenção, eu já possuo um shield 2x2a(que me deu uma medalha de bronze nas olimpíadas de robótica do meu campus), agora pretendo fazer um projeto menos, por isso quero uma placa pequena, mas mesmo assim muito obrigado :D

Cidinei
date Enviado: 2016-06-04 11:38:37
poso usar um moto nema 23 de 2.1A com essa driver ?
Estou pretetedeno montar uma cnc 

Francois
date Enviado: 2016-06-04 12:06:34
Cidinei
Não é possível, pois o A4988 é para motores de até 2A.

rslrenato
date Enviado: 2016-05-27 12:41:36
Bom dia!
Sabe me dizer se esta placa é compatível com a biblioteca "stepper" que acompanha a IDE Arduino? Estou usando uma placa P6 da GBK, porém, ela é limitada a 0,6A e tenho motores de até 1,7A. Gostaria de usar esta placa e os motores mais fortes, porém, sem a necessidade de alterar todo o código.

Obrigado!

ViniDj
date Enviado: 2016-05-27 13:25:51
rslrenato
Não é compatível porque a biblioteca Stepper aciona uma bobina por vez, e o A4988 faz isso automaticamente em função dos pulsos e do sinal de direção que são enviados na entrada.

rslrenato
date Enviado: 2016-05-27 13:31:37
rslrenato
Entendi. O motor é de 1,8º por pulso, para dar uma volta completa eu só teria de informar "200 pulsos" e sentido CW ou CCW? Existe alguma biblioteca pronta para esta? (Sou totalmente iniciante, mal terminei meu KIT V7 e estou brincando com uns motores rsrs.)

ViniDj
date Enviado: 2016-05-27 13:37:03
rslrenato
Não costumamos usar bibliotecas com este driver, pela simplicidade que o mesmo funciona, onde basta dar um pulso (seguindo a especificação de tempo conforme datasheet) para que o motor dê um passo. De toda forma, o fabricante indica a seguinte biblioteca para uso com esse driver: github.com/laurb9/StepperDriver e conforme o código de exemplo parece ser ainda mais simples usar tal biblioteca. 

grsotnas
date Enviado: 2016-04-28 22:33:45
Olá, penso em utilizar futuramente um motor de passo (NEMA 17, no máximo NEMA23) para controlar um trilho, semelhante à uma CNC de eixo único (é para câmera fotográfica) com Arduino. Pergunto sobre as diferenças (também quanto ao código/programação) e vantagens/desvantagens em relação um ao outro, dos drivers para motor de passo>
 - A4988 (https://www.robocore.net/modules.php?name=GR_LojaVirtual&prod=291) 
- BIG Easy Driver (de https://www.sparkfun.com/products/12859) (diferente da versão standard, que, pelo que li nos comentários da página e pelo datasheet, é inferior ao outro) 

Gabriel

MarceloFarias
date Enviado: 2016-04-29 09:34:20
grsotnas
Os dois modelos são bem idênticos já ambos são baseados no CI Allegro A4988. A única grande diferença é o fato de que o BIG Easy Driver possui um regulador de tensão para alimentar a lógica do sistema. Deste modo apenas uma alimentação é necessária para que a placa funcione, ao contrário da outra placa que necessita ser alimentada com a tensão que vai pros motores e uma tensão de lógica (5/3.3V).

grsotnas
date Enviado: 2016-04-29 13:23:00
grsotnas
Muito obrigado Marcelo!

haroldourcine
date Enviado: 2016-02-17 11:31:21
Olá . Ele suporta de 8 á 35 v , certo? E como a corrente máxima da saída e 2A . A corrente da alimentação de 8 á 35 v também pode ser 2A ?

ViniDj
date Enviado: 2016-02-17 11:49:44
haroldourcine
Segundo o fabricante, sim, ele suporta estes limites de tensão com corrente de até 2A.

fabriwel
date Enviado: 2016-01-05 18:53:42
Boa tarde, muito obrigado pela resposta

OK, a questão da amperagem eu entendi, esse controlador suporta motores que "puxam" uma corrente de no máximo 2A. Minha dúvida é quanto a tensão V em que eles trabalham. Se eu tenho uma fonte 12V 11A, onde eu regulo a tensão que vai para o motor? Por exemplo, eu tenho três opções de motores para o meu projeto:
Nema17 (1,1Kgf/16,8Vdc/70mA)
Nema23 (4,6Kgf/7Vdc/0,7A)
Nema23(7,6Kgf/6,0Vvdc/1,7A)

OK, eu sei que os três servem para trabalhar com esse controlador A4988 porque trabalham com amperagens menores que 2A. Mas eles recebem voltagens (tensão) diferentes, o Nema17 - 16,8Vdc, e os Nema23 recebem 7Vdc e6Vdc respectivamente. Onde eu ajusto essa voltagem "que sai para o motor"? Se a minha fonte é de 12V eu não quiemaria os Nema23?

Peço desculpas se minha dúvida parece boba, mas nunca trabalhei com esse tipo de projeto antes, sou novato com motores de passo. Agradeço desde a atenção.

ViniDj
date Enviado: 2016-01-05 19:00:37
fabriwel
Esse driver aceita tensões de até 35V, então você pode colocar tensões até esse valor, independente da tensão do motor (o driver irá fazer a regulagem). Quanto a corrente, você deverá ajusta pelo potenciômetro da placa. 

fabriwel
date Enviado: 2016-01-04 18:38:52
Olá amigos, boa tarde. Gostaria de tirar algumas dúvidas.
1-Pretendo utilizar esse controlador, com cncshield, e motores Nema23 para construir uma mesa Router/Fresadora com área útil de 80x80cm. Minha dúvida é se esse conjunto rodando GRBL funciona com uma mesa desse tamanho? Ou seja, gostaria de saber qual é o tamanho máxima que um cnc pode ter com esses componentes?
2- Vocês tem o cncshiled?
3- Quando eu troco os motores por outro modelo que usa voltagem diferente, eu regulo a tensão para ele no potênciõmetro que fica no controlador? Medindo a saída com um voltímetro antes de conectá-los?
Agradeço a atenção. Feliz 2016.

ViniDj
date Enviado: 2016-01-04 18:49:01
fabriwel
Isso depende da especificação dos motores. Cada driver A4988 consegue fornecer até 2A de corrente por bobina para o motor de passo. Dessa forma, estando dentro das especificações dos motores, você poderá usar este driver em seu projeto. Quanto ao shield, infelizmente não trabalhamos. O ideal é que você insira a tensão que vai usar nos motores como fonte de alimentação.  

FJWolf
date Enviado: 2015-11-13 21:47:52
Ola, gostaria de saber se este driver pode ser usado no motor nema 23 7,6kgf que e vendido aqui no site? pois, no datasheet do driver diz que a voltagem minima para operar o motor e de 8VDC e o motor de de 6.5VDC... Grato pela atençao.

ViniDj
date Enviado: 2015-11-14 11:26:55
FJWolf
Segundo nosso pessoal de suporte, os drivers de motores de passo regulam corrente e não tensão. Portanto, se a corrente estiver nos limites do que o driver aceita, o motor pode ser usado.