Olá pessoal, tudo bem?

Estou trabalhando em um projeto com 2 motores de passo, um arduino Atmega e dois drivers TB6600.

Estou com dificuldade de fazer esses dois motores de passo movimentarem ao mesmo tempo (sem utilizar bibliotecas de motores de passo), utilizando os camndos LOW e HIGH.

Poderiam me ajudar?

Desde já agradeço...

Exibições: 981

Responder esta

Respostas a este tópico

Olá.

 Normalmente se vc ligar cada um em 4 pinos e escrever a sequencia:

1) 0101 Vamos chamar os pinos de M1P1 M1P2, M1P3, M1P4 = Motor 1 Pino 1....

2) 0110

3) 1010

4) 1001

5) 0101 <- que é igual ao 1)

Vc está virando ele.

Assim se vc criar 2 variáveos:

Passo1 e Passo2 que devem ser modificadas sempre 1 a 1 (incrementar ou decrementar).

A cada novo passo vc usaria os 2 bits finais para determinar quais pinos ligar ou desligar conforme 1) a 4).

Essa rotina alem disso precisa dar um delay() para esperar o motor chegar nesse passo. Esse delay pode ser variável para ajustar a velocidade.

Melhor seria fazer com interrupção de tempo.

Será um tanto complicado fazer um rodar em uma velocidade e o outro em outra. 

Qual a justificativa para evitar as bibliotecas ? Ordem do professor ?

Ex:

for (i=0;i!=10;i++) { Passo1++; escrevepasso();} //Anda 10 passos.

void escrevepasso()

{ switch (Passo1 & 3) { //Analisa apenas os ultimos 2 bits.

  case 0: digital.Write(M1P1,LOW);

              digital.Write(M1P2,HIGH);

              digital.Write(M1P3,LOW);

              digital.Write(M1P4,HIGH);

             break;

  case 1: digital.Write(M1P1,LOW);

              digital.Write(M1P2,HIGH);

              digital.Write(M1P3,HIGH);

              digital.Write(M1P4,LOW);

             break;

  ..... e assim vai...

        dalay(tempo);}

}

Obrigado pela ajuda Eduardo!!! Farei o teste apenas amanhã (21/05/2018)...

Quando eu aciono o motor através da shield LCD  utilizando  a biblioteca AccelStepper o motor gira muito, mas muito devagar. Entretanto sem o uso da biblioteca o motor gira rápido.

Eu não sei o porquê isso esta acontecendo, pesquisei bastante e não consegui resolver esse problema, então resolvi tentar acionar os motores simultaneamente sem utilizar a biblioteca AcellStepper.

Se alguem puder me ajudar em relação a essa outra dificuldade minha ;)

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço