Codificador Rotativo Incremental

Em aplicações industriais, às vezes pode ser necessário medir a posição ou a velocidade de um objeto em rotação como uma roda ou eixo / eixo. O codificador rotativo é um dispositivo eletromecânico que pode ser usado para obter essas medições.

Existem dois tipos de codificadores rotativos: codificadores rotativos incrementais e codificadores rotativos absolutos. Neste artigo, veremos codificadores rotativos incrementais, seu princípio de funcionamento e aplicações.

O que é um codificador rotativo incremental?

Codificadores incrementais pertencem à família de codificadores rotativos. Eles são usados ​​para obter informações como:

  • Posição
  • ângulo
  • Velocidade rotacional

Os encoders rotativos incrementais são encontrados principalmente em aplicações onde a medição de velocidade / velocidade angular é necessária. Isso é feito contando o número de pulsos por unidade de tempo gerados pelo codificador.

Ao contrário de seu irmão, o codificador rotativo absoluto, os codificadores incrementais não podem fornecer informações quando o eixo não está girando. Eles só podem fornecer informações sobre o movimento do eixo.

Os pulsos gerados pelo codificador rotativo incremental devem ser calculados e processados ​​em outro lugar. Este pode ser um microcontrolador ou um PLC (Controlador Lógico Programável). Usando a contagem de pulso, o controlador pode então converter as informações em informações como posição, velocidade e distância.

Como funciona um codificador rotativo incremental?

Os codificadores rotativos incrementais vêm em duas configurações:

  1. Codificadores incrementais de canal único
  2. Codificadores de canal duplo (quadratura)

Suas funcionalidades são quase semelhantes entre si. No entanto, os codificadores de canal duplo nos permitem detectar a direção de rotação que um codificador de canal único não consegue.

O princípio funcional de um codificador rotativo incremental é bastante simples. O sensor consiste em um disco rotativo com fenda preso ao eixo do mesmo.

Quando o eixo está girando, o disco também gira conforme mostrado na figura abaixo. Isso também é conhecido como 'roda de código'.

As ranhuras da roda são usadas para gerar 'pulsos' cada vez que uma ranhura fica alinhada com o sensor. Codificadores rotativos incrementais usam tecnologias como magnético, óptico, indutivo, capacitivo e laser para gerar este trem de pulso.

O diagrama acima ilustra a operação de um codificador rotativo incremental óptico. Uma fonte de luz (LED) é colocada através do disco e o dispositivo receptor (um fotodiodo / fototransistor) é colocado na linha de visão.

Quando o disco gira, os slots permitem a passagem de luz momentaneamente. Nesse momento, o feixe de luz atinge o receptor e emite um sinal lógico ALTO.

Quando o disco gira mais, o feixe de luz é obstruído e o receptor não recebe o feixe. Isso faz com que a saída desse canal correspondente vá para LOW lógico.

Os codificadores rotativos incrementais de canal duplo têm dois desses canais chamados de canal A e B. A localização dos slots para o canal B é ligeiramente deslocada dos slots para o canal A.

Às vezes, o sensor usa um único conjunto de slots e os receptores são colocados em um deslocamento.

Este arranjo especial permite que as saídas A e B fiquem 'fora de fase'.

O microcontrolador ou o PLC pode monitorar ambos os canais para detectar a direção de rotação.

Dependendo de qual canal (A ou B) indica uma borda ascendente primeiro, a direção também pode ser detectada. Os encoders de canal único têm apenas a saída do canal A e só podem dar saída a um único trem de pulso.

Por exemplo, no diagrama acima, uma borda ascendente em A após uma borda ascendente em B indica que a roda está girando no sentido anti-horário. Da mesma forma, uma borda ascendente em B após uma borda ascendente em A indica que a roda / eixo está girando no sentido horário.

Em alguns sensores, existe um terceiro canal chamado 'Z'. Ao contrário dos outros dois canais, geralmente há apenas um slot para este canal. Isso é usado para gerar um pulso por revolução para tarefas como homing e verificação de contagem de pulso.

Codificador Incremental vs. Absoluto

