Motor DC con Encoder
El motor DC JGA25 con encoder y caja reductora es ideal para aplicaciones de control de velocidad y posición en lazo cerrado, como robots móviles, servomotores DC y cintas transportadoras. Con un voltaje nominal de 12V, el motor alcanza una velocidad de 170 RPM. La caja reductora metálica reduce la velocidad y aumenta el torque, mientras que el encoder de cuadratura, con dos sensores de efecto Hall, proporciona información precisa sobre la velocidad y dirección del motor.
Para controlar el motor, se recomienda usar un driver de potencia (como el L298N, o BTS7960) y una fuente de alimentación externa de al menos 2A, como la fuente conmutada 12V/8A. El encoder genera pulsos digitales a partir de un disco magnético multipolo, permitiendo la detección precisa de la posición y sentido de giro. Compatible con microcontroladores como Arduino, PIC, y Raspberry Pi.
Preguntas Frecuentes
¿Cuál es la ventaja de este motor con encoder sobre un motor DC simple?
La ventaja es la retroalimentación (feedback). Un motor DC simple funciona en «lazo abierto»: le das energía y esperas que gire a la velocidad correcta, pero no tienes forma de saber si realmente lo está haciendo. El encoder cambia esto, permitiendo un control en «lazo cerrado».
Gracias al encoder, puedes saber con precisión:
- La velocidad exacta a la que está girando el eje.
- La posición angular del eje en un momento dado.
- La dirección de giro (adelante o atrás).
- Si el motor se ha atascado (stall), ya que los pulsos dejarán de llegar.
Esto es indispensable para la robótica de precisión, donde necesitas controlar el movimiento de forma exacta y no solo «a ojo».
¿Cómo conecto el motor (12V) y el encoder (5V) al mismo tiempo?
Es crucial entender que el motor y el encoder tienen circuitos de alimentación separados. Debes usar dos voltajes distintos:
- Para el Motor (Circuito de Potencia): Necesitas una fuente de 12V y un driver de motor (como un L298N). Conectas la fuente de 12V al driver, y los dos terminales gruesos del motor (los que están en el cuerpo del motor) a las salidas del driver.
- Para el Encoder (Circuito de Señal): El conector trasero con varios cables finos es para el encoder. Debes alimentarlo desde tu microcontrolador:
- VCC (Encoder): Conectar al pin 5V de tu Arduino o Raspberry Pi.
- GND (Encoder): Conectar a GND de tu Arduino.
- Hall A y Hall B: Conectar a dos pines digitales de tu Arduino para leer los pulsos.
¡Atención! Nunca conectes 12V a los pines de alimentación del encoder, ya que lo destruirás.
¿Cómo leo la posición y dirección con un Arduino?
El encoder es de tipo «cuadratura», lo que significa que tiene dos salidas (Canal A y Canal B) que están desfasadas 90 grados. Esto te permite saber tanto la posición como la dirección.
El método más preciso para leerlo es usando interrupciones:
- Conecta el Canal A a un pin de interrupción de tu Arduino (ej. pin 2).
- Configura una rutina de servicio de interrupción (ISR) que se active con cada pulso del Canal A.
- Dentro de la ISR, lee el estado digital del Canal B. Si B es diferente a A, el motor gira en un sentido; si son iguales, gira en el otro. Así puedes incrementar o decrementar un contador de posición.
Usar interrupciones garantiza que no perderás ningún pulso, incluso si tu Arduino está ocupado haciendo otras tareas, lo que es vital para un control de posición preciso.
¿Qué driver de motor (L298N, BTS7960) debo usar y por qué lo necesito?
Necesitas un driver de motor porque los pines de un microcontrolador no pueden suministrar la corriente que este motor necesita para funcionar. Un driver actúa como un puente de alta potencia que tu Arduino controla con señales de bajo nivel.
- Para Empezar (L298N): Es una opción económica y excelente para aprender. Puede manejar la corriente de este motor sin problemas y te permite controlar fácilmente la velocidad (con PWM) y la dirección.
- Para Alto Rendimiento (BTS7960): Si tu proyecto es un robot de competencia o requiere una respuesta muy rápida y eficiente, un driver basado en MOSFETs como el BTS7960 es una opción superior. Tiene una resistencia interna mucho más baja, lo que significa que se calienta menos y desperdicia menos energía.
La especificación dice 11 PPR. ¿Significa que solo obtengo 11 pulsos por cada vuelta de la rueda?
No, esa es la resolución en el eje del motor antes de la caja reductora. La resolución final en el eje de salida es mucho mayor. Para calcularla, necesitas saber la relación de la caja reductora (gear ratio).
Por ejemplo, si este motor tiene una caja reductora con una relación de 34:1 (un valor común para este tipo de motorreductor), la resolución en el eje de salida sería:
Resolución Final = 11 PPR * 34 = 374 Pulsos por Revolución
Esta es una resolución muy buena que permite un control de posición y velocidad bastante preciso para la mayoría de los proyectos de robótica móvil.
¿Qué es un «control en lazo cerrado» (closed-loop) y cómo lo implemento con este motor?
El control en lazo cerrado es un sistema donde mides la salida (la velocidad/posición real del motor, gracias al encoder) y la comparas con tu objetivo (setpoint), para luego corregir la entrada (la potencia que le envías al motor) y minimizar el error. Es la base de la robótica de precisión.
La forma más común de implementarlo en un microcontrolador es con un algoritmo de control PID (Proporcional-Integral-Derivativo):
-
- (P) Proporcional: Corrige en función de qué tan lejos estás del objetivo.
- (I) Integral: Corrige los errores acumulados a lo largo del tiempo (ej. si el robot se desvía por una pendiente).
– (D) Derivativo: Anticipa el futuro, frenando a medida que te acercas al objetivo para no pasarte de largo.
Este motor te da el hardware de feedback necesario para que puedas implementar un controlador PID en tu software y lograr que tu robot se mueva exactamente como quieres.
Valoraciones
No hay valoraciones aún.