Un codificador rotatorio , también llamado codificador de eje , es un dispositivo electromecánico que convierte la posición angular o el movimiento de un eje en señales de salida analógicas o digitales . [1]
Existen dos tipos principales de codificadores rotatorios: absolutos e incrementales. La salida de un codificador absoluto indica la posición actual del eje, lo que lo convierte en un transductor de ángulo . La salida de un codificador incremental proporciona información sobre el movimiento del eje, que normalmente se procesa en otro lugar para obtener información como la posición, la velocidad y la distancia.
Los codificadores rotatorios se utilizan en una amplia gama de aplicaciones que requieren monitoreo o control, o ambos, de sistemas mecánicos, incluidos controles industriales, robótica , lentes fotográficas , [2] dispositivos de entrada de computadora como ratones optomecánicos y trackballs , reómetros de tensión controlada y plataformas de radar rotatorias .
Un codificador absoluto mantiene la información de posición cuando se le quita la energía. [5] La posición del codificador está disponible inmediatamente al aplicarle energía. La relación entre el valor del codificador y la posición física de la maquinaria controlada se establece en el momento del ensamblaje; el sistema no necesita regresar a un punto de calibración para mantener la precisión de la posición.
Un codificador absoluto tiene varios anillos de código con distintas ponderaciones binarias que proporcionan una palabra de datos que representa la posición absoluta del codificador dentro de una revolución. Este tipo de codificador se conoce a menudo como codificador absoluto paralelo. [6]
Un codificador rotatorio absoluto multivuelta incluye ruedas dentadas y ruedas de código adicionales. Una rueda de alta resolución mide la rotación fraccionaria y las ruedas dentadas de código de menor resolución registran el número de revoluciones completas del eje. [7]
Un codificador incremental informará inmediatamente los cambios de posición, lo que es una capacidad esencial en algunas aplicaciones. Sin embargo, no informa ni realiza un seguimiento de la posición absoluta. Como resultado, es posible que el sistema mecánico monitoreado por un codificador incremental deba regresar a su posición inicial (moverse a un punto de referencia fijo) para inicializar las mediciones de posición absoluta.
Los codificadores absolutos digitales generan un código digital único para cada ángulo distinto del eje. Existen dos tipos básicos: ópticos y mecánicos.
Un disco metálico que contiene un conjunto de anillos concéntricos de aberturas está fijado a un disco aislante, que está fijado rígidamente al eje. Una fila de contactos deslizantes está fijada a un objeto estacionario de modo que cada contacto roce contra el disco metálico a una distancia diferente del eje. A medida que el disco gira con el eje, algunos de los contactos tocan el metal, mientras que otros caen en los huecos donde se ha cortado el metal. La lámina metálica está conectada a una fuente de corriente eléctrica , y cada contacto está conectado a un sensor eléctrico separado. El patrón metálico está diseñado de modo que cada posición posible del eje crea un código binario único en el que algunos de los contactos están conectados a la fuente de corriente (es decir, encendidos) y otros no (es decir, apagados).
Los contactos tipo escobillas son susceptibles al desgaste y, en consecuencia, los codificadores mecánicos suelen encontrarse en aplicaciones de baja velocidad, como controles manuales de volumen o sintonización en un receptor de radio.
El disco del codificador óptico está hecho de vidrio o plástico con áreas transparentes y opacas. Una fuente de luz y un conjunto de fotodetectores leen el patrón óptico que resulta de la posición del disco en un momento dado. [8] A menudo se utiliza el código Gray . Este código puede ser leído por un dispositivo de control, como un microprocesador o un microcontrolador, para determinar el ángulo del eje.
El tipo analógico absoluto produce un código analógico dual único que puede traducirse en un ángulo absoluto del eje.
El codificador magnético utiliza una serie de polos magnéticos (2 o más) para representar la posición del codificador a un sensor magnético (normalmente magnetorresistivo o de efecto Hall). El sensor magnético lee las posiciones de los polos magnéticos.
Este código puede ser leído por un dispositivo de control, como un microprocesador o microcontrolador para determinar el ángulo del eje, similar a un codificador óptico.
El tipo analógico absoluto produce un código analógico dual único que puede traducirse en un ángulo absoluto del eje (utilizando un algoritmo especial [ cita requerida ] ).
Debido a la naturaleza de la grabación de efectos magnéticos, estos codificadores pueden ser óptimos para su uso en condiciones en las que otros tipos de codificadores pueden fallar debido a la acumulación de polvo o residuos. Los codificadores magnéticos también son relativamente insensibles a las vibraciones, desalineaciones menores o golpes.
Los codificadores rotatorios incorporados se utilizan para indicar el ángulo del eje del motor en motores sin escobillas de imán permanente , que se utilizan comúnmente en máquinas CNC , robots y otros equipos industriales. En tales casos, el codificador sirve como un dispositivo de retroalimentación que desempeña un papel vital en el funcionamiento adecuado del equipo. Los motores sin escobillas requieren conmutación electrónica, que a menudo se implementa en parte mediante el uso de imanes de rotor como un codificador absoluto de baja resolución (normalmente seis o doce pulsos por revolución). La información resultante del ángulo del eje se transmite al servoaccionamiento para permitirle activar el devanado del estator adecuado en cualquier momento.
Dentro del codificador se hace girar un disco de forma asimétrica que modifica la capacitancia entre dos electrodos, que se puede medir y calcular a partir de un valor angular. [9]
Un codificador multivuelta puede detectar y almacenar más de una revolución. El término codificador multivuelta absoluto se utiliza generalmente si el codificador detecta movimientos de su eje incluso si no recibe alimentación externa.
Este tipo de codificador utiliza una batería para retener los recuentos a lo largo de los ciclos de encendido y apagado. Utiliza un diseño eléctrico que ahorra energía para detectar los movimientos.
Estos codificadores utilizan un tren de engranajes para almacenar mecánicamente el número de revoluciones. La posición de cada engranaje se detecta con una de las tecnologías mencionadas anteriormente. [10]
Estos codificadores utilizan el principio de recolección de energía para generar energía a partir del eje en movimiento. Este principio, introducido en 2007, [11] utiliza un sensor Wiegand para producir electricidad suficiente para alimentar el codificador y escribir el recuento de vueltas en una memoria no volátil. [12]
A continuación se muestra un ejemplo de código binario, en un codificador extremadamente simplificado con sólo tres contactos.
En general, cuando hay n contactos, el número de posiciones distintas del eje es 2 n . En este ejemplo, n es 3, por lo que hay 2³ u 8 posiciones.
En el ejemplo anterior, los contactos producen un recuento binario estándar a medida que el disco gira. Sin embargo, esto tiene el inconveniente de que si el disco se detiene entre dos sectores adyacentes, o los contactos no están perfectamente alineados, puede resultar imposible determinar el ángulo del eje. Para ilustrar este problema, considere lo que sucede cuando el ángulo del eje cambia de 179,9° a 180,1° (del sector 3 al sector 4). En algún instante, según la tabla anterior, el patrón de contactos cambia de apagado-encendido-encendido a encendido-apagado-apagado. Sin embargo, esto no es lo que sucede en la realidad. En un dispositivo práctico, los contactos nunca están perfectamente alineados, por lo que cada uno conmuta en un momento diferente. Si el contacto 1 conmuta primero, seguido por el contacto 3 y luego el contacto 2, por ejemplo, la secuencia real de códigos es:
Ahora observemos los sectores correspondientes a estos códigos en la tabla. En orden, son 3, 7, 6 y luego 4. Por lo tanto, a partir de la secuencia de códigos producidos, el eje parece haber saltado del sector 3 al sector 7, luego retrocedió al sector 6, luego retrocedió nuevamente al sector 4, que es donde esperábamos encontrarlo. En muchas situaciones, este comportamiento es indeseable y podría provocar que el sistema falle. Por ejemplo, si el codificador se utilizara en un brazo robótico, el controlador pensaría que el brazo está en la posición incorrecta e intentaría corregir el error girándolo 180°, lo que tal vez dañaría el brazo.
Para evitar el problema mencionado anteriormente, se utiliza la codificación Gray . Se trata de un sistema de conteo binario en el que dos códigos adyacentes difieren en una sola posición de bit. Para el ejemplo de tres contactos mencionado anteriormente, la versión codificada con Gray sería la siguiente.
En este ejemplo, la transición del sector 3 al sector 4, como todas las demás transiciones, implica que solo uno de los contactos cambie su estado de encendido a apagado o viceversa. Esto significa que no puede ocurrir la secuencia de códigos incorrectos que se muestra en la ilustración anterior.
Si el diseñador mueve un contacto a una posición angular diferente (pero a la misma distancia del eje central), entonces el "patrón de anillo" correspondiente debe rotarse el mismo ángulo para obtener el mismo resultado. Si el bit más significativo (el anillo interior en la Figura 1) se rota lo suficiente, coincide exactamente con el siguiente anillo. Como ambos anillos son idénticos, se puede omitir el anillo interior y mover el sensor de ese anillo al anillo idéntico restante (pero desplazado en ese ángulo respecto del otro sensor de ese anillo). Esos dos sensores en un solo anillo forman un codificador de cuadratura con un solo anillo.
Es posible disponer varios sensores alrededor de una sola pista (anillo) de modo que las posiciones consecutivas difieran en un solo sensor; el resultado es el codificador de código Gray de pista única .
Dependiendo del dispositivo y el fabricante, un codificador absoluto puede utilizar cualquiera de varios tipos de señales y protocolos de comunicación para transmitir datos, incluyendo señales binarias paralelas, señales analógicas (corriente o voltaje) y sistemas de bus serial como SSI , BiSS , Heidenhain EnDat, Sick-Stegmann Hiperface, DeviceNet , Modbus , Profibus , CANopen y EtherCAT , que normalmente emplean capas físicas Ethernet o RS-422/RS-485.
El codificador incremental rotatorio es el más utilizado de todos los codificadores rotatorios debido a su capacidad de proporcionar información de posición en tiempo real. La resolución de medición de un codificador incremental no está limitada de ninguna manera por sus dos sensores de movimiento incrementales internos; se pueden encontrar en el mercado codificadores incrementales con hasta 10.000 conteos por revolución, o más.
Los codificadores incrementales rotatorios informan los cambios de posición sin que se les solicite que lo hagan y transmiten esta información a velocidades de datos que son órdenes de magnitud más rápidas que las de la mayoría de los tipos de codificadores de eje absolutos. Debido a esto, los codificadores incrementales se utilizan comúnmente en aplicaciones que requieren una medición precisa de la posición y la velocidad.
Un codificador rotatorio incremental puede utilizar sensores mecánicos, ópticos o magnéticos para detectar cambios de posición rotatoria. El tipo mecánico se emplea comúnmente como un control de "potenciómetro digital" operado manualmente en equipos electrónicos. Por ejemplo, los equipos de sonido modernos para el hogar y los automóviles suelen utilizar codificadores rotatorios mecánicos como controles de volumen. Los codificadores con sensores mecánicos requieren la eliminación de rebotes de los interruptores y, en consecuencia, están limitados en las velocidades de rotación que pueden manejar. El tipo óptico se utiliza cuando se encuentran velocidades más altas o se requiere un mayor grado de precisión.
Un codificador incremental rotatorio tiene dos señales de salida, A y B, que emiten una forma de onda digital periódica en cuadratura cuando el eje del codificador gira. Esto es similar a los codificadores sinusoidales, que emiten formas de onda sinusoidales en cuadratura (es decir, seno y coseno), [13] combinando así las características de un codificador y un resolver . La frecuencia de la forma de onda indica la velocidad de rotación del eje y el número de pulsos indica la distancia recorrida, mientras que la relación de fase AB indica la dirección de rotación.
Algunos codificadores incrementales rotatorios tienen una salida de "índice" adicional (normalmente denominada Z), que emite un pulso cuando el eje pasa por un ángulo determinado. Una vez por cada rotación, se activa la señal Z, normalmente siempre en el mismo ángulo, hasta el siguiente cambio de estado AB. Esto se utiliza habitualmente en sistemas de radar y otras aplicaciones que requieren una señal de registro cuando el eje del codificador se encuentra en un ángulo de referencia determinado.
A diferencia de los codificadores absolutos, un codificador incremental no registra ni indica la posición absoluta del sistema mecánico al que está conectado. Por lo tanto, para determinar la posición absoluta en un momento determinado, es necesario "rastrear" la posición absoluta con una interfaz de codificador incremental que normalmente incluye un contador electrónico bidireccional.
En los ratones mecánicos se utilizan codificadores incrementales económicos . Normalmente, se utilizan dos codificadores: uno para detectar el movimiento de izquierda a derecha y otro para detectar el movimiento de adelante hacia atrás.
Un codificador de pulsos rotatorio (angular) tiene un interruptor SPDT para cada dirección, y cada uno de ellos funciona solo en la dirección de desplazamiento. Cada giro en una dirección hace que el interruptor SPDT asociado con esa dirección se active únicamente.
Los codificadores rotatorios con una sola salida (por ejemplo, los tacómetros ) no se pueden utilizar para detectar la dirección del movimiento, pero son adecuados para medir la velocidad y la posición cuando la dirección de desplazamiento es constante. En ciertas aplicaciones, se pueden utilizar para medir la distancia de movimiento (por ejemplo, pies de movimiento).