🚚 Envío GRATIS en compras sobre $30.000 | Retiro en Curauma, Valparaíso | 📞 +56 9 65214463
Módulo encoder rotativo de 20 pulsos con pulsador para control de menús con Arduino.
Sensores SKU: ROT-ENC-20

Rotary Encoder Módulo Codificador Rotativo 20 Pulsos

Codificador rotativo incremental EC11 con 20 pulsos por revolución y pulsador integrado. Rotación ilimitada sin tope mecánico. Ideal para menús en LCD, control de volumen, ajuste de parámetros y posicionamiento preciso de motores paso a paso.

$1.600
Agotado
Avisar cuando esté disponible
Envío a todo Chile con Chilexpress, Starken y Blue
Retiro gratis en Los Abetos 212, Curauma, Valparaíso
Envío GRATIS en compras sobre $30.000

Módulo Rotary Encoder EC11 – Control Preciso e Intuitivo

El codificador rotativo EC11 es el componente ideal cuando necesitas un control de entrada que combine precisión, durabilidad e intuición. A diferencia de los potenciómetros que tienen un rango limitado, el encoder tiene rotación ilimitada a 360° sin tope mecánico, y el pulsador integrado permite confirmar selecciones en menús de pantalla.

¿Qué es un Encoder Rotativo y Cómo Funciona?

El encoder convierte el movimiento angular de rotación en señales digitales. Internamente, dos contactos mecánicos (Fase A y Fase B, también llamados CLK y DT) generan señales cuadradas que están desfasadas 90°. Este desfase permite al microcontrolador detectar tanto la cantidad de pasos girados como la dirección (horario o antihorario).

Especificaciones Técnicas

  • Modelo: EC11
  • Pulsos por revolución: 20
  • Salidas: 2 señales digitales de fase (A/CLK y B/DT) + 1 pulsador (SW)
  • Voltaje de operación: 3.3V a 5V DC
  • Tipo de rotación: Incremental, ilimitado (sin tope)
  • Compatible: Arduino, ESP32, PIC, Raspberry Pi

Configuración de Pines (5 pines)

  • GND: Tierra
  • VCC (+): 5V o 3.3V
  • SW: Pulsador (activo LOW al presionar)
  • DT: Señal de Fase B
  • CLK: Señal de Fase A

Código de Ejemplo: Menú de Selección con LCD

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

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

LiquidCrystal_I2C lcd(0x27, 16, 2);

int posicion = 0;
int lastCLK  = HIGH;
String opciones[] = {"Temp: 23C", "Humedad: 65%", "Presion: 1013", "Salir"};

void setup() {
  pinMode(CLK, INPUT_PULLUP);
  pinMode(DT,  INPUT_PULLUP);
  pinMode(SW,  INPUT_PULLUP);
  lcd.init();
  lcd.backlight();
}

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

  if (currentCLK != lastCLK && currentCLK == LOW) {
    if (digitalRead(DT) != currentCLK) {
      posicion++;  // Horario
    } else {
      posicion--;  // Antihorario
    }
    posicion = constrain(posicion, 0, 3);

    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("Opcion " + String(posicion + 1) + ":");
    lcd.setCursor(0, 1);
    lcd.print(opciones[posicion]);
  }

  lastCLK = currentCLK;
}

Aplicaciones

  • Menús en LCD/OLED: Navega opciones en tu pantalla LCD I2C con el encoder
  • Control de volumen digital: Ajuste preciso en amplificadores DIY
  • Posicionamiento de motores: Control fino de motores paso a paso
  • Ajuste de parámetros: Configuración de brillo, temperatura, tiempo en dispositivos embebidos
Voltaje 3.3-5V
Pulsos/rev 20
Pulsador
Escríbenos por WhatsApp