Control de Motores
Podemos controlar la posición de un motor DC en lazo cerrado de dos maneras:
La primera es poner (si no lo lleva) un encoder incremental acoplado al eje del motor. Tiene como ventaja que te permite una resolución de posicionamiento muy elevada. Como desventaja tiene dos muy especiales; la más evidente es que al usar un encoder incremental necesitamos llevarlo a una posición cero cada vez que pongamos en marcha el controlador del motor. El otro inconveniente es la dificultad de instalar un encoder (si no lo lleva) al eje del motor, porque en muchos casos los motores carecen de eje trasero.
La segunda es poner un encoder absoluto a la salida del eje de la caja reductora (de engranajes). Tiene como ventaja que siempre sabrás en qué posición está el eje final de la reductora en cualquier momento; y como desventaja, la resolución está limitada al encoder absoluto que vayas a utilizar. Hoy en día los encoders absolutos magnéticos son muy económicos y según el modelo puede llegar a tener una resolución notable; sin embargo, en la práctica, se consigue mejor resolución de posición con encoders incrementales.
De momento y por sencillez sólo he experimentado control de motores con encoders incrementales.
Para Arduino:
Control de posición de baja resolución con Arduino.
Para PIC (en CCS C):
Link externo muy interesante sobre control de motores con encoder incremental (por HomoFaciens):