por fernando koyanagi 1 - animobygames.com.br · código – fonte do arduino 15 girar (int...

29
Por Fernando Koyanagi 1

Upload: vothuy

Post on 10-Dec-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

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.

7

• O EIXO conectaremos

ao pino A0 (fio roxo).

• O COMANDO

conectaremos ao pino

A1 (fio laranja).

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

ARDUINO, REGULADOR E

MOTOR

FIO Módulo L298

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

Conexões

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

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

Tolerância total

Valor alvo

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

Código – Fonte do Arduino

15

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.

Código – Fonte do Arduino

16

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.

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