Tutorial: Controle do Deslocamento do Motor de Passo com Arduino + Easy Driver

Adquira estes componentes na Loja do Lab de Garagem

Este tutorial mostra como controlar o deslocamento (horário e anti-horário) de um motor de passo bipolar com o Arduino e o Easy Driver, rotacionando o motor em vários modos diferentes (passo inteiro, meio passo, 1/4 de passo e 1/8 de passo).

Para isto, serão necessários os seguintes componentes:

- 1 placa Arduino

- 1 motor de passos bipolar (MERCURY SM-42BYG011-25)

- 1 Easy Driver

- Jumpers para conexão 

- 1 Fonte/bateria de 9V

 

O motor de passo é como motor elétrico comum (recebe a energia elétrica e converte-a em mecânica), porém ele divide sua rotação em vários intervalos (em graus), o que damos o nome de passos. Este utilizado no projeto, é de 200 passos por rotação (sendo cada pulso um passo). Pode-se dividir/configurar tanto os passos como os intervalos. E isto será tarefa do firmware.

Agora, monte o circuito a seguir com seus componentes:

 

 

Obs: Os barramentos de baixo da protoboard serão ligados a sua fonte/bateria de 9V mais adiante.

Então, abra a IDE do Arduino e digite o seguinte código:

 

/* Pinos de Configuração do Deslocamento (no Easy Driver):
//////////////////////////////////////////////
// MS1 MS2 //
// //
// LOW LOW = Passo completo //
// HIGH LOW = Meio passo //
// LOW HIGH = Quarto de Passo //
// HIGH HIGH = Oitavo de Passo //
// //
//////////////////////////////////////////////
*/

#define step_pin 3    // Define o pino 3 como pino dos passos
#define dir_pin 2    // Define o pino 2 como pino de direção
#define MS1 5     // Define o pino 5 como "MS1"
#define MS2 4       // Define o pino 4 como "MS2"

int direcao;    // Para determinar o sentido do motor
int passos = 200;      // Número de passos que você deseja executar (para passos completos, 200 = 1 volta)

void setup() {
   pinMode(MS1, OUTPUT);     // Configura "MS1" como saída
   pinMode(MS2, OUTPUT);     // Configura "MS2" como saída
   pinMode(dir_pin, OUTPUT);    // Configura "dir_pin" como saída
   pinMode(step_pin, OUTPUT);    // Configura "step_pin" como saída
   digitalWrite(MS1, LOW);      // Configura divisão de passos do motor (ver acima)
   digitalWrite(MS2, LOW);    // Configura divisão de passos do motor (ver acima)
   digitalWrite(dir_pin, LOW);    // Sentido (HIGH = anti-horário / LOW = horário) - Também pode ser alterado
}

void loop() {
while(passos>=0) {    // Enquanto o valor de passos for maior ou igual a zero
         digitalWrite(step_pin, HIGH);    // Envia nível lógico alto para o pino de passos do motor
         delay(5);    // Aguarda 5ms para o próximo passo
         digitalWrite(step_pin, LOW);    // Envia nível lógico baixo para o pino de passos do motor
         delay(5);    // Aguarda 5ms para o próximo passo
        passos--;   // Decrementa a variável "passos"

   }
}

 

Conecte sua fonte/bateria de 9V no seu circuito. Então faça o Upload do programa para o seu Arduino.

 

O seu controle de deslocamento do motor bipolar de passos está pronto !!! Altere as variáveis indicadas no código e execute o programa quantas vezes quiser. Esperemos que tenha gostado. Qualquer dúvida, poste aqui mesmo.

 

Até a próxima !!!

Links de Referência:

Motor de Passo

Datasheet do Motor MERCURY SM-42BYG011-25

 

 

Exibições: 52534

Comentar

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)

Comentário de Luiz Carlos Braga de Camargo em 14 junho 2013 às 16:19

Estou começando a mexer com o Arduino com o objetivo de usa-lo no desenvolvimento de um projeto de CNC, este controlador de passo seria viável ? 

Parabéns pelo seu trabalho.

Luiz Braga

Comentário de Elaine Correa Acosta em 5 junho 2013 às 14:43

Muito bom fique apaixonada, será que conseguiria fazer ele dar um passo a cada hora começando as 6 da manhã até umas 6 da tarde e depois retorna a posição inicial, se alguem souber me ajuda ai meu mail é laineupf@gmail.com 

ok!!

Comentário de Manoel Américo Zancheta em 21 abril 2013 às 16:32

dá certo com o motor Epson em-326?

Comentário de gustavo rodrigues de melo em 21 março 2013 às 10:38

olá gostei muito desse material, e gostaria d uma ajuda s possível d vcs. estou elaborando um projetos d um mini-elevador para a presentar no curso, encontrei o material muito bom e bastante interessante, gostaria de saber s algum de vcs saberiam m informar s todo esse material será necessário ou até msm s precisaria de mais algum para acrescentar nesse projeto. estou mais confuso na parte dos comandos, tipo pra controle dos andares, no controle do motor de passo. só gostaria da saber de vcs, devido aos seus conhecimentos como motar, e se daria certo com estou planejando. s poderem mandar maiores informações agradeço muito, depois d concluído vou postar p galera ñ ter maiores duvidas como estou tendo no momento. desde já agradeço!!  

Comentário de LUCAS PALMEJNAI LEÃO LOPES em 5 fevereiro 2013 às 12:33

Muito legal o post !

Estou realizando um projeto na faculdade onda a parte mecanica está pronta porem estamos realizando a pesquisa eletronica.

Este tipo de circuito o arduino e o easy driver tem condições de rodar normalmente no software EMC2, realizando sincronismo de dois eixos, pois não sei se ele tem capacidade de processar a informação.?

abraços

Comentário de Ricardo Concário Junior em 12 janeiro 2013 às 16:02

Parabéns! Tutorial muito bom.

Comentário de Valter Menezes em 9 outubro 2012 às 18:33

Será que a partir deste projeto eu consigo chegar nisto? http://www.youtube.com/watch?v=L6hOmskEgWw&feature=related

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço