image_pdfimage_print

Neste Lab explicaremos o funcionamento e teste de um encoder industrial de quadratura, muito utilizado na indústria como sistema de posicionamento de eixos, indicação de velocidade de rotação, giro e posicionamento em Magazines ou “castelo” de ferramentas de corte em máquinas operatrizes. Podemos citar também seu uso em aparelhos eletrodomésticos como micro-ondas e aparelhos de som para  posicionamento do seletor de volume ou funções do aparelho.

imagem-encoders-industriais

Encoder Industrial

imagem-regua-heidenhain

Régua de medição Heidenhain

O encoder

Encoders são tipicamente utilizados para determinar posição, velocidade ou sentido de giro de um eixo de motor, fuso ou qualquer outro dispositivo que se movimente. Informações precisas para controle em uma variedade de aplicações como mesas rotativas, máquinas pick and place, máquinas operatrizes, empacotadoras, robótica e outras máquinas são obtidas com a utilização dos encoders.

Um encoder (para aplicações industriais) é um tipo de sensor especial que captura a posição e a transmite para outro dispositivo como comandos numéricos computadorizados (CNC) ou drivers controladores de motor ou servomotor principalmente como sinal de resposta (feed back da malha fechada de controle) ao movimento determinado pelo controlador. A figura abaixo ilustra a aplicação típica de um encoder acoplado a um fuso ou mesa rotativa de uma máquina CNC.

montagem-tipica-de-um-encoder

Montagem Tipica de um encoder

Tipos de Encoders

São dois os tipos básicos de encoders: Lineares e Rotativos. Os dois dispositivos funcionam de maneira similar. Como o nome indica, os encoders do tipo linear medem a posição de um objeto ao longo de um comprimento e os rotativos identificam a posição através do movimento de rotação no eixo. A escolha de qual tipo depende dos requisitos envolvidos na aplicação.

Encoder linear

Um encoder linear, também chamado de régua de medição, consiste de uma escala (fita codificada) e um sensor que lê os espaçamentos entre as escalas da fita. Sua resolução é medida em pulsos por distância. Uma régua que apresenta 100 pulsos por milímetro possui uma resolução de 100 pulsos de contagem das marcas (códigos) pelo sensor a cada 1 milímetro linear na fita do encoder.

Este tipo de encoder é comum em máquinas onde o posicionamento fornecido pelo encoder do motor ou na ponta do fuso não é suficiente para a precisão do processo. Como exemplo temos máquinas para medir dentes de engrenagens, retíficas de dentes de engrenagens dentre outras onde a resolução e precisão de medida podem chegar a 0,0001 mm. A figura abaixo ilustra o modelo de funcionamento deste sensor.

linear-encoder-heidenhain

Linear encoder Heidenhain

Encoder rotativo

Os encoders rotativos são usados para medir o movimento rotacional de um eixo. A figura abaixo mostra os componentes fundamentais de um encoder rotatório, que é formado por um diodo emissor de luz (LED), um disco que pode ser construído de vidro, metal ou plástico e um detector luminoso colocado do lado oposto do disco.

O disco, que é montado em um eixo rotativo, tem padrões formados por setores opacos e transparentes a luz. Conforme o disco gira, os segmentos opacos bloqueiam a luz e onde o vidro é transparente a luz pode passar. Esse movimento gera pulsos de ondas quadradas, que podem então ser interpretados em posição ou movimento.

imagem-encoder-rotativo

Esquema Encoder rotativo

Encoder Absoluto

Um encoder absoluto é um dispositivo que mantém a informação de sua posição mesmo quando o mesmo é desligado da fonte de energia. Este possui uma série de anéis codificados (para o tipo rotativo) que representam sua posição absoluta em relação ao ângulo atual. A imagem abaixo mostra os discos de um encoder absoluto fabricado pela empresa alemã HEIDENHAIN.

imagem-discos-encoder-absoluto

