Como controlar velocidade do motor de passo pelo código? Ajudem

Olá amigos do Labdegaragem estou com duvidas para execução final do meu projeto de TCC, agradeço desde já ao que puderem compartilhar seus conhecimentos.

Materiais:
Motor de passo 23LM C004
Arduino Mega Atmega 1280
Driver A4988 [

Duvidas:

1° - Qual a programação que posso alternar a velocidade apenas pelos códigos de programação sem auxilio de potenciômetros?

2° - Como posso controlar a quantidade de pulsos a serem realizador?
Exemplo figura 1, Precisamos que motor gire ate o suporte completa uma volta 360, ou seja motor gira passando movimento através de engrenagem vai girar o suporte que tem o trilho da engrenagem ate que ele volte ao ponto inicial que partiu.

Exibições: 3015

Anexos

Responder esta

Respostas a este tópico

Boa noite Alison , 

Estudo completo do uso do Driver A4988 - ( tudo que precisa )

 Obrigado vou tentar ver se consigo, no momento sou leigo em Arduíno. 

Primeiro passo , é saber como conectar o seu motor 23LM-C004 . 

O seu motor é similar à esse ? Qual é o codigo completo do motor ? Ele é antigo e usado?

Quantos fios ele possui ? Quais cores ?

Mande  fotos nitidas se puder.

Motor é igual a este, ele é usado de 6 fios.

Obs: Eu consegui fazer o motor funcionar ligando com Easy Driver V44 A3967, agora já comprei a driver A4988 pois estava esquentando demais o Easy Driver V44 A3967 devido a corrente.

Amarelo: A+
Vermelho: A-
Azul: B+
Verde: B-

 

Código usado:

int pino_passo = 5;

int pino_direcao = 4;

 

int direcao = 1;

 

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);

}

     Não consegui fazer ele girar mais rápido pois a velocidade dele esta baixa, e como controlar a quantidade de passo para ele parar.

 
Anexos

Boa tarde Alisson ,

Parece que você conectou corretamente as bobinas. Ele esta girando corretamente, não é ?

Sobre o Easy driver :

http://labdegaragem.com/forum/topics/liga-o-motor-de-passo-no-easyd...

- Esse módulo foi feito para motores de passo Bipolar, não use um motor unipolar.

( exceto se o motor Unipolar possa ser usado no modo Bipolar)

- Antes de fazer a conexão dos fios das bobinas do motor, certifique-se que a identificação dos fios esta correta. Recomendo que meça o valor da resistência das bobinas.

- Use um motor que se encaixe nas especificações do módulo - tensão máxima 30V e corrente máxima de 750mA.

Isto é, você estava usando um Driver aquém das especificações do motor - 1,2A por fase !

OK - vai usar o A4988 - que aguenta até 2A .

http://labdegaragem.com/forum/topics/tutorial-arduino-motor-de-pass...

Alison , recomendo que estude todo o tutorial . Qual modo de passo pretende usar ?

Qual RPM precisa ?

http://labdegaragem.com/forum/topics/tutorial-arduino-motor-de-pass...

Você viu o meu programa para Controlar o A4988 ? 

http://labdegaragem.com/forum/topics/tutorial-arduino-motor-de-pass...

Ajustou a corrente do A4988 ?

http://labdegaragem.com/forum/topics/tutorial-arduino-motor-de-pass...

Passo tem ser 1/4 ou  Meio , não necessita de muita precisão.

Quanto ao RPM preciso ter código de programação onde possa mudar a velocida para ver qual velocidade ficaria melhor para meu projeto.

O modo de passo você pode selecionar através de chaves (ou jumpers se tiver montado no protoboard). 

Veja a tabela acima . Na minha montagem, eu seleciono o modo através das portas digitais do Arduino. 

O RPM dependerá  do modo de passo que estiver usando, e a frequência dos pulsos enviados para o Driver. Tenho demonstração disso no meu programa. 

No meu Blog , tenho um Tutorial sobre outro Driver muito bom também - 

Tutorial -> Arduino + DRV8825 + Motor de Passo

https://jgamblog.wordpress.com/2016/09/24/tutorial-arduino-drv8825-...

Show de bola !

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço