Easy Driver no Arduino Motor de Passo

01 FEV
2016

Autor: Leonardo Dalla Porta

Se você está afim de montar uma impressora 3D ou uma Fresa CNC ou ainda, controlar simplesmente um motor de Passo utilizando arduino, o Easy Driver está sendo a melhor opção do mercado, pois tem seu custo bem baixo, e uma utilidade infinta. A placa conta com um Circuito integrado fabricado pela Allegro MicroSystems, conta com material de ótima qualidade e muito pratico de utilizar.

Precisaremos de:

  • Easy Driver
  • Protoboard
  • Arduino
  • Motor de passo (4 Fios)
  • Jumpers
  • Fonte 12V 2A (Depende da tensão do motor)

 

Aos testes:

Nesse tutorial mostraremos como conectar este maravilhoso módulo Easy Driver no arduino, apenas utilizando 2 fios, um para o lado direito, outra para o lado esquerdo, onde para ele girar precisa-se pulsar no pino para a direção esperada, no esquema a seguir mostramos as ligações do arduino ao Easy Driver, lembramos que deve ser utilizado uma fonte de corrente maior que 2a, pois o motor consome bastante energia, nunca plugue diretamente a placa arduino, ela poderá ser danificada devido a corrente de operação do motor.

Squemtatics

 

O Código

Neste código giramos o motor 3600 passos para a direita, e para meio segundo e volta a girar 3600 passos para a esquerda, note que o código é muito simples, e a velocidade depende do 1 ms predefinido, caso queira mais devagar basta aumentar o tempo entre pulsos:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
int Distance = 0;  // Record the number of steps we've taken
 
void setup() {                
  pinMode(8, OUTPUT);     
  pinMode(9, OUTPUT);
  digitalWrite(8, LOW);
  digitalWrite(9, LOW);
}
 
void loop() {
  digitalWrite(9, HIGH);
  delayMicroseconds(100);          
  digitalWrite(9, LOW); 
  delayMicroseconds(100);
  Distance = Distance + 1;   // record this step
 
  // Check to see if we are at the end of our move
  if (Distance == 3600)
  {
    // We are! Reverse direction (invert DIR signal)
    if (digitalRead(8) == LOW)
    {
      digitalWrite(8, HIGH);
    }
    else
    {
      digitalWrite(8, LOW);
    }
    // Reset our distance back to zero since we're
    // starting a new move
    Distance = 0;
    // Now pause for half a second
    delay(500);
  }
}

Qualquer dúvida deixe seu comentário abaixo, espero ter sido esclarecedor, um abraço e até a próxima!

Faça um bom uso! Att. Equipe Nadiel Comércio.

 

Deixe um comentário

Free WordPress Themes

*

 
mugen 2d fighting games
WordPress Themes