Soporte Mi cuenta
📞 0984701518
Encoder Rotativo KY-040
SKU 00042

Encoder Rotativo KY-040

$1,75
Disponible
Más de 5 disponibles
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
Ver ficha técnica completa ↓

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 vuelta20, con clic en cada uno
PinesCLK, DT, SW, + y GND
BotónIntegrado: presionando el eje, SW se une a GND
Alimentación3,3 a 5 V
Resistencias pull-upEn CLK y DT (en SW depende de la versión)
Eje6 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

Arduino UNOEncoder KY-040D2CLKD3DTD4SW5V+GNDGND
CableMóduloArduino UNONota
amarilloCLKD2
verdeDTD3
azulSWD4Botón
rojo+5V
negroGNDGND

Código de prueba

Arduino UNOprueba.ino
// 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.

🛡️Garantía de producto
🏷️Precios mayoristas
⭐Marca confiable
🚚Envíos a todo el país
🛠️Soporte técnico
WhatsApp