banner
Centro de Noticias
Corporación integrada

Potenciómetros versus codificadores rotatorios y cómo usarlos con Arduino

May 29, 2023

Los potenciómetros y los codificadores rotatorios parecen casi idénticos a primera vista, pero funcionan de diferentes maneras. Descubre cómo usar ambos con un Arduino.

Entre los componentes electrónicos de control del usuario, los mandos giratorios se destacan como algunos de los más satisfactorios de usar. Pueden complementar las pantallas táctiles y otros dispositivos de entrada, además de funcionar bien con botones e interruptores. Pero, ¿cómo puedes agregar una perilla a tus propios proyectos de bricolaje Arduino?

Tienes dos opciones principales: un potenciómetro o un codificador rotatorio. Estos componentes pueden parecer similares, pero los métodos para usarlos con un dispositivo como una placa microcontroladora Arduino son muy diferentes. Veamos cómo se comparan entre sí.

La mayoría de los potenciómetros y codificadores rotatorios que encontrarán los entusiastas del bricolaje tienen un factor de forma similar. Tienen una base cúbica o cilíndrica con patas conectoras adjuntas y un eje redondo que gira y tiene cortes para colocar una tapa.

Algunos potenciómetros tienen un aspecto diferente, como los que vienen en forma de diapositivas largas, como las que se encuentran en las plataformas de mezcla de música. Sin embargo, cuando se trata de codificadores rotativos, a primera vista parecen casi idénticos a los codificadores rotativos, por lo que se le perdonará pensar que son iguales.

Un potenciómetro es, en esencia, una resistencia variable. A medida que se gira el eje, la resistencia dentro del potenciómetro cambia, lo que permite al usuario alterar las propiedades de un circuito sin tener que reconstruirlo. Los potenciómetros pueden ser tanto analógicos como digitales, pero los potenciómetros digitales imitan a los analógicos y esto los hace muy similares en su uso.

Los potenciómetros siempre tienen un punto inicial y final definido en el que ya no se puede girar el eje. Algunos potenciómetros tienen una sensación de baches cuando se giran, pero muchos también son suaves, como los que se encuentran en los estéreos antiguos.

A pesar de ser analógicos, los potenciómetros funcionan bien con microcontroladores. Puedes configurar fácilmente un potenciómetro con una Raspberry Pi Pico o Arduino.

Los codificadores rotativos determinan la posición de su eje mediante un sensor para proporcionar una señal analógica o digital al dispositivo al que están conectados. Esto le indica al dispositivo en qué posición se encuentra el codificador. Además del eje giratorio, los codificadores rotativos también suelen tener un botón incorporado que se activa empujando el eje hacia abajo.

A diferencia de los potenciómetros, los codificadores rotatorios pueden girar sin detenerse y casi siempre tienen protuberancias táctiles para cada una de las posiciones del eje. Muchos automóviles modernos utilizan codificadores rotatorios para controlar sus sistemas de entretenimiento.

Gracias a su sencillo diseño, utilizar un potenciómetro con un Arduino es sencillo. Su potenciómetro tiene tres conectores: tierra, salida y vref. Los pines de tierra y vref se conectan a los conectores GND y 5V de tu Arduino, respectivamente, mientras que el pin de salida del potenciómetro se conecta a una de las entradas analógicas de tu placa.

El código del potenciómetro Arduino comienza con lo básicoconfiguración()ybucle() plantilla que verá cuando cree un nuevo archivo en el IDE de Arduino. Primero, agregue unconstante intvariable al comienzo del código para registrar la conexión del pin analógico del potenciómetro, en este caso, A0.

A continuación de esto, elconfiguración() La función es simple: sólo necesitas declarar el pin de tu potenciómetro como entrada. También puede iniciar una conexión en serie si desea enviar datos a su PC para realizar diagnósticos.

A continuación, es hora de configurar elbucle() función. Comience creando unEn tvariable utilizando ellectura analógica() Función para almacenar la posición de su potenciómetro. Después de esto, puede utilizar elmapa() función para reducir el tamaño del valor con el que está tratando; en este ejemplo, para que coincida con las especificaciones de PWM, por ejemplo, para controlar el brillo de un LED. Agregue un breve retraso para garantizar la estabilidad.

