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

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: 19169

Tags: Passos, controle, de, deslocamento, driver, easy, motor, passo

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 jose da mata em 8 setembro 2014 às 13:24

ola pessoal quero digitar um volor no teclado 4x4 e o motor rotacionar o valor digitado em graus

alguem por amor a Deus pode me ajudar

meu e-mail jdamata3@yahoo.com.br

Comentário de Márcio Ramos em 6 maio 2014 às 22:48

Olá galera.

Preciso movimentar e posicionar uma mesa coordenada de furadeira de bancada, comandados por um plc.

Alguém poderia me ajudar na escolha de componentes, motores, drivers, plc?

Comentário de Clebio de Olivei em 1 dezembro 2013 às 1:28

Alguem por favor que domina essa plaquinha teria como me informar o procedimento correto para ligar trez nema 23 com arduino para uma função de CNC? obs fonte de 24v motores de 13klgs, aguardo e obrigado...

Comentário de felipe araujo dos santos em 3 novembro 2013 às 22:18

Boa Noite , Pessoal 

Compre um Driver chamado Stepdriver para motor de passo unipolar
não estou conseguindo programar , alguem puder ajudar agradeço

abraços

Comentário de Geraldo S. de Souza em 12 outubro 2013 às 1:54

Olá pessoal, Bom dia! Gostaria de saber se consigo integrar esse sistema a um plc para que eu possa controlar o motor de passo via ihm, visto que eu preciso que o motor não de uma volta completa mas vire de 0º a 160º nos dois sentidos. ou seja, va de 0º a 160º e volte para 0º, cada pulso 1º para + ou para - , vou ter dois botões na ihm  < -   e   + >. E vou acionar outros dois motores via relé na mesma ihm, ou seja, o equipamento te tres motores acionados via plc-ihm.

Obrigado pela atenção!...

Comentário de carlos em 9 julho 2013 às 12:14

essa bateria pode ser 12v??

Comentário de leandro klasener kuhn em 28 junho 2013 às 20:43

BOA NOITE.

ALGUEM SABE SE E POSSIVEL O ARDUINO LER PULSOS DE UM SENSOR INDUTIVO E INFORMA-LOS PARA O EASY-DRIVER PARA CONTROLAR VELOCIDADE DO MOTOR DE PASSO....

 

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?

Publicidade

Convide um amigo para o Lab!

 Loja Lab de Garagem

curso gratis de arduino

Teensy 2.0

Por: R$ 95,90

Ou em até 18x de R$ 6,39

Mini Relay Shield

Por: R$ 17,50

Ou em até 3x de R$ 6,07

Temp&Humi Sensor

Por: 25,00

Ou em até 05x de R$ 5,30

Estação de Solda
Temperatura Ajustável - 50W

Por: R$ 204,00

Ou em até 18x de R$ 13,60

© 2014   Criado por Marcelo Rodrigues.

Badges  |  Relatar um incidente  |  Termos de serviço