Controlando Motor de Passo com Arduino + Driver ULN2003

1.879 views

Olá pessoal! Já utilizaram motor de passo com arduino para seus projetos? Hoje vamos abordar o uso e controle deste Motor de Passo + Drive ULN2003.

O motor de passo é um motor elétrico que desloca seu eixo um determinado ângulo a cada pulso recebido do drive de controle. Esse ângulo que o motor desloca o eixo varia de acordo com o número de passos por volta que o motor possui. Por exemplo, se um motor possui 200 PPV (Passos por volta), isso significa que para que ele complete uma volta completa no eixo ele precisa executar 200 passos, ou ainda que cada passo do eixo é de 1,8º. Existem inúmeros modelos de motores com diferentes valores de passos por volta, isso muda de motor para motor de acordo com sua forma construtiva.

Existem mais três parâmetros importantes a serem observados em um motor de passo, o torque, a corrente por fase e a quantidade de fios. O torque é importante para saber se o motor vai suportar o peso a ser movimentado pelo eixo, já a corrente por fase e a quantidade de fios é importante para a escolha do driver que controlará o motor.

Neste experimento vamos utilizar o motor 28BYJ-48, conforme visto na próxima imagem:

 

Motor de Passo + Drive ULN2003
Figura 1 – Motor de passo 28BYJ-48

 

Ele é um motor de passo 5V, que possui ângulo de 5,625º de giro e necessita de 64 passos para realizar uma volta completa. É do tipo unipolar: possui 5 fios, dentre eles 4 fases e um fio de derivação central. Para outras informações, consulte o datasheet aqui.

Para realizar o controle do motor de passo com arduino, é necessário uso de Driver, que nada mais é um conversor de sinais de comando para sinais de potência, necessários para funcionamento do motor. Utilizaremos o circuito integrado ULN2003, que já vem no kit disponível na loja.

Esquema do Motor com Driver
Figura 2 – Esquema do motor com driver

 

Vamos realizar o controle deste motor passo com arduino através de duas unidades de uma chave táctil para alterar o sentido de giro.

Os materiais estão descritos a seguir:

Materiais Necessários

1 Unidade – Arduino Uno Original ou Arduino Uno Compatível;

2 Unidades – Chave Táctil 4 Terminais;

1 Unidade – Motor de Passo + Drive ULN2003;

1 Unidade – Protoboard 830 Pontos;

1 Unidade – Jumper Macho Macho;

1 Unidade – Jumper Macho Fêmea;

 

Circuito Fritzing – Motor de Passo com Arduino

O circuito deste projeto pode ser visto na imagem abaixo:

Circuito Fritzing ULN2003
Figura 3 – Circuito Fritzing ULN2003

 

Não é necessário se atentar às ligações do motor ao driver, pois já possui um soquete para encaixar de uma única maneira.

É recomendável o uso de uma fonte externa de pelo menos 1A devido à corrente do motor. Alimente utilizando a entrada de fonte externa da própria placa Arduino ou fonte ajustável para protoboard, disponíveis na loja.

 

Programação

O sketch desenvolvido é:

 

É necessário o uso da biblioteca Stepper_28BYJ_48. Você pode baixar neste link ou instalar a partir da própria IDE Arduino, através do menu Sketch => Incluir Biblioteca => Gerenciar Bibliotecas.

Para garantir que a entrada seja sempre LOW ou HIGH, sem nenhum tipo de valores intermediários, utilizamos resistor de Pullup ou Pulldown. Estes resistores também podem estar na parte externa do circuito. Segundo o site Arduino.cc, um bom valor para resistores Pulldown ou Pullup é o Resistor 10k. Para facilitar a montagem, utilizamos os resistores internos do microcontrolador.

No sketch utilizamos a opção de INPUT_PULLUP para os botões. O microcontrolador ATMega garante resistência interna de 20kΩ e 50kΩ. Isto garante que a entrada seja sempre 5V (HIGH) quando padrão ou 0V (LOW) quando o botão for pressionado, conforme exemplo abaixo:

 

Resistores Pulldown e PullUp
Figura 4 – Resistores Pulldown e PullUp

 

No nosso exemplo, quando o botão está pressionado, temos uma entrada em LOW, que faz girar o motor.

 

Funcionamento – Motor de Passo com Arduino

A montagem final pode ser vista na próxima imagem:

 

Circuito Montado no Protoboard Utilizando Motor de Passo com Arduino
Figura 5 – Circuito Montado no Protoboard Utilizando Motor de Passo com Arduino

 

O motor deve girar sentido horário ou anti-horário, dependendo de qual botão foi pressionado.

 

Acionamento do Motor de Passo com Arduino
Figura 6 – Acionamento do motor com botão

 

 

É possível a implementação deste tipo de motor em diversos projetos, incluindo montagem de impressora 3D, CNC entre muitos outros.

Se ocorrer algum tipo de erro, verifique as ligações e se os pares estão corretos IN1 e IN2, IN3 e IN4. Também confira no sketch se os pinos declarados são os mesmos onde você conectou ao Arduino.

Espero que tenha curtido este tutorial.  Para dúvidas e sugestões, faça seus comentários abaixo! Confira outros produtos em nossa loja!

(Visited 1.527 times, 7 visits today)