Os encoders incrementais só funcionam quando o eixo está girando.

Os sistemas que usam codificadores rotativos incrementais devem ter um programa sofisticado em execução para contar os pulsos que o sensor está produzindo para determinar a posição do eixo. Eles têm um disco com fenda igualmente espaçado atuando como a roda de código.

Os codificadores absolutos têm uma roda de código especializada. Contém um padrão de fenda não uniforme, um código exclusivo para cada posição do eixo.

Para qualquer posição do eixo, um codificador rotativo absoluto produz um código binário exclusivo que descreve a posição com precisão. Ele também retém a saída mesmo quando desligado, pois a própria roda de código contém o padrão.

Os codificadores incrementais precisam ser ligados o tempo todo para gerar constantemente o trem de pulso para cálculos de velocidade e distância. No entanto, os codificadores absolutos podem ser ligados quando necessário para obter uma leitura.

Em termos de complexidade, os codificadores incrementais são mais simples do que seus equivalentes absolutos. Portanto, os codificadores incrementais são mais baratos do que os codificadores rotativos absolutos.

Para que são usados ​​os codificadores incrementais?

Os codificadores rotativos incrementais encontram suas aplicações de eletrodomésticos a automóveis e aplicações de automação industrial.

Uma das aplicações mais populares para detecção de posição são os botões de controle em equipamentos eletrônicos, como configurações de rádio de carro. Os botões giratórios são infinitamente ajustáveis ​​e só funcionam quando o dispositivo está ligado.

Antigamente, os ratos eletromecânicos do computador também usavam esses sensores para rastrear a posição ao longo dos dois eixos.

Em aplicações industriais, codificadores incrementais são usados ​​para medir a velocidade de sistemas mecânicos. Isso é particularmente útil em sistemas de controle de movimento como transportadores de material, braços robóticos e máquinas CNC.

Especificações do codificador incremental

Ao escolher um codificador para uma aplicação específica, há vários fatores a serem considerados.

  • diâmetro externo
    • O diâmetro externo da caixa do sensor (útil durante a montagem)
  • Tipo de eixo e diâmetro
    • Existem opções para o tipo de eixo, como eixo oco, eixo semi-oco, eixo oco cego e furo passante.
    • O diâmetro deve estar dentro das tolerâncias para ser adequadamente acoplado ao objeto. Estão disponíveis eixos de 20 mm, 25 mm e 30 mm.
  • Caminho de saída e comprimento do cabo
    • A posição da conexão do cabo de saída. Existem duas configurações: para o lado e para fora.A configuração lateral permite a conexão de um cabo destacável na lateral. O tipo de saída de cabo possui um cabo fixo que sai da parte traseira do invólucro do sensor.
    • Para cabos fixos, os sensores geralmente vêm equipados com um cabo preto 2M.
  • tensão de alimentação
    • Indica a tensão máxima de operação do sensor. Existem opções para fontes CC de% v (fixo), 5-12 V, 12-24 V e 24 V (fixo).
  • Tipo de sinal de saída
    • A para codificadores de canal único, A e B para codificadores de canal duplo (quadratura) e um Z opcional para saída de pulso de índice
  • Contagem de pulso
    • Este parâmetro descreve os valores de pulsos por revolução (PPR) e contador por revolução (CPR) que o sensor suporta.
  • Método de saída de sinal
    • O tipo de sinal de saída: saída de tensão (V) / corrente (C), saída complementar (F) ou saída de acionamento de linha (L, T)

Características elétricas do codificador incremental

  • tensão de alimentação
    • Pode variar de 5V a 24V
  • Consumo de corrente
    • Para os tipos de saída de tensão e corrente, o consumo de corrente típico é inferior a 60mA. Os tipos de driver podem consumir até 100mA.
  • Tensão de saída (para tipo de saída de tensão)
    • Tensão de nível ALTO:> = 3.5 V
    • Tensão de nível BAIXO: <= 0.5V
  • Tempos de ascensão e queda
    • Descreve o tempo que o sensor leva para mudar a saída de alta para baixa (queda) ou baixa para alta (aumento)
    • Tempo de aumento típico para tipo de saída de tensão: <= 500ns
    • Tempo de queda típico para tipo de saída de tensão: <= 100ns
  • resposta de freqüência
    • Frequência máxima em que o sensor pode alternar suas saídas
    • Normalmente fica abaixo de 300 kHz

