// JOSE EDMMUNDO SALAZAR VACA
// Pines del encoder
const int pinCLK = 2; // Pin CLK del encoder
const int pinDT = 3; // Pin DT del encoder
int contador = 0; // Contador de pulsos del encoder
int estadoCLK; // Estado actual del pin CLK
int estadoCLKAnterior; // Estado anterior del pin CLK
void setup() {
// Configuración de los pines del encoder como entradas
pinMode(pinCLK, INPUT);
pinMode(pinDT, INPUT);
// Inicializar el monitor serial
Serial.begin(9600);
// Leer el estado inicial del pin CLK
estadoCLKAnterior = digitalRead(pinCLK);
}
void loop() {
// Leer el estado actual del pin CLK
estadoCLK = digitalRead(pinCLK);
// Si el estado del pin CLK ha cambiado
if (estadoCLK != estadoCLKAnterior) {
// Si el estado del pin DT es diferente al del pin CLK, el encoder gira en sentido horario
if (digitalRead(pinDT) != estadoCLK) {
contador++;
Serial.print("Sentido: Horario | ");
} else { // Si no, el encoder gira en sentido antihorario
contador--;
Serial.print("Sentido: Antihorario | ");
}
// Mostrar el valor del contador en el monitor serial
Serial.print("Cuenta: ");
Serial.println(contador);
}
// Actualizar el estado anterior del pin CLK
estadoCLKAnterior = estadoCLK;
// Pequeño retraso para evitar lecturas erróneas (opcional)
delay(1);
}