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

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 josé de brito marques em 18 dezembro 2016 às 14:32

alguem poderia fazer uma configuração eletronica de cnc 3 eixos ,para usinar aluminio ?

Comentário de lincoln em 26 novembro 2014 às 20:26

Muito bom!!!!

Gostaria de saber o que devo fazer , para usar esse sistema com alimentação de uma bateria de automóvel.

Comentário de Andre Luiz Silva de Oliveira em 11 novembro 2014 às 22:27

Parabéns pelo tutorial!!!

Como eu faço para colocar um potenciometro pra regular a velocidade?
E um botao que inverta o sentido do motor?

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....

 

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço