¿Cómo conducir un motor sin escobillas con Arduino?

¿Es posible conducir un motor sin escobillas directamente con Arduino? ¿O debería volver a controlar un ESC de motor sin escobillas con pulsos PWM?

Tal vez podría obtener un chip de controlador de un viejo reproductor de DVD/CD-ROM.

Respuestas (6)

Definitivamente deberías usar el ESC. Los motores sin escobillas funcionan mejor cuando funcionan con una onda sinusoidal (o lo más cerca posible de una onda sinusoidal). También requieren un conjunto de señales bastante preciso y complicado. Generar las formas de onda y el tiempo adecuados a partir de un arduino sería difícil y, a menos que realmente lo necesite, probablemente no valga la pena. Siempre puede hacer arreglos para controlar el ESC desde su arduino, lo que le daría control programático más la eficiencia y el poder del ESC.

Nitpick: según Wikipedia ( en.wikipedia.org/wiki/brushless_DC_electric_motor ), los motores BLDC están optimizados para funcionar mejor cuando se accionan con CC conmutada: completamente positivo, sin control y completamente negativo. Los motores de CA de imanes permanentes están optimizados para funcionar mejor cuando son accionados por una onda sinusoidal; esa es la única diferencia significativa entre ellos. Estoy de acuerdo con su conclusión: probablemente valga la pena usar un ESC listo para usar en lugar de desarrollar uno usted mismo.
El controlador en un BLCD podría muy bien usar el mismo atmega que un arduino; entonces la ventaja es más pasar el problema de detalle a otra persona para que lo resuelva; y entregando la tarea de conmutación de bajo nivel para dejar el atmega de arduino libre para tareas de nivel superior.
Los motores BLDC utilizan esencialmente un impulso de onda cuadrada para las bobinas. En el lado del usuario del controlador (ESC), usan alimentación de CC más cualquier señal de control que requiera el ESC. Las ondas sinusoidales no se presentan.

En realidad, a veces solo DEBES hacer tu propio ESC. Los ESC que se venden en el mercado están "comercializados" y tienen sus propios códigos de control para cosas RC como aviones, helicópteros, automóviles...

Por ejemplo, a veces es necesario tener un freno regenerativo de doble lado. De atrás a tope y de adelante a tope. NO hay RC ESC que tenga esa característica. O tienen solo un freno regenerativo de avance a parada o ninguno. O es posible que necesite un control de sensor BLDC, pero solo hay unos pocos ESC con sensor en el mercado, y solo tienen (lo mismo para los ESC sin sensor comunes) funciones integradas que no necesita y no tienen algunas que absolutamente necesita !

Diseñar su propio ESC es una opción perfecta y mucho más económica incluso que la más barata de $10 con ENORME potencia.

Es cierto que el código de control y el hardware pueden ser una molestia, pero después de leerlo un poco, es solo un juguete.

Aquí hay un buen tutorial sobre cómo hacer un controlador BLDC con un arduino usando 6 mosfets y algunas otras cosas que puedes encontrar fácilmente en el sitio de Jameco (muy bueno) Aquí es donde compro mis cosas por poco dinero, pero spurkfun puede ser una buena alternativa si no encuentras algunos sensores como giroscopios, etc.

http://www.instructables.com/id/BLDC-Motor-Control-with-Arduino-salvaged-HD-motor/

Guía muy agradable y fácil de seguir. Puede generar CUALQUIER potencia, desde ESC bajos hasta ultra altos, usando esta guía y casi cualquier combinación de freno regenerativo, usando resistencia, devanados del motor o cargador de batería...

Usar mosfets es solo un juguete, puedes hacer casi cualquier cosa.

El problema es que no puede controlar este mosfet de manera muy eficiente con una MCU como una placa arduio que genera solo 5V, creo, y el voltaje de puerta del mosfet para voltajes medios es bastante más alto en el rango de 16-30V fácilmente. Entonces debes usar algún otro tansisor para aumentar el voltaje de arduino.

Buena suerte.

He ido y venido en esto durante unos 30 minutos. Creo que probablemente quieras usar un ESC a menos que solo lo hagas como una experiencia de aprendizaje. Controlar adecuadamente el motor ataría más recursos de su arduino de lo que podría imaginar justificar. Además, estaría limitando la capacidad de respuesta del motor a la del sondeo adc. No pensaría en usar un ESC como reversión, esa es la forma en que se supone que debe hacerse.

Como nadie más lo ha dicho, prácticamente no podría conducir un motor directamente desde un arduino simplemente porque el chip AVR no generará suficiente corriente para suministrar cantidades útiles de energía.

Entonces, como mínimo, estaría buscando crear una disposición de puente H trifásico (léase: tres 'medios puentes H') para impulsar las corrientes necesarias, lo que requiere seis líneas digitales solo para operar los transistores de control.

Suponiendo que haya resuelto este problema de capacidad de la unidad, y eso no es trivial, entonces tendría que ingresar al código de control. Estos motores tienen rotores de imanes permanentes, por lo que no puede simplemente girar a ciegas el campo del estator y obtener un par útil. Debe conocer la orientación del rotor para mantener los ángulos de fase eléctrica ajustados para obtener un par uniforme.

Entonces, como han dicho otros, a menos que desee la experiencia de aprendizaje específica, no hay deshonra en simplemente comprar un ESC.

Creo que sería un excelente ejercicio de aprendizaje, pero los ESC usan campos electromagnéticos de retorno para detectar la rotación, aunque puedes usar sensores ópticos o magnéticos para esto. Básicamente tienes que generar 3 fases AC y activarlas/desactivarlas en el momento adecuado.

La velocidad de rotación del campo magnético debe adaptarse a la del motor, es decir, si desea acelerar, el campo debe funcionar un poco antes y más rápido. También puedes romper, haciendo lo contrario.

Para obtener una explicación detallada: http://www.embedded.com/columns/technicalinsights/196701832?_requestid=137540

Para un trabajo práctico, obtenga un ESC.

Primero pensé que la aceleración y la desaceleración se lograban de la manera que usted describe, adelantando y rezagando el campo. pero luego leí que la aceleración está determinada principalmente por el voltaje (aunque no puedo ver cómo eso podría desacelerar). me siento un poco confundido ¿Alguno de los enfoques funciona para la aceleración? alguna razón para preferir uno sobre el otro, o mezclarlos? ¡Gracias!

Puede conducirlo directamente con Arduino si al conducir no quiere decir literalmente suministrar corriente para los devanados; cualquier MCU sería demasiado débil para eso. Además, Arduino puede hundirse pero no generar corriente, pero necesitaría ambos para un motor sin escobillas.

Sin embargo, si usa un IC de controlador de puente H muy simple además del Arduino, puede implementar prácticamente todas las funciones del ESC. De hecho, dependiendo de la aplicación, es posible que ni siquiera necesite un E* SC *, lo que significa que es posible que no necesite un control de velocidad de circuito cerrado; si la carga no es demasiado grande, es posible que pueda salirse con la suya simplemente confiando en el motor. para responder en sincronía con la activación del devanado, y la velocidad de los cambios de corriente del devanado vendría del Arduino. Eche un vistazo a este esquema de control de motor sin escobillas (BLDC) muy simple y al boceto de Arduino que puede adaptar para impulsar su motor. Ese se basa en el IC de puente H cuádruple SN754410NE que tiene un máximo de 750 mA si la memoria sirve.

El código no es demasiado trivial y utiliza PWM para una rotación suave, pero tampoco es demasiado difícil de analizar para adaptarse a su aplicación. El boceto real de Arduino para el motor BLDC está aquí .