Circuito Codificador Rotativo Incremental

Como mencionado antes, os codificadores rotativos podem ser conectados a PLCs ou microcontroladores para medir a velocidade, posição, distância e direção de rotação de um eixo. Esses dispositivos precisam ser especialmente programados para calcular esses valores e tomar decisões.

Existem também dispositivos especializados, como contadores e tacômetros, que podem realizar esses cálculos prontos para uso e indicar os valores diretamente. Vamos dar uma olhada em alguns dos circuitos que podemos construir usando codificadores rotativos incrementais:

Tacômetro autoalimentado

Com o H7ER série tacômetro autoalimentado da Omron, um codificador incremental de canal único pode ser usado para configurar um tacômetro que pode exibir o RPM de um eixo.

A E6A2 é um codificador incremental de quadratura tipo AB com NPN, saídas de coletor aberto. Conectado ao H7ER, o sistema atua como um tacômetro que conta a frequência dos pulsos para determinar o RPM do eixo conectado.

Contador de alta / baixa de alta velocidade

A K3NC é um contador de aumento / redução de alta velocidade com uma variedade de modos de saída. Este dispositivo pode ser conectado a um codificador rotativo do tipo AB para formar um contador ascendente / descendente de acordo com o sentido de rotação.

Com esta configuração, o medidor de contagem pode ser configurado para emitir um sinal para ligar / desligar uma máquina comparando a contagem de pulsos. Ele também suporta a comunicação com um PLC para aplicações de controle de processo.

Usar esses componentes prontos para uso pode eliminar a necessidade de um dispositivo complexo como um PLC, onde não é absolutamente necessário. Isso é especialmente útil para sistemas de escala menor.

Para uso em um sistema baseado em PLC, um cartão HSC (High Speed ​​Counter) é recomendado para aplicações de alta velocidade. A figura abaixo mostra a conexão de um codificador rotativo incremental do tipo coletor aberto PNP a uma placa de entrada HSC acoplada a um CLP.

O sensor tem saídas A, B e Z e elas são conectadas à placa HSC conforme mostrado acima. A placa do contador pode ser configurada para enviar a leitura do contador da velocidade do eixo do codificador para o PLC. Esta configuração reduz a sobrecarga de processamento no programa PLC.

Codificador Rotativo Incremental Arduino

Em circuitos baseados em Arduino, codificadores rotativos são usados ​​como entradas para nossos programas.

Podemos usá-los para aumentar / diminuir o valor de uma variável para tarefas como controlar a velocidade de um motor ou o brilho de um LED. Em aplicações mais avançadas, codificadores rotativos também são usados ​​para navegar pelos menus.

O KY-040 é um módulo codificador rotativo disponível para Arduinos. Possui a seguinte pinagem:

  • GND - Conexão de aterramento
  • VCC - alimentação de 5 V ou 3.3 V
  • SW - saída do botão de pressão (0 V quando pressionado, 5 V quando em repouso)
  • DT - Saída de dados
  • CLK - Saída de relógio

Como um circuito de exemplo, vamos dar uma olhada em um circuito de teste onde o codificador está conectado a um Arduino UNO. O pino SW do sensor é conectado ao pino 4, CLK ao pino 2 e o DT é conectado ao pino 3 do Arduino.

VCC está conectado a + 5V e GND está conectado ao pino GND da placa de desenvolvimento Arduino conforme mostrado abaixo.

Código Arduino para codificador rotativo

Este código de exemplo foi adaptado de lastminuteengineers. com. Ele executa duas funções principais:

  1. Aguarde o sinal CLK (pino 2) para mudar
  2. Observe se o botão está pressionado (pino 4 é BAIXO)

Quando o botão codificador é girado, o programa detecta a mudança na linha CLK. Em seguida, verifica o estado do pino DT.

