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 de los encoders 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 tienes un pequeño esquema, los valores de las resistencias son aproximados; por ejemplo: las resistencias de 5K pueden rondar un valor de 1K a 10K, y las de 220 ohmios pueden rondar valores de 150 a 500 ohmios. 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 igual o un poco mayor que las dos foto barreras juntas. No utilices fotolito para crear el disco a no ser que tengas mucha experiencia en este tema, aparte de que 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 dos ondas cuadradas desfasadas 90 grados. 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.

Dependiendo del uso tienes dos tipos.
  1. Acondicionador disparador de Schmitt.
  2. Acondicionador normal, por amplificación de la señal.
  • El acondicionador Disparador Schmitt es en realidad el acondicionador ideal porque transforma las señales del encoder en niveles lógicos puros.
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 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 muchos 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 evitar esto y explico una técnica (usando PWM) más adelante.

  • El acondicionador normal 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, que en realidad son analógicas si salen directamente de los foto-transistores (ver esquema de abajo, punto A y B en rojo). Pero para que esas señales cuadradas sean lo más digital posible, se amplifican mucho y así evitar (hasta cierto punto) estados intermedios.
Encoder acondicionador con transistor.

Se pueden 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 más a mano pero procura 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.

¿Cuándo usar y cuándo no usar este tipo de acondicionador? Es lo que suelo utilizar por sencillez, barato, ocupa poco espacio y no tiene histéresis, pero no sirve para todos los casos. Si el programa del PIC funciona por interrupción externa (segundo y tercer enlace de esa página) 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. En cambio, cuando el PIC funciona por bucle infinito (cuando el programa del PIC no usa interrupción externa) este acondicionador funciona muy bien. A la hora de controlar un motor, el acondicionador normal funciona genial porque no tiene histéresis y eso significa que cuando el motor llegue a la posición deseada no tendrá prácticamente movimiento pendular (movimiento constante entre dos posiciones), 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 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.

He probado discos de 12 dientes o aspas puesto en el eje de un motor de 3V y funciona perfectamente para las revoluciones por minuto de este tipo de motores. Es más, he alimentado con 12 voltios motores de 3V para conseguir altas velocidades de rotación y sigue funcionando perfectamente bien; esto es hasta donde yo he probado. Si te parece poco 12 pulsos por revolución del motor, has de pensar que se hace desde el eje del motor y este a su vez lleva una caja reductora. La reducción (reductora con engranajes u otro sistema) es un factor de multiplicación en la potencia de salida y en la resolución, por tanto tiene mucha resolución al final del eje principal de la reductora. Si en vez de colocar el encoder en el eje del motor lo pones en uno de los engranajes de la caja de reducción, obviamente perderás resolución. Siempre que sea posible mi preferencia es colocarlo directamente en el eje del motor y así tengo la máxima resolución.

IR A: