Controlando Motor de Passo (Stepper Motor), 5 fios, com ULN2003AN e Arduino

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 de passo em impressoras. 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.

DSC01871

 

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.

 

steps

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

5,6,8,wires-Identification

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

DSC01875

 

DSC01874

 

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.

imagem

 

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:

montagem

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:

StepperMotor_bb

 

 

Veja uma imagem de como ficou minha montagem:

DSC01890

 

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.

Captura de tela inteira 30122014 103631.bmp

 

 

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:

Wikipedia – ULN2003A;

Talkingelectronics – STEPPER MOTOR CONTROLLER;

Stepper Motor Controlling Using ULN2003;

Stepper Motor 5V 4-Phase 5-Wire & ULN2003 Driver Board for Arduino;

Wikipedia – Stepper Motor;

Fritzing.

Márcio Albuquerque

Estudante de Engenharia de Computação - UFC Conhecimentos: Em Programação Android, Arduino, C/C++, Blender, Raspberry Pi entre outros. Amante de fotografia e livros; Mais sobre mim: http://lattes.cnpq.br/2965285710576270

3 comentários em “Controlando Motor de Passo (Stepper Motor), 5 fios, com ULN2003AN e Arduino

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

*