controlando 3x motores BLDC

1

Me gustaría controlar 3x L6234 IC (3x BLDC motors) con el microcontrolador / placa / lauchpad más barato, pero estoy un poco confundido acerca de los requisitos necesarios para el microcontrolador. Como entendí, cada motor necesita 3 señales de control PWM, así que necesito 9 PWM, pero también necesito 9 temporizadores en el microcontrolador, ¿no? ¿O puedo usar solo 3 combinados con preescaladores?

Estaba pensando en usar los tableros Arduino pero aún son más caros que los kits de lanzamiento de texas (¿el launchpad MSP430 y stellaris podrían hacer el trabajo?).

    
pregunta Electronics_Guy

3 respuestas

2

Un L6234 que maneja un motor BLDC necesita 3 señales PWM.
Tres L6234 que accionan tres motores BLDC necesitan 9 señales PWM. Esto supone que cada motor requiere un control de velocidad independiente.

Varios fabricantes, por ejemplo Texas Instruments BLDC Cntrol tienen una extensa documentación y Videos sobre la conducción de motores BLDC.

Su consejo es usar un tipo de PWM llamado 'centrado', 'simétrico' o 'conteo ascendente'.

Tipos de PWM de Wikipedia muestra los tres tipos. Un tipo cuenta hacia arriba, otro cuenta hacia atrás y el tercero está centrado.

El conteo ascendente del PWM cuenta hacia arriba, activa el pin de salida 'on' cuando coincide con el valor de umbral, alcanza el conteo máximo, luego restablece el conteo a cero, apaga el PWM y se repite. El conteo descendente de PWM es lo contrario, con "encendido" en el estado del ciclo y "apagado" controlado por el umbral del temporizador. (Algunos temporizadores PWM también pueden revertir el sentido de la señal PWM).

El punto es que, o bien el inicio de la señal PWM se "activa" en un temporizador constante, y el "apagado" se controla, o el "apagado" es consistente y el "encendido" controlado por el valor de umbral.

El PWM 'centrado' cuenta hacia arriba, 'desencadena', continúa contando hasta el máximo, luego cuenta hacia atrás hasta cero, 'desactiva', continúa hasta 0 y luego se repite. Así que tanto el inicio como el final se controlan simétricamente. Según TI, esta es la mejor manera de controlar el control BLDC.

Para el control BLDC, generalmente, un temporizador puede controlar tres salidas PWM y controlar un motor BLDC. Para un motor BLDC, las tres señales PWM están sincronizadas, por lo que pueden ser controladas por un solo temporizador común. Está bien usar más temporizadores para controlar las señales de PWM, se necesitan un par de líneas adicionales de código para mantener los temporizadores sincronizados.

Un Arduino UNO tiene tres temporizadores, pero cada temporizador genera solo 6 PWM, por lo que podría impulsar dos motores BLDC. El software Arduino usa uno de los temporizadores para generar un 'reloj de milis', por lo que no se puede usar uno necesariamente para el control de velocidad BLDC. Por lo tanto, es difícil de usar para más de un BLDC, usando ese L6234.

Está buscando una MCU que tiene tres temporizadores independientes, cada temporizador tiene al menos tres salidas PWM. Hay muchos MCU que pueden hacer eso. Parece que el L6234 podría ser manejado por una MCU de 3.3V.

AFAIK el Arduino Due tiene muchos temporizadores y canales PWM.

Un montón de STM32F, que están disponibles en muy bajo costo . Estos son menos de 10GBP incluyendo impuestos. Esos tableros se parecen a la "memoria flash", por lo que la carga de programas no requiere ningún programador de hardware adicional. La placa también incluye la depuración de hardware (SWD).

Nucleo se puede usar con el software mbed, por lo que no es necesario instalar un IDE para comenzar.

    
respondido por el gbulmer
0
  

¿O puedo usar solo 3 combinados con preescaladores?

Si los tres motores necesitan ser controlados individualmente, entonces necesitará 9 señales PWM, 3 para cada controlador L6234. Si los tres motores no necesitaron control individual, entonces lo único que se necesita son 3 salidas PWM.

    
respondido por el Andy aka
-1

acerca de cómo multiplexar una línea PWM para las tres bobinas del motor. ¿Necesita tener control individual en cada bobina de un motor? Tal vez no estoy entendiendo bien este problema, pero creo que debería ser posible tener la misma tasa de servicio en cada bobina de un motor para una revolución y cambiar el servicio de PWM para la próxima revolución si es necesario. Las tres bobinas tendrían alimentación / conducción de corriente simétrica. ¿Crees que esta idea puede funcionar para ti?

divertirse, Alex

    
respondido por el Haanz

Lea otras preguntas en las etiquetas