Encoder rotatorio vs potenciómetro
A diferencia de un potenciómetro, el encoder rotatorio no tiene límites mecánicos: puede girar infinitamente en ambas direcciones. Genera pulsos digitales que indican la dirección y velocidad de rotación. Esto lo hace ideal para interfaces de usuario donde necesitas incrementar/decrementar valores sin límite o navegar por menús cíclicos.
El módulo KY-040 es el encoder más popular para Arduino, disponible en Especificar.cl con resistencias pull-up integradas.
Pines del KY-040
- CLK (A): Primera señal del cuadrature encoder
- DT (B): Segunda señal, desfasada 90° de CLK
- SW: Botón integrado (activo en LOW cuando se presiona)
- VCC: 3.3V o 5V
- GND: GND
Decodificación de dirección de giro
Cuando el encoder gira, CLK y DT generan pulsos en cuadratura (desfase de 90°). Al detectar un flanco descendiente en CLK, si DT está en HIGH = giro horario; si DT está en LOW = giro antihorario. Usando una interrupción en el pin CLK logras detección muy responsiva sin perder pulsos.
Menú de configuración con LCD 1602
Combina el encoder con una pantalla LCD 1602: al girar seleccionas el parámetro del menú (temperatura, tiempo, velocidad). Al presionar el botón, entras a editar ese parámetro y los giros lo incrementan/decrementan. Otro press confirma. Esta interfaz de usuario "sin teclado" es elegante, intuitiva y se ve muy profesional en proyectos terminados.