lunes, 7 de noviembre de 2016

Ingeniería inversa de un motor sin escobillas de 24V

Como fruto del despiece de una impresora láser Xerox Phaser 6110, conseguí este motor de 24 voltios. En la pegatina viene marcado como Moatech BL62J - M01. Es un motor sin escobillas (brushless), en el que las bobinas son fijas y lo que se mueven son los imanes a su alrededor, lo que alarga mucho su vida útil. Por si fuera poco, el eje tiene rodamientos de bolitas, algo poco usual en motores pequeños.





El inconveniente de este tipo de motores es que alimentarlos no es tan sencillo. Es necesario alimentar en secuencia cada una de las bobinas dependiendo de la posición del rotor, lo que hace necesario usar componentes electrónicos que generen estas señales. Como se ve en las fotos, por suerte este motor cuenta con la electrónica de control integrada en un pequeño circuito. Además, cada contacto del conector está etiquetado:

1-2 24V
3-4 PG
5 SG
6 +5V
7 START
8 READY
9 CLK
10 CW/CCW

Parece que está claro que los contactos 1 y 2 llevan la tensión de alimentación del motor (+24 voltios), 3, 4 y 5 son masa (GND), el contacto 6 la tensión de alimentación de la lógica (+5V), y el resto son pines de control y estado del motor de los que hay que hacer ingeniería inversa. 
En principio parece que el pin 10 es para establecer el sentido de giro (clockwise/counterclockwise), y el 9 la señal de reloj. Para sacarnos de dudas, y saber a qué voltaje trabaja la lógica (aunque es fácil que sea a +5V), nos fijamos en el chip controlador del circuito. 


Se trata de un LB11923, del cual es fácil encontrar su hoja de características buscando "LB11923 datasheet". Entre la mucha información, es interesante ver que efectivamente la lógica funciona a 5 voltios. 
Siguiendo las pistas con el multímetro, podemos ver también una correspondencia entre las etiquetas del conector del circuito y las señales del chip. 

START = S/S -> Inicio y paro del motor. 1 = parar, 0 = iniciar
READY = LD -> Indica que se ha alcanzado la velocidad objetivo. Es una salida de colector abierto, por lo que hay que hacer un pull-up a Vcc. Cuando el motor alcanza la velocidad, la salida se pone a 0. 
CLK -> Hay que conectar una señal de reloj mediante la cual se indica la velocidad del motor. La frecuencia máxima es de 16 kHz.
CW/CCW = F/R -> Control del sentido de giro. 

A partir de esta información, probé a generar las señales para hacerlo funcionar. Conecté los pines de alimentación a una fuente de laboratorio configurada a 24 voltios y la corriente limitada a 500 miliamperios (por si acaso). Los pines de control los configuré con Arduino y la función tone para generar la frecuencia deseada. En el vídeo se ve una prueba en la que hacía cambiar el sentido de giro cada varios segundos. 




Ya tenemos un estupendo motor para nuestros proyectos, y que podemos controlar muy fácilmente con un microcontrolador sin tener que añadir mosfets u otros circuitos de potencia. 
Lo siguiente es probar la fuente de alimentación de la impresora, que seguramente genere los 24 voltios que necesita el motor.

2 comentarios:

  1. Hola, muy buen tutorial, ¿que velocidad se consige con el motor, con la maxima frecuancia?

    ResponderEliminar
  2. Hola Richard, la verdad es que en su día no lo medía y ahora mismo no lo tengo a mano. No podría decirte una cifra concreta.

    Un saludo.

    ResponderEliminar