Imagem discos encoder absoluto

Um encoder absoluto pode ser codificado de duas maneiras, sendo elas utilizando códigos binários ou por código Gray, ambos fornecidos pela posição absoluta do disco em relação ao fotorreceptor.

Codificação Binária Padrão

Um exemplo de uma codificação binária de um encoder, de uma forma extremamente simplificada para um encoder com somente 3 anéis e 8 posições absolutas, pode ser visto abaixo.

imagem-codificacao-binaria-de-um-encoder-absoluto

Codificação binaria encoder absoluto

tabela-encoder-absoluto-simples

Tabela encoder absoluto simples

Este tipo de posicionamento pode ser visto nos seletores de multímetros de bancada onde mesmo que o aparelho tenha sua alimentação removida, quando realimentado retorna à função selecionada previamente.

No exemplo anterior, os contatos produzem uma contagem binária ao redor do disco. No entanto, esta montagem apresenta o problema de que se o disco parar entre dois setores adjacentes ou o contato não esteja perfeitamente alinhado, se torna impossível de determinar a posição real do eixo.

A mudança de posição 3 para 4 apresenta um grande problema: normalmente, os contatos nunca são totalmente alinhados. Se o contato 1 mudar seu status seguido do contato 3 e depois do 2 por exemplo, a posição atual do encoder será:

OFF – ON – ON (posição inicial)

ON – ON – ON (primeiro, contato um muda para ON)

ON – ON – OFF (próximo, contato 3 muda para OFF)

ON – OFF – OFF (finalmente, o contato 2 muda para OFF)

Oservando os setores indicados na tabela acima a ordem referente a codificação anterior será 3, 7, 6 e 4, logo aparentemente o eixo do encoder saltou da posição 3 para a 7, 7 para 6 e depois para a posição 4 sequencialmente. Esta situação não é desejada principalmente no feed back de controles automáticos. Para solucionar este problema, temos os encoders que apresentam sua codificação seguindo o código Gray.

Codificação em código Gray

Para evitar o problema descrito anteriormente, a o código Gray é utilizado. Este é um sistema de contagem binária que quaisquer dois contatos adjacentes são diferentes de apenas um bit. O exemplo abaixo ilustra o mesmo encoder com 3 posições apresentado anteriormente codificado em Gray.

imagem-codificacao-gray-de-um-encoder-absoluto

Imagem codificação Gray encoder absoluto

tabela-gray-encoder-absoluto-simples

Tabela Gray encoder absoluto simples

Neste exemplo, a transição da seção 3 para a 4 envolveu somente uma transição de contato do estado ON para OFF ou vice-versa. Isto quer dizer que uma interpretação de sequências incorretas não mais ocorrerá.

Encoder incremental

Um encoder incremental fornece sua posição através da contagem de pulsos individuais na escala graduada do disco ou régua. Se for utilizado para indicar posição de deslocamento, seus valores de leitura serão relativos a um ponto, geralmente o ponto inicial após a realimentação. A figura abaixo ilustra os discos de um encoder incremental fabricado pela HEIDENHAIN.

imagem-discos-encoder-incremental

Discos encoder incremental

Em máquinas operatrizes industriais, quando este tipo de encoder é aplicado ao sistema de medição da máquina, o eixo ao qual este encoder está acoplado deve ser levado a um ponto de referência conhecido onde a posição do eixo será referenciada e reconhecida pelo sistema de comando CNC.

Um encoder que tivesse um único conjunto de pulsos não seria útil pois não teria como indicar o sentido da rotação do disco. Usando duas faixas de código com setores posicionados com defasagem de 90° entre si, os dois canais de saída do encoder incremental, que neste caso também pode ser chamado de encoder de quadratura, podem indicar a posição e o sentido da rotação. Se A estiver à frente de B, por exemplo, o disco estará girando no sentido horário. Se B estiver à frente de A, o disco estará girando no sentido anti-horário. A figura abaixo ilustra a direção de contagem dos pulsos nas bordas de subida e descida do sinal maximizando a contagem.

