Rotary Encoder - GuilhermeLaurente/DebreixDigital GitHub Wiki

Funcionamento
O rotary encoder ou chave rotativa é um componente que tem como função converter a atuação do usuário em impulsos elétricos de onda quadrada, ou seja, os sinais digitais são gerados a partir do movimento de rotação aplicado ao componente para então serem interpretados pelo Arduino.
Para isso há um par de emissores infra-vermelho deslocados entre si e separados por um disco estriado de seus respectivos receptores.

Dessa forma quando o disco é girado pelo usuário a recepção do sinal se alterna entre os espaços vazados de forma que existam 4 momentos distintos: os dois receptores recebem sinal, ou apenas um recebe sinal, ou apenas o outro, ou ainda nenhum dos dois recebe sinal. Se há sinal chegando no receptor diz-se que ele está em nível lógico alto (HIGH) representado pelo número 1 caso contrário está em nível lógico baixo (LOW) ou 0 (zero), dessa forma a alternância entre os níveis lógicos citados pode ser transcrito em um gráfico conhecido como onda quadrada.

A comparação entre as duas ondas e a sequência dos níveis lógicos permite que o sistema perceba se a chave rotativa está sendo girada no sentido horário ou no sentido anti-horário, incrementando ou decrementando a variável correspondente no código do Arduino.

Pinagem
O encoder rotativo possui 5 pinos para conectar-se, onde 2 deles são destinados a alimentação do componente e os outros 3 aos sinais digitais enviados ao Arduino. Os pinos de alimentação são chamados VCC, que deve ser ligado a uma fonte de 5 volts, e GND que deve ser conectado ao terra ou polo negativo do circuito. Entre os pinos de sinal, o pino SW refere-se ao switcher, uma chave de pressão normalmente aberta (NA) também conhecida como push button. Já os pinos DT e CLK são responsáveis pelas ondas quadradas resultantes do giro do componente.

Especificações e características
– Modelo: KY-040
– Tensão máxima: 5VDC
– Corrente máxima: 10mA
– Pulsos por rotação: 20
– Tipo de rotação: contínua
– Comprimento do eixo: 10mm
– Diâmetro do eixo: 5mm
fontes:
https://tecnoloxia.org/tag/sensor/page/2/
http://www.technoblogy.com/show?1YHJ
https://blogmasterwalkershop.com.br/arduino/como-usar-com-arduino-modulo-encoder-rotativo-ky-040/