¿Cuál es la diferencia entre el potenciómetro Arduino y el codificador rotatorio?

Cual Es La Diferencia Entre El Potenciometro Arduino Y El Codificador Rotatorio



Los potenciómetros y los codificadores giratorios se utilizan para detectar la rotación o la posición del sentido. Son dispositivos electromecánicos utilizados con diversas aplicaciones en el campo de la electrónica. También se pueden interconectar con Arduino para realizar diferentes proyectos. Este artículo es para demostrar las diferencias fundamentales entre un potenciómetro y un codificador rotatorio.

¿Qué es un potenciómetro?

Un potenciómetro es un reóstato, o podemos llamarlo una resistencia variable. El valor de la resistencia varía según la rotación del eje del potenciómetro. Los potenciómetros solo pueden girar a una distancia determinada. Hay potenciómetros analógicos y digitales, pero son casi similares. Los potenciómetros analógicos se pueden interconectar con microcontroladores en Arduino, Raspberry Pi y otros dispositivos. Un potenciómetro posee tres pines que son el pin de voltaje de entrada Vcc, el pin de tierra GND y el pin de señal de entrada. El pin de señal proporciona entrada a Arduino.









¿Qué es un codificador rotatorio?

Los codificadores rotatorios detectan la posición angular de la perilla giratoria y envían una señal al microcontrolador o cualquier otro dispositivo al que están conectados. Tiene un disco con áreas de contacto uniformemente espaciadas que están conectadas a un pin común. Los codificadores rotatorios también tienen un botón pulsador incorporado o un interruptor giratorio que emite señales de ENCENDIDO y APAGADO de acuerdo con los requisitos específicos.







Diagrama de pines y descripción de pines del codificador rotatorio

El siguiente diagrama muestra los pines del codificador rotatorio. Estos pines se describen a continuación:

Salida B o CLK



Este pin da una salida de cuántas veces ha girado la perilla o el codificador giratorio. Cada vez que se gira la perilla, el CLK completa un ciclo de ALTO y BAJO. Se cuenta como una rotación.

Salida A o DT

Este es el segundo pin de salida del codificador rotatorio que determina la dirección de rotación. Tiene un retraso de 90° con respecto a la señal CLK. Por lo tanto, si su estado no es igual al estado de CLK, entonces la dirección de rotación es en el sentido de las agujas del reloj, de lo contrario, en el sentido contrario a las agujas del reloj.

Cambiar

El pin del interruptor se usa para verificar si el botón pulsador está presionado o no.

vcc

Este pin está conectado a un suministro de 5V

TIERRA

Este pin está conectado a tierra.

Diferencia entre potenciómetro y codificador rotatorio

Especificación Potenciómetro Codificador rotatorio
Rotación El potenciómetro se puede girar solo en una dirección, y eso también para tres cuartos de un círculo. El codificador rotatorio es capaz de girar 360° de forma continua tanto en el sentido de las agujas del reloj como en el sentido contrario.
Dispositivo Analógico o Digital El potenciómetro es principalmente un dispositivo de entrada analógica que mide el cambio de posición a través de un cambio en el valor de una resistencia. Un codificador rotatorio es un dispositivo de entrada digital que detecta la posición angular y proporciona valores digitales.

 

Número de posiciones de entrada Un potenciómetro tiene un número infinito de posiciones de entrada en las que se pueden tomar valores porque es un dispositivo analógico Los codificadores rotatorios tienen un número finito de posiciones de entrada.

Configuración de potenciómetro con Arduino

El potenciómetro es más fácil de configurar con un Arduino que con un codificador rotatorio. El potenciómetro tiene solo tres pines VCC, GND y un pin INPUT que está conectado a Arduino. La interfaz del potenciómetro con Arduino se muestra a continuación:

Programar el potenciómetro en Arduino es más fácil que el del codificador rotatorio. A continuación se muestran los códigos de sintaxis de muestra para ambos.

Código de muestra para potenciómetro

potenciómetro constante = A0; // Declarar pin de entrada
configuración nula ( ) {
   modopin ( olla, ENTRADA ) ; // Valor de configuración tomado del potenciómetro como aporte
Serial.begin ( 9600 ) ;
  }
bucle vacío ( ) {
int potValue = lectura analógica ( maceta ) ; // Valor de lectura de la entrada tomada por el potenciómetro
mapa ( valor de la olla, 0 , 1023 , 0 , 255 ) ; // Escalar el valor de la entrada para que coincida 8 -poco
Serial.println ( potValue ) ; // Imprime el valor que se ingresó al potenciómetro
demora ( 100 ) ;
}

 

