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 MOTOR FIO 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 Módulo L298 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 Loop(): Valor alvo 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