Controle de eixo – encoder incremental

O encoder, ou transdutor de velocidade, é o dispositivo responsável pela tradução de um movimento mecânico em sinais elétricos.

Em sistemas de automação, a função básica de um encoder é passar ao controle de eixo a informação de velocidade e posicionamento do eixo.

Nas próximas aulas iremos abordar o assunto, explicando os tipos de transdutores existentes, o princípio de funcionamento de um encoder do tipo incremental e mostrando um projeto de leitura de posicionamento de eixo feito com o Arduino.

 

Introdução

 

Em qualquer sistema de controle com realimentação temos algum tipo de atuador e algum tipo de dispositivo de leitura que informa ao controle o estado atual da variável controlada.

Na figura abaixo vemos um diagrama que descreve um sistema de controle genérico.

Poderia ser um sistema de controle de temperatura por exemplo. Neste caso o atuador seria algum tipo de aquecedor, por exemplo uma resistência de aquecimento. A resistência faz a variável de controle, que é a temperatura, subir.

O sensor poderia ser um termômetro que faz a leitura da temperatura e informa ao sistema de controle o valor atual da variável.

O sistema de controle, por sua vez, fica ligando e desligando o atuador para manter a variável de controle o mais próximo possível do ajuste (set-point).

controle

Mas o assunto desta aula não é controle de temperatura. Só estou criando um paralelo para mostrar que qualquer sistema de controle tem suas semelhanças.

Para o caso de um sistema de controle de velocidade ou posição de um eixo controlado com motor elétrico o atuador seria o conjunto “driver-motor”.

O sensor seria o encoder. O encoder fica acoplado mecanicamente ao eixo que faz o movimento de forma que haja uma relação direta entre o movimento do eixo e o giro do encoder. Conforme podemos ver na figura do encoder abaixo, ele possui um eixo giratório que deve ficar conectado ao eixo e sentir o movimento.

Low-cost-rotary-encoder-400-ppr-LPD3806.png_350x350

Para sua correta utilização em um projeto de controle, três características importantes devem ser observadas em relação ao encoder. Elas são: tensão de alimentação, tipo de interface e resolução de pulsos por volta.

Mas antes de falarmos de cada uma dessas características, vamos explicar o funcionamento do encoder.

 

Funcionamento

 

Nesta aula vamos trabalhar apenas com o encoder do tipo incremental. Existe outro tipo chamado encoder absoluto que possui o padrão de sinais bem diferente. No final desta aula falaremos um pouco sobre ele.

O encoder incremental é um dispositivo que gera dois sinais de pulsos digitais chamados A e B. Alguns tipos de encoder incremental possuem um terceiro sinal chamado Ref que gera um pulso a cada volta para dar a referência de posicionamento ao controle.

Os sinais A e B tem o padrão descrito na figura abaixo:

índice1

Pelo padrão da figura podemos ver que a cada fase ocorre uma mudança de nível em um dos dois sinais A ou B. A sequência das mudanças muda com o sentido do giro.

No sentido anti-horário o sinal B faz a transição positiva (0 para 1) quando o sinal A está em 0. Já no sentido horário, o sinal B faz esta mesma transição positiva quando o sinal A está em 1.

A frequência dos sinais A e B é proporcional à velocidade de giro do encoder. Cada encoder possui uma característica que define o número de pulsos por volta. Esta é uma das características que falamos acima.

Por exemplo, se o encoder for de 360 pulsos por volta quer dizer que a cada volta o encoder gera 360 pulsos no sinal A e no sinal B. Sendo o número de pulsos por volta fixo, isso quer dizer que quando o encoder gira a uma velocidade maior, a frequência dos sinais A e B é maior.

Outra característica importante é a tensão de alimentação do encoder. Os tipos mais comuns de encoder são com alimentação 5 volts ou 24 volts. Normalmente escolhemos o tipo de alimentação do encoder de acordo também com o tipo de interface dos sinais, porque os sinais do encoder seguem o mesmo padrão do nível de alimentação do mesmo.

Encoder de alimentação 5 volts têm sinais com nível de tensão de 0 a 5 volts, e encoder de alimentação 24 volts têm sinais com nível de tensão de 0 a 24 volts.

Os níveis de tensão dos sinais devem ser compatíveis com as entradas do sistema que fará a leitura do encoder.

Leitura

 

O sistema que faz a leitura do encoder recebe os sinais A, B e Ref e transforma em uma contagem “X” que representa o posicionamento atual do eixo. Alguns tipos de controladores lógicos programáveis (CLP) possuem entradas para leitura de encoder e cada um tem uma forma de fazer esta leitura.

O que vou descrever a seguir é apenas uma forma de fazer a leitura do encoder para o leitor ter uma ideia de como funciona o processo.

O sistema inicia observando apenas o sinal Ref. O valor da contagem não se altera nesta fase.

Quando o pulso do sinal Ref acontece (lembre-se que o sinal Ref tem um pulso por volta) o sistema zera a contagem “X” e passa a “observar” os sinais A e B.

carta1

Quando acontece uma transição positiva do sinal B é o momento de atualizar o valor da contagem “X”.

Se o sinal A estiver em nível lógico 1 neste momento o valor da contagem “X” é incrementado.

carta2

Se o sinal A estiver em nível lógico 0 no momento da transição do sinal B, o valor da contagem “X” é decrementado.

carta3

Não importa muito o modo que o controle faz a leitura do encoder. O importante é que os movimentos do eixo são traduzidos para um valor de contagem que fica disponível para o controle.

Vai depender muito das necessidades do projeto de controle que estamos desenvolvendo.

Por exemplo, se precisarmos de maior resolução na informação de posicionamento do eixo, podemos fazer a contagem ser atualizada a cada transição do sinal B.

Passaríamos então a usar a transição positiva (de 0 para 1) e a transição negativa (de 1 para 0) do sinal B.

Podemos até usar as transições do sinal A ao mesmo tempo, aumentando a resolução em 4 vezes.

Assim sendo o encoder incremental, fornece os sinais necessários para que algum dispositivo faça o controle da contagem baseado nesses sinais.

Já no encoder absoluto o valor da contagem é intrínseco a posição do eixo do encoder e os sinais fornecem o valor atual desta contagem. Não há necessidade de um contador de pulsos externos como no caso do encoder incremental.

Por outro lado o encoder absoluto é muito mais caro e necessita de um número maior de sinais de interface para ser lido.

Nas próximas aulas vamos explorar mais a integração do encoder com o Arduino.

Até a próxima.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s