Se ambos forem iguais, o codificador está sendo girado no sentido horário e no sentido anti-horário, caso contrário. Nesse ínterim, para cada detecção, a variável contrariarO valor de também é aumentado / diminuído dependendo da direção.

O programa também verifica o estado do botão do codificador. Se for pressionado, o programa imprime 'botão pressionado' no monitor serial. Ele também imprime o valor atual do número de pulsos contados.

// Entradas do codificador rotativo
#definir CLK-2
#definir DT 3
#definir SW 4int contador = 0;
int estadoatualCLK;
int últimoEstadoCLK;
String currentDir = ””;
não assinado longo últimoBotãoPress = 0;anular instalação() {

// Defina os pinos do codificador como entradas
pinMode (CLK, INPUT);
pinMode (DT, INPUT);
pinMode (SW, INPUT_PULLUP);

// Configurar monitor serial
Serial.begin (9600);

// Lê o estado inicial do CLK
lastStateCLK = digitalRead (CLK);
}

anular laço() {

// Lê o estado atual do CLK
currentStateCLK = digitalRead (CLK);

// Se o último e o estado atual de CLK forem diferentes, o pulso ocorreu
// Reage a apenas 1 mudança de estado para evitar contagem dupla
if (currentStateCLK! = lastStateCLK && currentStateCLK == 1) {

// Se o estado DT for diferente do estado CLK, então
// o codificador está girando no sentido anti-horário, então diminua
if (digitalRead (DT)! = currentStateCLK) {
balcão -;
currentDir = ”CCW”;
} outro {
// O codificador está girando no sentido horário, então incremente
contador ++;
currentDir = ”CW”;
}

Serial.print (“Direção:“);
Serial.print (currentDir);
Serial.print (”| Contador:“);
Serial.println (contador);
}

// Lembre-se do último estado CLK
lastStateCLK = currentStateCLK;

// Leia o estado do botão
int btnState = digitalRead (SW);

// Se detectarmos sinal BAIXO, o botão é pressionado
if (btnState == BAIXO) {
// se 50ms se passaram desde o último pulso LOW, isso significa que o
// o botão foi pressionado, liberado e pressionado novamente
if (millis () - lastButtonPress> 50) {
Serial.println (“Botão pressionado!”);
}

// Lembre-se do último evento de pressionamento de botão
lastButtonPress = millis ();
}

// Faça um pequeno atraso para ajudar a eliminar a leitura
atraso (1);
}

Como verificar o codificador incremental com multímetro

Para solucionar problemas de um codificador com um multímetro, ele precisa estar ligado. Depois de ligar, defina o multímetro para o modo de medição de volts CC e conecte a ponta de prova preta com o fio GND do sensor.

Gire lentamente o eixo do sensor enquanto testa as saídas A ou B do sensor.

A medição de tensão deve estar oscilando entre perto de 0 V e VCC do sensor. Observe que o eixo precisa girar extremamente lento para permitir que o multímetro estabilize sua leitura.

Se a medição de tensão não mudar, mude o multímetro para o modo CA e repita as mesmas medições. Desta vez, gire o eixo mais rápido. Se a leitura do multímetro indicar uma tensão diferente de zero, pode-se concluir que o encoder está funcionando.

No entanto, esse não é um método 100% preciso de solução de problemas. Mesmo que o multímetro exiba uma leitura de tensão, o sensor ainda pode estar funcionando incorretamente. Nesse caso, o tempo do sensor precisa ser analisado. Para tais tarefas, é necessário um osciloscópio.

Conclusão

Neste artigo, discutimos a operação, o princípio de funcionamento e as aplicações dos codificadores rotativos incrementais.

Embora os codificadores incrementais sejam os mais populares, os codificadores rotativos absolutos podem ser vantajosos em certos casos. Selecione o sensor mais adequado para sua aplicação, considerando as características que discutimos neste artigo.

Isso não apenas melhorará o desempenho e a confiabilidade do seu sistema, mas também reduzirá quaisquer custos desnecessários envolvidos.

Facebook
Twitter
LinkedIn
Pinterest
ÚLTIMOS ARTIGOS

Conteúdo

Envie-nos