Você está na página 1de 9

Controle Motor de Passo

Projeto de teste para painel de controle de prensa hidráulica, com objetivo de uma fácil
e intuitiva interface Homem-Máquina. Trabalho tendo como base Arduino Uno, com
Botões de operação, potenciômetro e Display LCD, controlando e monitorando um
motor de passo ligado a um driver. Sendo este um projeto de protótipo.

Materiais utilizados:

 Arduino UNO;
 Botões;
 Display LCD 16x2;
 Módulo I2C para display LCD;
 Potenciômetro de 5K linear;
 Motor de passo para Arduino;
 Driver para motor de passo;

Primeiramente, vamos entender o motor de passo, que é o foco deste trabalho. Sendo
um interpretador de pulsos elétricos em discretos passos mecânicos, o motor de passo
possui uma ótima precisão e um torque muito forte em comparação com outros tipos
de motores, porém sua velocidade é bem baixa.
Os pulsos elétricos e suas sequencias aplicadas ao motor determinam a direção do
giro. Sua velocidade é determinada pela frequência de pulsos, levando em
consideração que o tamanho do ângulo do giro é relacionado com o número pulsos
aplicados.

Sua estrutura interna, de modo geral, pode ser descrita como pares de bobinas
(solenóides) alinhadas, que quando energizadas, atraem o rotor, fazendo com que o
mesmo se desloque, numa pequena variação de ângulo, chamada passo.

LIGAÇÕES

1. Tomemos o Arduino como o centro das ligações. Vamos começar com o display,
conectando-o no módulo I2C, o que nos faz
economizar pinos no Arduino e facilitar a
programação. O módulo faz com que o display
tenha somente quatro fios a serem ligados: Vcc,
Gnd, SDA e SCL. Nesse caso podemos ligar a
alimentação no Arduino, sendo o SDA e o SCL,
por padrão, os pinos A4 e A5 respectivamente,
para o Arduino Uno.
Para o esquema de exemplo temos o Display conectado diretamente ao CI PCF8574,
fornecendo as saídas SDA e SCL, que vão ser ligadas nos pinos A4 e A5. Neste caso
tornou-se mais complicado as ligações, mas no módulo já preparado, resume-se tudo
a apenas 4 fios.

2. Feitas as conexões do display, vamos para as conexões dos botões. Utilizando os


pinos 5, 6 e 7 para os botões: “Parar”, “Recuar” e “Avançar”, respectivamente,
podemos fazer suas ligações no Arduino. Um dos terminais de cada botão vai no
Gnd (não precisando de resistor para PULLDOWN, já que foi utilizado PULLUP do
Arduino), e o outro vai nos pinos referidos. Juntamente podemos ligar um buzzer
ao pino digital 3, para “apitar” quando pressionar algum botão.
3. Com botões prontos, vamos para o potenciômetro, ligando o pino de sinal na
entrada analógica A0 do Arduino, com seus pinos laterais ligados ao 5V e o Gnd,
também do Arduino.

4. Partindo para a estrela do show, temos o motor de passo, vamos conecta-lo ao


driver correspondente ao seu modelo, saindo do driver temos a alimentação de 5 a
12V, que é recomendada ser externa ao Arduino. Do driver utilizado para o motor de
passo utilizado, sai quatro fios das bobinas do motor, nesse projeto, ligaremos nos pinos 8,
9, 10 e 11.
Temos aqui um esquema de exemplo, onde o motor é ligado ao circuito integrado
ULN2003A, que possui uma matriz de 7 (sete) transistores NPN, capazes de
fornecer um ganho na saída, podendo controlar cargas de corrente até 600mA.
Nesse caso, utilizou-se de um motor 5 – 12V em corrente contínua para Arduino, o
que não vai consumir tanta corrente, nos permitindo utilizar tal CI.

Os pinos 1B, 2B, 3B e 4B do ULN2003A são conectados, respectivamente, nos


pinos digitais 8, 9, 10 e 11 do Arduino:

PROGRAMAÇÃO

Com as ligações devidamente feitas, vamos para a parte de programação do Arduino.


Começando com a inclusão de bibliotecas, em que temos a do motor de passo, já
pertencente a IDE do Arduino. Assim como precisamos da biblioteca necessária para
a interação do Modulo I2C com o Display:

 https://github.com/marcoschwartz/LiquidCrystal_I2C

Prosseguimos com as variáveis para o controle dos pinos:

Temos também as variáveis para configuração do Display:

Seguindo com a declaração das variáveis para o controle dos botões, assim como a
variável de velocidade do motor e suas configurações:
Podemos então configurar o Display e o motor de passo:

Sendo aqui os parâmetros do Display: endereço I2C, numero de colunas, número de


linhas. Já no motor temos: quantidade de passos, pinagem das bobinas alternadas por
pares.

Agora temos o Void Setup, em que vamos definir os pinos como entrada ou saída,
assim como inicializar o Display lcd:
Entrando no Loop, já podemos fazer o mapeamento da leitura do potenciômetro para
orientar a velocidade do motor:

Seguindo no loop, temos o controle para ativação dos botões, que vão guardar valores
numa variável dependendo de cada ativação, além de ativarem o buzzer num período
curto de tempo:
Os valores lidos na variável “sentido”, vão ser interpretados no Switch Case,
realizando as funções do motor para cada caso:

Onde vamos ter a mensagem que vai aparecer na tela, juntamente com a ação que o
motor vai realizar.

Para os próximos casos temos:

Você também pode gostar