Adquira estes componentes na Loja do Lab de Garagem
Neste tutorial vamos mostrar como controlar um motor de passo com Big Easy Driver e Arduino. Para controlar um motor de passo é necessário um driver ou ponte-H, o Easy Driver e o Big Easy Driver são drivers de controle para motor de passo.
O Big Easy Driver, como o nome já diz, é maior e pode alimentar motores de passo com tensão de até 35V e 2A de corrente, enquanto que o Easy Driver pode alimentar com 30V e 750mA. Resumindo, o Big Easy Driver é um upgrade do Easy Driver. Caso queiram saber mais sobre o Easy Driver, temos um tutorial sobre ele clicando aqui.
Apesar de parecidos, o Big Easy Driver necessita de um tempo menor entre pulsos, isto será melhor demonstrado na programação.
Para controlar o motor de passo, precisamos fazer a seguinte ligação:
Onde o tamanho do passo (step) será o pino digital 3 do Arduino e a direção (dir) no pino digital 2 do Arduino. As ligações "+" e "-" devem ser ligadas a uma fonte externa de até 35V. Olhe na documentação do seu motor de passo para saber qual a corrente máxima e a tensão máxima do motor para não queimá-lo.
Assim como o Easy Driver, o Big Easy Driver tem um ENABLE que pode ser conectado a um pino digital para ligar e desligar o Big Easy Driver e evitar que este fique consumindo corrente o tempo todo. Para desligar o Big Easy Driver é necessário setá-lo para HIGH (alto) e para ligar é simplesmente o contrário.
Como apenas estamos demonstrando seu funcionamento, não foi utilizado o ENABLE. Para maiores informações você pode ver o datasheet do Big Easy Driver e o datasheet do A4983.
Agora vamos para a programação:
int stepPin = 3;
int dirPin=2;
// Variables will change:
int dirState = LOW;
int stepState =LOW;
long previousMicros = 0;
long interval = 1000;
void setup() {
pinMode(dirPin, OUTPUT);
pinMode(stepPin, OUTPUT);
}
void loop()
{
unsigned long currentMicros = micros();
if(currentMicros - previousMicros > interval) {
previousMicros = currentMicros;
if (stepState == LOW)
stepState = HIGH;
else
stepState = LOW;
digitalWrite(stepPin, stepState);
}
}
Como vocês podem ver na programação, o tamanho do passo (step) é dado por microssegundos e não milissegundos como no Easy Driver. Ao passar o tempo determinado, a programação muda de estado do pino digital 3 do Arduino. Se estiver em baixo (LOW) muda pra alto (HIGH) e vice-versa.
E é isso! Esperamos que tenham gostado! Se tiverem dúvidas, postem aqui neste blog. Para sugerir tutoriais, vocês podem sugerir aqui! Para ver outros tutoriais e projetos abertos, cliquem aqui e aqui respectivamente!
Referências:
http://www.sparkfun.com/products/10735
http://dlnmh9ip6v2uc.cloudfront.net/datasheets/Robotics/4983.pdf
http://dlnmh9ip6v2uc.cloudfront.net/datasheets/Robotics/BigEasyDriv...
Comentar
Atenção , essa placa Big Easy Driver tem um potenciometro para ajuste de corrente no motor.
Ajuste antes de usar ! Corrente = 0 a 2A
Ajuste para a mínima corrente e depois vá aumentando até o motor girar.
Se esquentar muito, é porque a corrente esta excessiva.
https://learn.sparkfun.com/tutorials/big-easy-driver-hookup-guide
Gostaria de saber, se, com Big Easy Driver, posso controlar dois motores de passo e como?
obrigado
Olá amigos, comprei uma big e um motor desses, A ideia é que o motor de passos dê 12 passos com 15 graus cada passo, aguardando um tempo de um passo para outro, essa parte funciona ele já executa tal função como quero, porém após isso ele deveria retornar a posição original, não precisa dar os 12 passos de cada vez pode ser de uma só vez.no momento não consigo faze-lo inverte a sua rotação após executar a primeira parte não sei se o problema esta nas ligações da big com o Arduíno uno, ou no código o que acho o mais provável, se alguém poder me ajudar?
#include <Stepper.h>
const int stepsPerRevolution = 64;
Stepper myStepper(stepsPerRevolution, 2,3,4,5); //DIR;STEP;MS1;MS2 RESPECTIVAMENTE
int i=0;
int j=0;
void setup() {
myStepper.setSpeed(200);
}
void loop()
{
for (i ;i<24;i++){
j= 0 ; //essa parte funciona
i++;
myStepper.step(64);
delay(937); //tempo entre um passo e outro
}
for (j ;j<24;j++){
i = 0; //aki deveria retornar de uma só vez
j++;
myStepper.step(-64);
}
delay(3750); //tempo para retornar
}
Boa tarde gostaria de saber se essa placa consegue controlar o NEMA 23 de 6.6Kf/cm e como seria sua ligação na placa e também utilizando o Arduíno para fazer o controle? Grato.
hummm como entraria um encoder rotativo ai? gostaria de um motor copiando os giros de um encoder...
É possível usar um motor de passo de 8 fios com essa placa?
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por
Você precisa ser um membro de Laboratorio de Garagem (arduino, eletrônica, robotica, hacking) para adicionar comentários!
Entrar em Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)