El código del potenciómetro es muy fácil y sencillo. El pin de entrada analógica de Arduino simplemente se declara para tomar la entrada del potenciómetro, y luego las funciones analogRead() y map() se usan para leer y dar el valor exacto de la lectura del potenciómetro.

Codificador rotatorio de interfaz con Arduino

El codificador rotatorio tiene cinco pines. VCC y GND del codificador rotatorio están conectados al de Arduino. Los pines restantes CLK, DT y SW están conectados a los pines de entrada digital de Arduino.

Código Arduino para codificador rotatorio

// Entradas de codificador rotatorio
#definir CLK_PIN 2
#definir DT_PIN 3
#definir SW_PIN 4
contador int = 0 ;
int estado CLK actual;
int últimoCLKState;
Cadena dirección actual = '' ;
unsigned long lastButtonPressTime = 0 ;
configuración nula ( ) {
    // Establecer pines del codificador como entradas
    modo PIN ( CLK_PIN, ENTRADA ) ;
    modo PIN ( DT_PIN, ENTRADA ) ;
    modo PIN ( SW_PIN, ENTRADA_PULLUP ) ;
    // Configurar monitor serie
Serial.begin ( 9600 ) ;
    // Leer el estado inicial de CLK
lastCLKState = lectura digital ( CLK_PIN ) ;
}
bucle vacío ( ) {
    // Leer el estado actual de CLK
currentCLKState = digitalRead ( CLK_PIN ) ;
    // Si último y el estado actual de CLK son diferentes, entonces se produjo un pulso
    // reaccionar solo 1 cambio de estado para evitar la doble cuenta
    si ( estado CLK actual ! = últimoCLKState && estado CLK actual == 1 ) {
        // Si el estado DT es diferente al estado CLK, entonces
        // el codificador está girando en sentido contrario a las agujas del reloj, así que disminuya
        si ( lectura digital ( DT_PIN ) ! = estado CLK actual ) {
encimera--;
dirección actual = 'CCW' ;
        } demás {
            // El codificador está girando en el sentido de las agujas del reloj, así que incrementa
contador++;
dirección actual = 'CW' ;
        }
Serial.print ( 'Dirección de rotación:' ) ;
Serial.print ( dirección actual ) ;
Serial.print ( ' | Valor del contador: ' ) ;
Serial.println ( encimera ) ;
    }
    // Recuerda el último estado CLK
lastCLKState = currentCLKState;
    // Leer el estado del botón
int buttonState = lectura digital ( SW_PIN ) ;
    // Si detectamos una señal BAJA, se presiona el botón
    si ( estado del botón == BAJO ) {
        // Si han pasado 50 ms desde la último pulso BAJO, significa que el
        // el botón se ha presionado, soltado y vuelto a presionar
        si ( mili ( ) - lastButtonPressTime > 50 ) {
Serial.println ( '¡Botón presionado!' ) ;
        }
        // Recuerda el último evento de pulsación de botón tiempo
lastButtonPressTime = milisegundos ( ) ;
    }
    // Poner en un ligero retraso en ayuda rebotar la lectura
demora ( 1 ) ;
}

 

En el código anterior, el estado del pin CLK se verifica en la función loop(). Si no es igual a su estado anterior, indica que el botón giratorio ha girado. Ahora, para verificar la dirección de rotación de la perilla, el estado actual de CLK se compara con el estado de DT. Si ambos estados son desiguales, muestra que la perilla ha girado en el sentido de las agujas del reloj y el contador incrementa su valor para mostrar la posición de la perilla giratoria. En caso contrario, el contador decrementa.

Aplicaciones

Los potenciómetros se utilizan principalmente cuando se requiere una función de control. Se utilizan en control de volumen, control de brillo LED. Por otro lado, los codificadores rotatorios ofrecen una amplia gama de aplicaciones. Se utilizan en robótica, equipos médicos, automatización y juegos.

Conclusión

Los potenciómetros y los codificadores rotatorios son dispositivos particularmente útiles en el campo de la electrónica. Los codificadores rotatorios son avanzados en comparación con los potenciómetros, ya que pueden girar continuamente hasta 360°. Del mismo modo, tienen más aplicaciones en la electrónica moderna y son un poco más difíciles de usar que los potenciómetros. .