🚚 Envío GRATIS en compras sobre $30.000 | Retiro en Curauma, Valparaíso | 📞 +56 9 65214463
Arduino 03 de August de 2026 · 1 min de lectura

Encoder Rotatorio KY-040 con Arduino: Menús y Control de Volumen

Usa el encoder rotatorio KY-040 con Arduino para crear menús de configuración, control de volumen, posición o cualquier valor incremental. Con botón integrado y código sin librerías externas.

El encoder rotatorio KY-040 es un control de giro incremental: detecta si se gira en sentido horario o antihorario y cuántos pasos. A diferencia de un potenciómetro, puede girar infinitamente. Tiene además un botón integrado al presionar el eje.

Pines del KY-040

PinFunciónArduino
+VCC5V
GNDTierraGND
CLKSeñal de relojPin 2
DTSeñal de datosPin 3
SWBotónPin 4

Código: Contador con Dirección

const int CLK = 2;
const int DT  = 3;
const int SW  = 4;

int contador = 0;
int ultimoCLK;

void setup() {
  Serial.begin(9600);
  pinMode(CLK, INPUT);
  pinMode(DT,  INPUT);
  pinMode(SW,  INPUT_PULLUP);
  ultimoCLK = digitalRead(CLK);
}

void loop() {
  int estadoCLK = digitalRead(CLK);

  if (estadoCLK != ultimoCLK) {
    if (digitalRead(DT) != estadoCLK) {
      contador++;
      Serial.print("Horario: ");
    } else {
      contador--;
      Serial.print("Antihorario: ");
    }
    Serial.println(contador);
    ultimoCLK = estadoCLK;
  }

  if (digitalRead(SW) == LOW) {
    Serial.println("¡Botón presionado!");
    delay(200); // Antirrebote
  }
}

Aplicaciones

  • Control de volumen: combínalo con un amplificador de audio para subir/bajar
  • Menús en LCD: navega entre opciones girando, selecciona con el botón
  • Posición de motor: controla un servo proporcionalmente al giro del encoder
  • Configuración de parámetros: ajusta la temperatura objetivo de un termostato DIY
Compartir: WhatsApp
Escríbenos por WhatsApp