Encoder

Sección dedicada a la construcción de encoders de baja resolución.

Cuando comencé a experimentar con la lectura de encoders, realicé multitud de montajes que hay por Internet, pero me daba cuenta que algunos de ellos sólo funcionaban bien en apariencia. Con encoders de media y alta resolución es muy difícil darse cuenta de esto, es por eso que siempre recomiendo hacer las pruebas con encoders de muy baja resolución. De esta forma puedes mover el disco como si fuera a cámara lenta y provocar movimientos erráticos (hecho a propósito) para comprobar si comete errores la electrónica o software que cuenta los pulsos. Una vez verificado es entonces cuando podemos poner un encoder con la resolución que desees.

Diferentes tipos, y montaje de uno óptico.

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 y es muy económico. 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 en este enlace.

Aunque voy a mencionar tres tipos de encoders incrementales: ópticos, magnéticos (a este tipo le dedico una página aparte) y mecánicos, esta página está dedicada a los ópticos.

Los 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 pudiendo crear 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, 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á compuesta 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 óptico. La foto central es un encoder experimental muy rústico, pero para comenzar es lo que recomiendo, porque como comentaba al comienzo, se hace más evidente el funcionamiento. Tiene un disco dentado sobre el eje de un motor. Las dos foto-barreras han de estar pegadas una contra la otra. 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.

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. Evita utilizar fotolito para crear el disco porque necesita una electrónica un poco especial y ajustes para acondicionar las señales de salida.

Los encoders incrementales tienen 2 salidas básicamente nombradas como A y B que dan las dos ondas, en teoría cuadradas, desfasadas 90 grados cuando hay movimiento. Los encoders industriales muchas veces tienen (sin contar las de alimentación si las tuviera y otras características adicionales) una tercera salida llamada "Index" (Z) que esencialmente sirve para indicar que se ha dado una vuelta completa y también verificar que el encoder está contando correctamente.

Encoder mecánico, tipo potenciómetro.

Otro tipo de encoder son los mecánicos o "tipo potenciómetro" (imagen izquierda; recuerda que no tienen nada que ver con los potenciómetros resistivos, se le nombra así por la semejanza física) son útiles para movimientos lentos, como por ejemplo el control de 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. 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 capacitores actúan como anti-rebotes pasivos. Aunque no suele ser necesario ese filtrado capacitivo, por regla general y para curarse en salud, es mejor ponérselo y una vez que veas que funciona correctamente prueba sin ellos. Si el lector del programa del microcontrolador funciona por bucle infinito (cuando no utiliza la interrupción externa para contar) no te hará falta poner los capacitores; de hecho con ese método (bucle infinito) es con el que mejor funciona este tipo de encoder.

Acondicionar las señales del encoder óptico.

Cuando manejamos encoders ópticos es esencial acondicionar las señales de salida porque aunque pueden parecer digitales no lo son. En realidad son señales analógicas y hemos de poner un circuito activo que elimine la transición (el tiempo) que hay entre cero y la tensión máxima lo más rápido posible.

Entre otros, dos tipos.

Normalmente se utiliza el inversor lógico llamado "puerta Not" con disparador Schmitt (lo de menos es el tipo de puerta lógica, lo que importa aquí es el disparador Schmitt) y siempre recomiendo que sea de tecnología TTL. El disparador Schmitt se basa en la histéresis electrónica; pongo una imagen que ejemplifica el funcionamiento.

El símbolo que hay dentro del triángulo y que he coloreado en rojo significa que esa puerta lógica tiene disparador Schmitt (Schmitt-trigger). No utilices puertas lógicas sin disparador Schmitt porque no sirve como acondicionador, es necesario que la puerta lógica tenga el susodicho disparador.

¿Cuándo utilizar y cuándo no utilizar este tipo de acondicionador? Este método es perfecto para la gran mayoría de los casos. Sólo comentar que al menos los pines 2 y 3 de los Arduinos UNO y Nano son Schmitt-trigger y no te hará falta poner ningún integrado extra, sin embargo, los PICs más comunes (16F y 18F) sí requieren de este tipo de integrado.

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 supuestamente digitales, pero en realidad son analógicas si salen directamente de los foto-transistores (ver esquema de abajo, puntos A y B en rojo). Para que esas señales sean lo más digital posible se han de amplificar mucho y así evitar estados intermedios que puedan crear falso conteo.

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 multiplicar la ganancia de ambos transistores. Si pones transistores en modo Darlington cabe la posibilidad de que puedas usar la interrupción externa, pero es algo que no he probado personalmente por tanto no puedo garantizarlo. En esta página puedes ver un ejemplo práctico realizado por otro autor.

¿Cuándo utilizar y cuándo no utilizar este tipo de acondicionador? Es el más barato. Si el programa del microcontrolador funciona por interrupción externa o tiene una electrónica basada en contadores reversibles, no es nada aconsejable poner este tipo de acondicionador porque la interrupción se puede disparar cuando no debería y podría llegar a leer estados intermedios (que no es ni cero ni uno) pudiendo dar error de contaje; me estoy refiriendo a utilizar un solo transistor, quizás en modo Darlington sí se pueda pero como dije antes no lo he probado. Pero si el micro funciona por bucle infinito (cuando el programa no utiliza la interrupción externa para contar) este acondicionador funciona perfecto.

Tipos de lectores de encoder incremental.

El lector de encoder por Hardware (electrónico puro) se hace con contadores reversibles y es el más rápido, pero tiene como contrapartida más componentes que el encoder a través de un micro. Todo depende de las necesidades del proyecto. Aunque hoy en día, con las FPGA libres este problema está resuelto.

El lector de encoder por Software se hace a través de un microcontrolador. 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:

Link externo muy interesante sobre encoders incrementales (por HomoFaciens):

https://www.youtube.com/watch?v=dPBKTZw_xi4