El codificador rotativo KY-040 es un dispositivo mecánico utilizado para medir la posición angular o la rotación. Se usa comúnmente en controles de volumen, navegación del menú y seguimiento de posición en robótica. Este tutorial lo guiará a través de la conexión y el uso del codificador rotativo KY-040 con Arduino.
Lo que necesitarás
- Módulo de codificador rotativo KY-040
- Arduino Board (por ejemplo, Uno, Mega, Nano)
- Cables de placa y jersey
- Una computadora con el Arduino IDE instalado
Paso 1: Comprender el codificador rotativo KY-040
El codificador KY-040 consiste en un dial rotativo que genera pulsos cuando se gira. También incluye un botón de presión incorporado.
KY-040 PINOUT
Alfiler | Función |
---|---|
Gnd | Suelo |
+ | Fuente de alimentación (5V) |
Acariciar | Señal de pulso de reloj |
Dt | Señal de pulso de datos |
SUDOESTE | Push Button Signal |
Paso 2: Cableado el KY-040 a Arduino
Aquí le mostramos cómo conectar el KY-040 a un Arduino Uno:
Pin de KY-040 | Alfiler de arduino |
---|---|
Gnd | Gnd |
+ | 5V |
Acariciar | Pin 2 |
Dt | Pin 3 |
SUDOESTE | Pin 4 |
Paso 3: cargar el código
El siguiente código de ejemplo lee la rotación del codificador rotativo y detecta presionar el botón:
#define CLK 2 // Clock pin
#define DT 3 // Data pin
#define SW 4 // Switch pin
int counter = 0; // Counter to track rotation
int currentStateCLK;
int lastStateCLK;
void setup() {
pinMode(CLK, INPUT);
pinMode(DT, INPUT);
pinMode(SW, INPUT_PULLUP); // Internal pull-up for the button
Serial.begin(9600);
// Read the initial state of the CLK pin
lastStateCLK = digitalRead(CLK);
Serial.println("KY-040 Rotary Encoder Test");
}
void loop() {
// Read the current state of the CLK pin
currentStateCLK = digitalRead(CLK);
// If the state has changed, the encoder has rotated
if (currentStateCLK != lastStateCLK) {
// Check the DT pin to determine the rotation direction
if (digitalRead(DT) != currentStateCLK) {
counter++;
} else {
counter--;
}
Serial.print("Counter: ");
Serial.println(counter);
}
// Save the last state of CLK
lastStateCLK = currentStateCLK;
// Check if the button is pressed
if (digitalRead(SW) == LOW) {
Serial.println("Button pressed!");
delay(200); // Debounce delay
}
}
Paso 4: prueba la configuración
- Conecte el Arduino a su computadora a través de USB.
- Abra el IDE Arduino y seleccione el correcto Junta y Puerto bajo el Herramientas menú.
- Cargar el código haciendo clic en Subir.
- Abra el monitor en serie (Herramientas > Monitor en serie) y establecer la tasa de baudios en
9600
. - Gire el codificador y presione el botón. Observe el contador y el botón Presione los mensajes en el monitor en serie.
Aplicaciones del codificador rotativo KY-040
- Control de volumen o brillo
- Navegación de menores
- Seguimiento de la posición del motor
- Sistemas de robótica y automatización
Solución de problemas
- Sin detección de rotación: Verifique el cableado CLK y DT y asegúrese de que los pines coincidan con el código.
- Lecturas inestables: Agregue un pequeño retraso de debaldad para estabilizar las señales del codificador.
-
Botón no detectado: Verificar que el pin SW esté correctamente conectado y use
INPUT_PULLUP
modo.
Conclusión
Has interactuado con éxito el codificador rotativo KY-040 con Arduino. Este módulo versátil le permite agregar el seguimiento de rotación y la funcionalidad del botón a sus proyectos. ¡Experimente con él en diferentes aplicaciones, como construir controles personalizados o navegar menús en sus sistemas!