Encoder


Introducción.

Existen dos tipos de encoder: el absoluto y el incremental. Voy a tratar exclusivamente el encoder incremental porque es el más sencillo de construir, económico y además puede tener la resolución que desees. Una vez que tienes la posición "cero",  el encoder incremental se comporta igual que un encoder absoluto. Si necesitas una introducción básica sobre el funcionamiento haz clic aquí.


Los encoders que aquí se describen están hechos, en principio, a base de barreras infrarrojas y se les llaman encoders ópticos. Son versátiles en el sentido de que hay muchos tipos y resoluciones, por tanto suelen ser los más utilizados. El único problema es que les afecta la contaminación; el polvillo puede acumularse en los diodos emisor y receptor creando dificultad para la lectura y tiene poca tolerancia a las temperaturas altas. De todas formas esto que comento es en un sentido extremo, en ambientes normales y con la debida precaución funcionan estupendamente bien.

En otro apartado hablo de los Encoders de efecto Hall  que son magnéticos y no les afecta la contaminación ambiental ni el exceso de calor.

                         
    
             
                     
En la foto de arriba a la izquierda puedes ver simples foto-barreras. Está compuesto por un emisor y un receptor de infrarrojos (IR) enfrentados a corta distancia, en particular es el modelo TCST 1103. Necesitamos dos de estas foto-barreras para formar un encoder. La foto central es un encoder experimental con el disco montado sobre el eje de un motor y con las dos foto-barreras (pegadas la una contra la otra) leerán los pulsos y estos más tarde, con una electrónica determinada, se convertirá en posición o ángulo. La imagen de la derecha es un pequeño esquema. Los valores de las resistencias son aproximados; por ejemplo: las resistencias de 5K pueden rondar un valor de 1K a 20K, y las de 220 ohmios pueden rondar valores de 150 a 500 ohmios, todo esto es cierto mientras estemos trabajando con 5 voltios. Haz clic en las imágenes si necesitas ampliación visual.


El disco no ha de ser de plástico porque la luz infrarroja suele atravesar la mayoría de ellos. La mejor opción es usar cartón rígido o chapa de una lata, ambos se pueden mecanizar (cortar) con unas simples tijeras. El cartón rígido lo puedes conseguir de alguna vieja libreta de tapa dura. Usa un piñón de plástico o pequeño engranaje que encaje con el eje del motor y pegar el disco dentado con pegamento instantáneo al piñón o engranaje para hacer de base al disco dentado. De esta forma evitarás que se mueva fuera de donde debe y se mantenga siempre plano. Las aspas (o dientes) y los vacíos entre las aspas (o dientes) han de ser iguales y un poco mayor que las dos foto barreras juntas. No utilices fotolito para crear el disco porque necesita una electrónica un poco especial para acondicionar las señales de salida.

               

Los encoders mecánicos o "tipo potenciómetro" (imagen izquierda) son útiles para movimientos lentos, como por ejemplo el control del volumen del sonido. Desaconsejo utilizarlos como control de posición o velocidad en una reductora con motor porque sufriría mucho desgaste debido a que funcionan por contacto mecánico y a altas velocidades sencillamente se estropean. Aunque no siempre es necesario, las salidas pueden llevar un filtrado capacitivo, es decir, a cada salida se le puede poner un condensador para compensar el "rebote" que tienen los contactos mecánicos, de esta forma se evita el falso conteo; los condensadores actúan como anti-rebotes pasivos. De todas formas no suele ser necesario ese filtrado capacitivo, pero por regla general y para curarse en salud es mejor ponerlo y una vez que veas que funciona correctamente prueba sin ellos.
                         
Los encoders incrementales tienen 2 salidas básicamente que dan las dos ondas cuadradas desfasadas 90 grados cuando hay movimiento. Con la electrónica adecuada se deduce la cantidad de recorrido. Los encoders industriales muchas veces tienen una tercera salida llamada "index" que sirve para indicar que se ha dado una vuelta completa.


Acondicionar las señales del encoder óptico.

Cuando comencé a crear lectores de encoders (esto se verá más adelante) inyectaba las señales de salida del encoder óptico directamente al PIC o a la electrónica de contadores reversible y me volvía loco (pensaba que algo estaba haciendo mal) porque existía falso conteo. Para eliminar errores de contaje es indispensable acondicionar las señales de salida del encoder óptico. 