Ahora que tienes la posición de tu potenciómetro, puedes usarlo con otras partes del código. Por ejemplo, unsiLa declaración funcionaría bien para activar el código cuando el potenciómetro está en una posición específica.

Los codificadores rotatorios requieren un código más complejo que los potenciómetros, pero aún así es bastante fácil trabajar con ellos. Su codificador rotatorio tiene cinco pines: tierra, VCC, un pin de botón (SW), salida A (CLK) y salida B (DT). Los pines de tierra y VCC se conectan a los conectores de tierra y de 5 V de su Arduino, respectivamente, mientras que los pines SW, CLK y BT se conectan a conectores digitales individuales de su Arduino.

Para hacer que nuestro código sea más simple y fácil de usar, usaremos la biblioteca SimpleRotary Arduino creada por MPrograms en GitHub. Asegúrese de tener esta biblioteca instalada antes de comenzar a trabajar en su código.

Al igual que el código del potenciómetro, puedes iniciar el script del codificador rotatorio con el Arduino básico.configuración()ybucle() plantilla de función. Comience declarando la biblioteca SimpleRotary y asignando los pines del codificador en este orden; CLK, DT y SW.

No necesitas agregar nada a tuconfiguración()funcionará a menos que desee utilizar el monitor serie para diagnosticar su codificador rotatorio.

Elbucle() La función es una historia diferente. La determinación de la rotación del eje del codificador comienza con ungiratorio.rotar()llamada de función que está asignada a unEn t variable. Si el resultado es 1, el codificador gira en el sentido de las agujas del reloj. Si el resultado es 2, el codificador gira en sentido antihorario. El resultado siempre será 0 si el codificador no ha girado desde la última comprobación.

Puedes usarsideclaraciones para activar otro código dependiendo de la dirección de rotación del codificador.

También necesitas agregar algo de código para el botón de tu codificador albucle() función. Este proceso es muy similar, excepto que usarás elrotativo.push()función, en lugar degiratorio.rotar().

Este script es bastante simple y puedes hacer muchas cosas para personalizarlo. Vale la pena consultar la documentación del proyecto SimpleRotary para asegurarse de que está utilizando todas sus funciones clave. Una vez armado, el código de su codificador debería verse así.

Como puede ver, los codificadores rotatorios y los potenciómetros funcionan de manera bastante diferente. Ambos componentes le brindan nuevas formas de controlar sus proyectos electrónicos, pero ¿cuál debería elegir?

Los potenciómetros son asequibles y fáciles de usar, pero sólo permiten un rango de entrada limitado. Esto los hace excelentes cuando desea controlar el brillo de un LED, o aumentar y disminuir la energía que va a componentes específicos y otras tareas similares.

Los codificadores rotatorios ofrecen mucho más alcance que los potenciómetros. La inclusión de un botón significa que son excelentes para los sistemas de control de menús, como se ve en muchos automóviles modernos. Este tipo de componente se ha vuelto muy popular en el ámbito de la construcción de teclados mecánicos. Incluso puedes construir un pequeño macropad con un codificador incorporado.

Con toda esta información en su haber, debería estar listo para comenzar con un proyecto electrónico con un potenciómetro o codificador rotatorio. Estos componentes pueden brindarle mucho control sobre los circuitos que construye, pero debe asegurarse de elegir la opción correcta para su proyecto.

Samuel es un escritor de tecnología radicado en el Reino Unido apasionado por todo lo relacionado con el bricolaje. Habiendo iniciado negocios en los campos del desarrollo web y la impresión 3D, además de trabajar como escritor durante muchos años, Samuel ofrece una visión única del mundo de la tecnología. Centrándose principalmente en proyectos de tecnología de bricolaje, nada le encanta más que compartir ideas divertidas y emocionantes que puedes probar en casa. Fuera del trabajo, normalmente se puede encontrar a Samuel andando en bicicleta, jugando videojuegos de PC o intentando desesperadamente comunicarse con su cangrejo mascota.

configuración()bucle()constante intconfiguración()bucle()En tlectura analógica()mapa()siconfiguración()bucle()configuración()bucle()giratorio.rotar()En tsibucle()rotativo.push()giratorio.rotar()