SKU 00042
Encoder Rotativo KY-040
$1,75
Disponible
Más de 5 disponibles
Consultar por WhatsApp
Datos rápidos
- Pasos por vuelta
- 20, con clic en cada uno
- Pines
- CLK, DT, SW, + y GND
- Botón
- Integrado: presionando el eje, SW se une a GND
- Alimentación
- 3,3 a 5 V
Características
Perilla giratoria sin tope: al girarla entrega pulsos que indican hacia dónde y cuántos pasos se movió, y al presionarla funciona como botón. Se usa para menús, volumen o ajustar valores, como la perilla de un equipo de sonido.
A diferencia de un potenciómetro, no tiene principio ni fin: da vueltas completas sin límite.
| Pasos por vuelta | 20, con clic en cada uno |
|---|---|
| Pines | CLK, DT, SW, + y GND |
| Botón | Integrado: presionando el eje, SW se une a GND |
| Alimentación | 3,3 a 5 V |
| Resistencias pull-up | En CLK y DT (en SW depende de la versión) |
| Eje | 6 mm con cara plana |
¿Para qué sirve?
- Menús en pantallas LCD u OLED
- Control de volumen, velocidad o brillo
- Contadores y ajuste fino de valores
Diagrama de conexión de prueba
Placa usada: Arduino UNO
| Cable | Módulo | Arduino UNO | Nota |
|---|---|---|---|
| amarillo | CLK | D2 | |
| verde | DT | D3 | |
| azul | SW | D4 | Botón |
| rojo | + | 5V | |
| negro | GND | GND |
Código de prueba
// Prueba del encoder KY-040: al girar cuenta pasos (un sentido suma y el otro
// resta) y al presionar el eje vuelve a cero.
const int PIN_CLK = 2;
const int PIN_DT = 3;
const int PIN_SW = 4;
int posicion = 0;
int clkAnterior;
void setup() {
pinMode(PIN_CLK, INPUT_PULLUP);
pinMode(PIN_DT, INPUT_PULLUP);
pinMode(PIN_SW, INPUT_PULLUP); // el botón une SW con GND al presionarlo
Serial.begin(9600);
clkAnterior = digitalRead(PIN_CLK);
}
void loop() {
int clk = digitalRead(PIN_CLK);
if (clk != clkAnterior && clk == LOW) { // un paso del encoder
if (digitalRead(PIN_DT) != clk) posicion++;
else posicion--;
Serial.print("Posición: ");
Serial.println(posicion);
}
clkAnterior = clk;
if (digitalRead(PIN_SW) == LOW) {
posicion = 0;
Serial.println("Botón: posición en 0");
delay(300); // evita contar el mismo toque varias veces
}
}
Abre el Monitor serie a 9600 baudios y gira la perilla. Si salta pasos al girar muy rápido, usa interrupciones en los pines 2 y 3 o la librería Encoder.
Precauciones
- Los contactos internos rebotan: lee los pines seguido (sin delay largos) para no perder pasos.
- Usa INPUT_PULLUP en SW: algunas placas no traen la resistencia del botón.
- Conecta siempre el pin +: alimenta las resistencias pull-up de la placa.
Fuentes consultadas: ShillehTek: manual del KY-040 · Cirkit Designer: encoder KY-040. Ficha preparada por Electrodrone; verifica siempre el voltaje de tu módulo antes de conectarlo.