Aumentar la resolución del encoder.

Se puede aumentar la resolución del encoder hasta 4 veces como máximo. Esto significa que si tu encoder es de 2 pulsos por revolución lo puedes aumentar hasta 8; si es de 4 hasta 16; si es de 12 hasta 48... y así sucesivamente.

El método que voy a explicar sólo es aplicable al lector de encoder tipo bucle infinito. Con el método "interrupción externa" se podría hacer pero el PIC ha de tener dos líneas de interrupción externa (en muchos casos los PICs sólo tienen una) y la programación no es tan evidente. De todas formas puedes hacer clic aquí para ver un ejemplo hecho para Arduino UNO/Nano.

Se trata de tener presente todos los cambios posibles de las dos ondas cuadradas (desfasadas una con respecto a la otra 90 grados) que da el encoder.

Los programas que presento en esta web dejo el factor de multiplicación como opción para que se puedan entender mejor. Hasta ahora teníamos esto:

El método bucle infinito puede hacer la lectura del encoder desde cualquier patilla del PIC que estemos usando. Por comodidad y facilidad yo suelo usar los dos primeros bits del Port B (B0 y B1), es por ello que hago un aislamiento de esos dos bits cuando en el programa pongo "Actual = portb & 3;"

Ahora vamos a utilizar los cuatro cambios de estado que se produce dentro de un mismo periodo. Mírate el siguiente recuadro y lo aplicas a tu programa lector de encoder (repito: sólo en el método "bucle infinito"). Teniendo presente los cambios de nombre de las variables, verás que una vez que pones en marcha el circuito la resolución habrá aumentado 4 veces.