Sí, se puede agregar un codificador rotatorio a cualquier motor, incluido un servo que ha sido modificado para rotación continua, y se usa para el control de posición.
Sin embargo, esto es un poco contrario a la intuición, ya que los circuitos internos del servo ya proporcionan control de posición, utilizando el potenciómetro integrado como un sensor giratorio. Desconectar este mecanismo de posicionamiento y luego agregar un sensor o codificador de determinación de posición externo para lograr el mismo resultado parece innecesario.
Sea como fuere, el método habitual para obtener dicho control de posición con un codificador rotatorio implica unir el codificador rotatorio al eje del motor, luego llevar los valores codificados a un microcontrolador, usando un algoritmo PID en el microcontrolador, impulsado en función de esta información de posición, para controlar el voltaje y la polaridad del motor para detener el motor en la posición deseada.
En términos muy simplificados, si la posición detectada del servo, cortesía del codificador rotatorio, es en el sentido de las agujas del reloj hasta la posición deseada, el algoritmo PID giraría el motor en sentido contrario a las agujas del reloj hasta que las dos posiciones sean idénticas. Viceversa para la posición detectada en sentido contrario a las agujas del reloj hasta la posición deseada. Si cualquier par externo aleja el eje de la posición de descanso posteriormente, el codificador rotatorio alimenta datos angulares nuevos al código PID, que luego aplica la lógica descrita anteriormente.
Con respecto a la adición de una parada mecánica a un servomotor, este es un enfoque factible en general: el motor tomará su corriente de bloqueo, que es más alta que la corriente de operación normal. Sin embargo, debe verificar la hoja de datos del motor en cuestión para verificar cuánto tiempo puede soportar la corriente de bloqueo. No todos los motores pueden hacer frente a una parada constante.
La solución en tal caso puede ser una de las siguientes:
- Use el código en el microcontrolador, junto con los circuitos de detección de corriente apropiados, para detectar cuándo la corriente del motor supera un umbral calibrado, es decir, el motor se detiene en la parada mecánica. En ese momento, deje de alimentar el motor. Esto es complejo y no trivial en el extremo del circuito debido a las pérdidas de potencia en la resistencia sensorial que utiliza. Para motores de corriente grande, se pueden usar sensores de corriente Hall o sensores no invasivos, lo que reduce la pérdida de potencia.
- Use un interruptor de límite en lugar de un tope mecánico, y use la señal de cierre del interruptor como entrada digital a su microcontrolador, y use el código para detener la alimentación del motor cuando se activa el límite. Esta es la solución más simple y menos costosa, y también segura para el motor.