O codificador rotativo KY-040 é um dispositivo mecânico usado para medir a posição ou rotação angular. É comumente usado em controles de volume, navegação por menu e rastreamento de posição na robótica. Este tutorial o guiará através da conexão e do uso do codificador rotativo KY-040 com Arduino.
O que você precisará
- Módulo de codificador rotativo KY-040
- Board Arduino (por exemplo, Uno, Mega, Nano)
- Fios de pão e jumper
- Um computador com o Arduino IDE instalado
Etapa 1: Compreendendo o codificador rotativo KY-040
O codificador KY-040 consiste em um mostrador rotativo que gera pulsos quando girado. Ele também inclui um botão embutido.
KY-040 PILOUT
Alfinete | Função |
---|---|
Gnd | Chão |
+ | Fonte de alimentação (5V) |
Clk | Sinal de pulso de relógio |
Dt | Sinal de pulso de dados |
SW | Sinal de botão |
Etapa 2: Fiação do KY-040 para Arduino
Veja como conectar o KY-040 a um Arduino Uno:
Pino KY-040 | Pino Arduino |
---|---|
Gnd | Gnd |
+ | 5V |
Clk | Pino 2 |
Dt | Pino 3 |
SW | Pino 4 |
Etapa 3: Carregue o código
O código de exemplo a seguir lê a rotação do codificador rotativo e detecta o botão pressiona:
#define CLK 2 // Clock pin
#define DT 3 // Data pin
#define SW 4 // Switch pin
int counter = 0; // Counter to track rotation
int currentStateCLK;
int lastStateCLK;
void setup() {
pinMode(CLK, INPUT);
pinMode(DT, INPUT);
pinMode(SW, INPUT_PULLUP); // Internal pull-up for the button
Serial.begin(9600);
// Read the initial state of the CLK pin
lastStateCLK = digitalRead(CLK);
Serial.println("KY-040 Rotary Encoder Test");
}
void loop() {
// Read the current state of the CLK pin
currentStateCLK = digitalRead(CLK);
// If the state has changed, the encoder has rotated
if (currentStateCLK != lastStateCLK) {
// Check the DT pin to determine the rotation direction
if (digitalRead(DT) != currentStateCLK) {
counter++;
} else {
counter--;
}
Serial.print("Counter: ");
Serial.println(counter);
}
// Save the last state of CLK
lastStateCLK = currentStateCLK;
// Check if the button is pressed
if (digitalRead(SW) == LOW) {
Serial.println("Button pressed!");
delay(200); // Debounce delay
}
}
Etapa 4: teste a configuração
- Conecte o Arduino ao seu computador via USB.
- Abra o Arduino IDE e selecione o correto Quadro e Porta sob o Ferramentas menu.
- Faça o upload do código clicando Carregar.
- Abra o monitor serial (Ferramentas > Monitor serial) e definir a taxa de transmissão como
9600
. - Gire o codificador e pressione o botão. Observe o contador e o botão, pressione as mensagens no monitor serial.
Aplicações do codificador rotativo KY-040
- Controle de volume ou brilho
- Navegação de menu
- Rastreamento da posição do motor
- Sistemas de robótica e automação
Solução de problemas
- Sem detecção de rotação: Verifique a fiação CLK e DT e verifique se os pinos correspondem ao código.
- Leituras instáveis: Adicione um pequeno atraso de debounce para estabilizar os sinais do codificador.
-
Botão não detectado: Verifique se o pino SW está devidamente conectado e usa
INPUT_PULLUP
modo.
Conclusão
Você interfigurou com sucesso o codificador rotativo KY-040 com o Arduino. Este módulo versátil permite adicionar rastreamento de rotação e funcionalidade de botão aos seus projetos. Experimente em diferentes aplicações, como criar controles personalizados ou navegar nos menus em seus sistemas!