Você está na página 1de 29

Por Fernando Koyanagi 1

Motor de passo como servo


(Vídeo da montagem)

2
Características principais
 Permite um posicionamento realmente assistido, através do
sensor acoplado ao eixo do motor.

 É capaz de retornar sua posição real através da leitura do


potenciômetro sensor.

 Possui uma rotina simples mas eficiente que leva a


correções automáticas da posição do eixo caso pequenos
distúrbios ocorram.

 Torque elevado se comparado com a maioria dos servos de


baixo custo disponíveis.

 Permite criar ajustes para movimentos angulares diversos


alterando o sensor, ou simplesmente acoplando a outro eixo.

3
Montagem . . .
A montagem será praticamente a mesma utilizada no vídeo
anterior. Mas desta vez, acrescentaremos dois potenciômetros.

4
Montagem . . .
Um deles servirá apenas para que tenhamos um modo de
enviar uma posição para ajuste. Neste caso, o potenciômetro
que chamaremos de COMANDO, determinará a posição do
motor.

5
Montagem . . .
O outro funcionará como um sensor da posição atual do eixo.
Para isso vamos prender o eixo do motor ao manípulo do
potenciômetro.

6
Montagem . . .
Conectaremos os potenciômetros
as entradas analógicas A0 e A1.

• O EIXO conectaremos
ao pino A0 (fio roxo).

• O COMANDO
conectaremos ao pino
A1 (fio laranja).

7
MAS ATENÇÃO !!!
Antes de prender o potenciômetro sensor ao
eixo, teste a montagem para verificar se a
rotação está ocorrendo no sentido correto, ou
seja, ao aumentar o potenciômetro de comando o
motor gira no sentido de aumentar o
potenciômetro sensor.

Se a rotação estiver ocorrendo ao contrário,


simplesmente inverta a polarização de um dos
potenciômetros.

Como o torque do motor de passo costuma ser


alto, ele pode danificar o potenciômetro sensor
tentando levá-lo para uma posição que não pode
ser alcançada.

8
Montagem do circuito

Conexões
ARDUINO, REGULADOR E FIO Módulo L298
MOTOR
Pino 2 - Arduino AZUL In_1
Pino 3 - Arduino AZUL In_2
Pino 4 - Arduino LARANJA In_3
Pino 5 - Arduino LARANJA In_4
GND - Arduino PRETO GND
Saída do Regulador AMARELO +12V
GND do Regulador PRETO GND
A+ VERMELHO Motor A
A- PRETO Motor A
B+ VERMELHO Motor B
B- PRETO Motor B

9
Código – Fonte do Arduino

Declarações Globais:
(constantes)

Começamos definindo constantes que


representarão os pinos D2, D3, D4, D4 e D5 do
Arduino. Estes pinos serão os responsáveis pela
transmissão da sequencia de acionamento para o
driver.

Transformamos a variável chamada “velocidade”,


em uma constante e criamos uma constante
chamada “tolerância” que será usada como um
parâmetro para determinar o ajuste mínimo. 10
Código – Fonte do Arduino

Declarações Globais:
(Variáveis)

Declaramos 3 variáveis globais que serão responsáveis por


armazenar durante todo o programa a última leitura do
comando, a última leitura do eixo e o passo atual que que se
encontra o motor, respectivamente.

11
Código – Fonte do Arduino

Setup()

Na função setup() ajustamos os pinos de controle do driver


como fizemos anteriormente, mas agora acrescentamos os
ajustes para os pinos de leitura dos potenciômetros, que serão
ajustados como entradas (INPUT).

12
Código – Fonte do Arduino

Loop():

Na função loop() realizamos a leitura dos potenciômetros para


obter os valores para o COMANDO e para a posição atual do
EIXO.

Comparamos estes valores para determinar para qual direção


o eixo deve se mover. No sentido de aumentar ou diminuir o
valor do potenciômetro sensor.
13
Código – Fonte do Arduino
Tolerância total

(-) “tolerancia” (+) “tolerancia”

Valor alvo
Loop():
A ideia geral é que o programa tentará fazer com
que os dois valores dos potenciômetros sejam
iguais.

No cálculo, incluímos a constante “tolerancia”


para que seja possível lidar com ruídos na leitura
aumentando a faixa alvo. 14
Código – Fonte do Arduino
girar (int direcao):

A função girar receberá um parâmetro que


indicará para qual lado o motor deverá
girar.

Este parâmetro é enviado pela avaliação


dos valores que ocorre no loop, como
vimos a pouco.

O valor do parâmetro “direcao”


determinará se o passo deve ser
incrementado ou decrementado.

Criamos essa função separadamente


somente para ilustrar melhor o
funcionamento do programa. Poderíamos
ter incluído este código diretamente na
avaliação que ocorre no loop.
15
Código – Fonte do Arduino
ajustar_passo(int bobina):

A função ajustar_passo já é conhecida


da montagem do vídeo anterior.

É ela que efetivamente ativa ou


desativa os pinos de controle do
arduino para acionar o driver e
consequentemente promover a
polarização correta das bobinas do
motor.

Assim, ela é responsável por executar


os passos determinados pelas
avaliações das funções anteriores.

16
Entendendo o programa

17
Entendendo o programa

18
Entendendo o programa

19
Entendendo o programa

20
Entendendo o programa

21
Juntando tudo . . .

22
Juntando tudo . . .

23
Juntando tudo . . .

24
Juntando tudo . . .

25
Juntando tudo . . .

26
Juntando tudo . . .

27
Juntando tudo . . .

28
Próximo tutorial
Automação de uma casa . . .

Em www.fernandok.com
Download arquivo PDF dos diagramas
Download arquivo INO do código fonte

29

Você também pode gostar