Quando você olha para uma pilha de eletrônicos velhos, como antigas impressoras, scanners, multifuncionais, dentre outros, e pensa que aquilo é uma pilha de lixo. Mas e se não for uma pilha de lixo? E sim uma caverna que precisa ser explorada para se encontrar o verdadeiro tesouro? É possível encontrar vários motores em impressoras, inclusive o famoso motor de passo. Agora vamos aprender como usá-los.
Um dia, explorando uma dessas cavernas, encontrei um motor de passo (stepper motor), de 5 fios, de uma antiga impressora, como o da imagem abaixo.
E pensei “como irei utilizá-lo?”. Foi então que Robson Couto, El fueda de los eletrônicos, me deu a ideia de utilizar o driver ULN2003AN, que também encontrei em um impressora antiga.
Com muita pesquisa e paciência, consegui utilizar o antigo motor de passo, com ULN2003AN e Arduino. Agora vou compartilhar o conhecimento que adquiri com isto.
Primeiro falarei um pouco sobre como funciona o motor de passo. Este motor consiste em várias bobinas, que são ligadas e desligadas quando uma tensão é aplicada nos seus terminais, fazendo com que um imã seja puxado. Quando este imã é puxado, o eixo irá girar. Como demonstra a animação abaixo, quando as bobinas são ligadas e puxam o imã. Podemos ver o seus 4 estados: Step 1 – 1100, Step 2 – 0110, Step 3 – 0011 e Step 4 – 1001.
(Imagem retirada: Talkingelectronics – STEPPER MOTOR CONTROLLER)
Motores de passos com 5 fios simplesmente tem um fio conectado a todos os rolamentos dentro do motor, representado na figura abaixo como common (COM), e os outros como entradas de bobinas, representado na figura abaixo como live.
(Imagem retirada: Talkingelectronics – STEPPER MOTOR CONTROLLER)
Mas e agora, como vamos saber quem são os lives e quem é common? Pois o motor é antigo e simplesmente não vem com manual junto. Utilizando a dedução, você poderia pensar, através da imagem do motor, como eu pensei, que o fio azul é o common pois é diferente dos outros 4 cinzas. Meus amigos, eu errei e feio, não era ele. Então vou ensinar dois métodos para descobrir quem é a entrada common, para você não errar como eu.
1° Método
O método mais seguro precisa do multímetro, para medir a resistência das bobinas. Já que o common está conectado a todas as bobinas, ele vai ter uma resistência menor do que uma das bobinas. Para realizar a medição, conectei um dos fios do multímetro em uma das entradas da bobina e fiquei mudando a entrada do fio até achar uma leitura menor. A primeira leitura foi 7.3 ohms, depois continuei até que cheguei no ultimo fio que deu uma resistência menor de 5.1 ohms. Como mostram as figuras abaixo:
2° Método
Não é o método mais seguro, pois você poderá danificar a estrutura do motor, então tenha cuidado a utilizar este método, como um amigo meu fala, engenharia reversa. Vamos abrir o motor e procurar no olho qual é o common. Como você pode notar na imagem abaixo. Podemos ver que tem uma trilha que está conectada em dois fios enquanto as outras só tem uma trilha.
Você também poderá utilizar o método da tentativa para descobrir, utilizando a montagem sem conhecer as devidas entradas, efetuando as trocas das entradas até o motor funcionar normalmente. Pode ser mais arriscado do que o método anterior, se você não conhece o funcionamento do motor.
Pronto! Já achamos o fio common, agora vamos fazer as conexões do motor, do drive ULN2003AN e Arduino.
Para realizar a montagem, utilizei a imagem abaixo para me orientar:
Observando as entradas 8 e 9, nota-se que temos uma fonte conectada entre estas duas entradas, uma fonte de +5 V. Essa fonte é uma fonte externa. Não é +5 V que o próprio arduino oferece. Não é recomendado utilizá-la, pois poderá danificar seu Arduino. Você poderá usar uma fonte de +5 V e +12 V, utilizei as duas e funcionaram corretamente.
A seguir, outra imagem que vocês poderão utilizar para se orientar na realização da montagem. O motor não é o mesmo, mas é só para você ter uma melhor noção da montagem, pois sabendo onde é a entrada common você poderá saber as outras:
Veja uma imagem de como ficou minha montagem:
Agora, vamos a parte do código do arduino. Você vai pensar que o código é algo grande, difícil de entender e muito complicado, mas não é assim. Os códigos que vamos usar são exemplos da IDE do arduino , File > Examples > Stepper . Dentro desse caminho, como demonstra a imagem abaixo, temos 4 códigos exemplos: MotorKnob, stepper_oneRevolution, stepper_oneStepAtATime e stepper_speedControl.
/* Exemplo disponível na biblioteca Stepper.h, criado por Tom Igoe Traduzido por Dragão sem chama em Janeiro de 2015 www.dragaosemchama.com.br */ #include <Stepper.h> //Inclusão da biblioteca const int passosPorVolta = 200; // Numero de passos por volta, geralmente é dado no próprio motor // As vezes é fornecido o angulo de passo, divida 360 por esse numero para saber o numero // de passos por volta // Declaração de um motor de passo nos pinos 8 a 11: Stepper myStepper(passosPorVolta, 8,9,10,11); void setup() { // Velocidade do motor em pwm: myStepper.setSpeed(60); // Inialização da serial para debug: Serial.begin(9600); } void loop() { // Uma volta no sentido horário: Serial.println("horario"); myStepper.step(passosPorVolta); delay(500); // Uma volta no sentido anti-horário: Serial.println("anti-horario"); myStepper.step(-passosPorVolta); delay(500); }
Agora vamos ver os vídeos de cada ação do motor de passo para os devidos códigos:
MotorKnob:
stepper_oneRevolution:
stepper_oneStepAtATime:
stepper_speedControl:
E, com pouco de criatividade, o Mario poderá até entrar na brincadeira:
Referências:
Talkingelectronics – STEPPER MOTOR CONTROLLER;
Stepper Motor Controlling Using ULN2003;
Stepper Motor 5V 4-Phase 5-Wire & ULN2003 Driver Board for Arduino;
boa noite
Estou com um motor de passo de 12 fios, 24 volts 2,8A , qual drive voce me indicaria?
Minha imensa gratidão.
Olá meu caro, como conecto este motor de 5 fios no drive A4988, pois o motor tem 5 fios e o drive A4988 só aceita 4 fios.
parabéns amigos , adoramos esses coisas , mas ainda sou leigo no assunto , tenho muita criatividade , estou montando um projeto para escola gigantesco , comprei um motor de passo 17 , gostaria apenas de ligá-lo em uma bateria ou fonte eu acho , para que ele rodasse para um lado , apertasse um botão ele parasse e rodasse do outro lado , poderia me dar uma luz , quanto a o que tenho que comprar ou montar . obrigado e parabéns de novo pelo site . um dia eu chego nesse nível rsrsr.
Olá Marco
Infelizmente o motor de passo não pode ser apenas conectado a uma fonte, pois é um pouco mais complexo. Você tem Arduino? A forma mais fácil de controlar um motor de passo que posso imaginar é como o Márcio mostra no post acima.
Talvez um motor DC (desses de carrinho mesmo) seja mais adequado ao seu projeto.