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 motor de passos bipolar (MERCURY SM-42BYG011-25)
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:
- Datasheet do Motor MERCURY SM-42BYG011-25
Comentar
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
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!!
dá certo com o motor Epson em-326?
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!!
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
Parabéns! Tutorial muito bom.
Será que a partir deste projeto eu consigo chegar nisto? http://www.youtube.com/watch?v=L6hOmskEgWw&feature=related
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por
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)