por fernando koyanagi 1 - animobygames.com.br · código – fonte do arduino 15 girar (int...
TRANSCRIPT
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.
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