Dependiendo del uso tienes dos tipos.

  1. Acondicionador disparador de Schmitt.
  2. Acondicionador por amplificación de la señal.

  • Acondicionador Disparador Schmitt transforma señales pseudo-digitales en niveles lógicos puro.
Normalmente se utiliza puertas NOT con disparador Schmitt (lo importante es el disparador Schmitt) y siempre recomiendo que sea de tecnología TTL. El símbolo que hay dentro del triángulo y que he coloreado en rojo significa que esa puerta lógica es Schmitt-trigger (trigger = disparador).

Encoder acondicionado disparador Schmitt

¿Cuándo usar y cuándo no usar este tipo de acondicionador? Que no te quepa duda de que este es el mejor método. Sólo tiene un pequeño inconveniente y surge cuando al controlar la posición de un motor quieres que se quede parado en una posición o ángulo determinado. Una vez que el motor llega a la posición sigue en movimiento pendular entre dos posiciones y a no ser que lo frenes un poco no deja de hacerlo. Esto se debe a que el acondicionador de encoder con disparador Schmitt tiene una histéresis y provoca un suave empuje en dirección contraria a la inercia del motor cuando llega a la posición que le designamos, pero es tan pequeño este efecto que deja de hacerlo si existe algún suave roce mecánico. En la mayoría de los casos, el contacto del piñón del eje del motor con los engranajes de la reductora es suficiente para hacer que el motor pare, pero no siempre es así. Existen formas de evitarlo y explico una técnica (usando PWM) en otro apartado


  • Acondicionador por amplificación, idealmente es simplemente un circuito que amplifica las señales del encoder en modo corte-saturación. Normalmente las salidas de los encoders ópticos dan dos señales cuadradas desfasadas 90 grados la una con respecto a la otra supuestamente digitales, pero en realidad son analógicas si salen directamente de los foto-transistores (ver esquema de abajo, punto A y B en rojo). Para que esas señales pseudo-cuadradas sean lo más digital posible se han de amplificar mucho y así evitar estados intermedios.
Encoder acondicionador con transistor.

Se puede utilizar simples transistores de propósito general con beta o hFE (beta o hFE es la ganancia o factor de amplificación) de 100 o más; en mi caso particular utilizo el BC549. Tú usa lo que tengas a mano procurando que la beta o hFE sea mayor de 100; también puedes hacerlo en modo Darlington para obtener mucha ganancia. En esta página puedes ver un ejemplo práctico realizado por otro autor.

Y siendo más sofisticados, si tienes conocimientos de electrónica, lo ideal sería utilizar amplificadores operacionales en modo comparación de tensiones (sin histéresis), pero aquí quiero reflejar un método bastante aceptable con transistor, sin ajustes y lo más económico posible.

¿Cuándo usar y cuándo no usar este tipo de acondicionador? Es lo que suelo utilizar por sencillez (un transistor como amplificador), barato, ocupa poco espacio y no tiene histéresis, pero no sirve para todos los casos. Si el programa del PIC funciona por [segundo y tercer enlace al final de esta página] interrupción externa o tiene una electrónica basada en contadores reversibles, no es nada aconsejable su uso; en esos casos la lectura es muy veloz y podría llegar a leer un estado intermedio (que no es ni cero ni uno) pudiendo dar error de contaje; me estoy refiriendo siempre a utilizar un transistor como amplificador aunque este sistema es mejorable. Cuando el PIC funciona por bucle infinito (cuando el programa del PIC no utiliza interrupción externa) este acondicionador funciona perfecto. A la hora de controlar un motor, este tipo de acondicionador funciona genial porque no tiene histéresis y eso significa que cuando el motor llegue a la posición deseada, el movimiento pendular (movimiento constante entre dos posiciones) será prácticamente nulo y te ahorras el engorroso control PID o cualquier otra técnica. 


Tipos de lectores de encoder incremental.

El lector de encoder por Hardware (electrónico puro) es el más rápido, pero tiene como contrapartida más componentes que el encoder a través de un PIC. Todo depende de las necesidades del proyecto.

El lector de encoder por Software se hace a través de un micro-controlador (PIC). Recomiendo este tipo de lector porque es muy sencillo de fabricar y tiene muy pocos componentes. Para velocidades normales trabaja sin problemas. El lector de encoder por software se puede programar de dos maneras; una es por bucle infinito y la otra es por interrupción externa, como se verá más adelante.

IR A: