O Módulo Encoder Rotativo KY-040 é um dispositivo eletrônico usado para medir posição, direção de rotação e gerar sinais digitais para controle de sistemas. Ele possui dois canais (A e B) que permitem detectar a direção da rotação e um botão push integrado para funções de seleção. Compacto e de fácil integração, o KY-040 é ideal para projetos de automação, robótica, controle de volume e interface homem-máquina (HMI).
Ajuste de volume em projetos de áudio
Seleção de parâmetros em displays e menus
Contagem de rotações e detecção de direção
Robótica e sistemas de automação
Projetos com Arduino, Raspberry Pi e microcontroladores
Código Arduino Módulo Encoder Rotativo KY-040
Segue um código simples em Arduino para ler a posição e direção de rotação do Módulo Encoder Rotativo KY-040, além de detectar o botão integrado.
#define pinA 2 // Canal A do encoder
#define pinB 3 // Canal B do encoder
#define botao 4 // Botão integrado
int posicao = 0; // Contador de posição
int estadoA = 0;
int estadoB = 0;
int ultimoEstadoA = 0;
void setup() {
pinMode(pinA, INPUT);
pinMode(pinB, INPUT);
pinMode(botao, INPUT_PULLUP); // Botão ativo em LOW
Serial.begin(9600);
ultimoEstadoA = digitalRead(pinA);
Serial.println("Encoder KY-040 iniciado...");
}
void loop() {
estadoA = digitalRead(pinA);
estadoB = digitalRead(pinB);
// Detecta mudança no canal A
if (estadoA != ultimoEstadoA) {
if (estadoB != estadoA) posicao++; // Rotação sentido horário
else posicao--; // Rotação sentido anti-horário
Serial.print("Posição: ");
Serial.println(posicao);
}
ultimoEstadoA = estadoA;
// Verifica o botão
if (digitalRead(botao) == LOW) {
Serial.println("Botão pressionado!");
delay(300); // Debounce simples
}
}
Pin A Pino 2 do Arduino
Pin B Pino 3 do Arduino
Botão Pino 4 do Arduino
GND GND
VCC 5V
Como funciona:
Agora você. tente fazer também uma versão que converte a posição do encoder em graus ou porcentagem para controle de servo ou motor DC.
01 peça Modulo Encoder Rotativo Ky-040
Modelo: KY-040
Tipo: Encoder rotativo incremental
Número de pulsos por volta: 20 (aproximadamente)
Canais: A e B (quadratura)
Botão integrado: Sim
Tensão de operação: 5V DC
Corrente máxima: 30 mA
Tipo de saída: Digital (pulso HIGH/LOW)
Material do eixo: Metal
Diâmetro do eixo: 6 mm
Comprimento do cabo: Aproximadamente 15 cm
Compatibilidade: Arduino, Raspberry Pi, PIC e outros microcontroladores
Dimensões do módulo: 32 mm x 20 mm