dinamica-do-sentido-de-contagem-dos-pulsos

Dinâmica do sentido de contagem dos pulsos

Dessa forma, monitorando o número de pulsos e a fase relativa dos sinais A e B, podemos acompanhar a posição e o sentido da rotação do encoder. A figura abaixo ilustra o posicionamento dos canais de um encoder e as tabelas indicam a codificação para ambos os sentidos de rotação.

saida-do-canal-a-e-b-de-um-encoder-incremental

Sinal de saida típica do canal A e B de um encoder incremental

tabelas-sentido-de-giro-encoder-incremental

Tabelas sentido de giro encoder incremental

Além disso, alguns encoders de quadratura têm um terceiro canal de saída denominado sinal zero, ou de referência que fornece um pulso por revolução. Este sinal pode ser utilizado para a determinação precisa de uma posição de referência. Na maior parte dos encoders, esse sinal é denominado Terminal Z, ou índice.

Outro tipo de encoder muito usado é o encoder diferencial, no qual há duas linhas para o sinal A, duas para o sinal B e duas para o sinal Z. As duas linhas do sinal A são A e /A, as duas linhas para o sinal B são B e /B e o sinal Z também possui o Z e /Z. Esse tipo de configuração é também chamada de push-pull pois as seis linhas sempre estão fornecendo uma tensão conhecida (0 V ou Vcc). Quando A estiver com Vcc, /A e vice-versa. No caso de um encoder single-ended que apresenta somente os canais A e B, A terá Vcc ou uma tensão flutuante. Os encoders diferenciais são frequentemente usados em ambientes com muito ruído elétrico, pois as medições diferenciais protegem a integridade do sinal. A figura abaixo ilustra o comportamento dos seis canais do encoder diferencial.

comportamento-dos-seis-canais-de-um-encoder-diferencial

Comportamento dos seis canais de um encoder diferencial

Diagrama de ligação

O diagrama de ligação se encontra na imagem abaixo. Os sinais do encoder foram ligados nos pinos de interrupção do Arduino Mega. No algoritmo proposto, utilizamos somente o canal A, B e Z para determinar a contagem dos pulsos e o número de voltas do eixo do encoder.

esquema-de-ligacao

Esquema de ligacao

O Arduino Mega foi utilizado devido ao grande número de pinos para interrupção externa, que no caso são exatamente 6 pinos. O LCD foi utilizado para indicar os dados lidos pelo encoder. Uma imagem ilustrando o resultado no display está disposta abaixo.

imagem-display

Imagem display

Algoritmo e testes

O algoritmo que determina todo o funcionamento desta aplicação está descrito abaixo e vários comentários estão inseridos no corpo do código para um melhor entendimento.

Através de algumas comparações utilizando if, else conseguimos determinar o sentido de contagem dos pulsos e até mesmo quadruplicar a precisão do encoder.

Como dispomos de 4 mudanças de sinais diferentes em um período de um dos canais, um encoder que possui 1024 pulsos por volta em um canal pode ter sua contagem dobrada se contarmos a borda de subida dos dois canais e quadruplicar se contarmos nas quatro transições dos dois canais (borda de subida e descida dos dois canais).

A imagem abaixo ilustra a montagem final deste protótipo.

GEDSC DIGITAL CAMERA

Imagem montagem final

Conclusão

Neste Lab descrevemos a implementação de um algoritmo e circuito para a leitura de um encoder industrial. Este dispositivo, como já descrito anteriormente, é muito importante e largamente utilizado em todos os sistemas industriais que necessitem de leitura do posicionamento e seu domínio de funcionamento e formas de interação se torna importante para quem trabalha com dispositivos eletrônicos utilizados na indústria.

Please follow and like us: