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

28

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

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

Respuestas:

10

Definitivamente deberías usar el ESC. Los motores sin escobillas funcionan mejor cuando se manejan 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 un control programático más la eficiencia y el poder del ESC.

jkopel
fuente
nitpick: De acuerdo con Wikipedia ( en.wikipedia.org/wiki/brushless_DC_electric_motor ), los motores BLDC están optimizados para funcionar mejor cuando funcionan con CC conmutada: totalmente positivo, no controlado y completamente negativo. Los motores de CA de imanes permanentes están optimizados para funcionar mejor cuando son impulsados ​​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 estándar en lugar de desarrollar uno usted mismo.
davidcary
44
El controlador en un BLCD podría muy bien usar el mismo atmega que un arduino; así que la ventaja es más entregar el problema detallado a otra persona para que lo resuelva; y entregar la tarea de conmutación de bajo nivel para dejar el atmega del arduino libre para tareas de nivel superior.
Chris Stratton
Los motores BLDC utilizan esencialmente un accionamiento de onda cuadrada para las bobinas. En el lado del usuario del controlador (ESC), utilizan alimentación de CC además de las señales de control que requiere el ESC. Las ondas sinusoidales no cuentan.
Russell McMahon
13

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

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

Diseñar su propio ESC es una opción perfecta y mucho más barata 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 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 agradable) Aquí es donde compro mis cosas por poco dinero pero el 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 hacer CUALQUIER potencia desde ESC de baja a ultra alta usando esta guía y casi cualquier combinación de freno regenerativo, usando resistencia, bobinados de 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 un MCU como una placa arduio que genera solo 5V, creo, y el voltaje de la puerta del mosfet para voltajes medios es bastante más alto en el rango de 16-30V fácilmente. Por lo tanto, debe usar algún otro tansisor para aumentar el voltaje de arduino.

Buena suerte.

stevenvh
fuente
6

He estado yendo y viniendo sobre esto durante unos 30 minutos. Creo que probablemente quieras usar un ESC a menos que lo hagas como una experiencia de aprendizaje. Controlar adecuadamente el motor implicaría más recursos de su arduino de los 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 revertir, esa es la forma en que se supone que debe hacerse.

Scott Murphy
fuente
4

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

Entonces, al menos, estaría buscando crear una disposición de puente H trifásico (léase: tres 'medios puentes H') para manejar las corrientes necesarias, requiriendo seis líneas digitales solo para operar los transistores de accionamiento.

Suponiendo que resolvió 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 girar ciegamente el campo del estator y obtener un par útil. Debe conocer la orientación del rotor para mantener ajustados los ángulos de fase eléctrica y obtener un par uniforme.

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

JustJeff
fuente
3

Creo que sería un gran ejercicio de aprendizaje, pero los ESC usan EMF para detectar la rotación, aunque puedes usar sensores ópticos o magnéticos para esto. Básicamente, debe generar 3 fases de CA 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 correr un poco antes y más rápido. También puedes romper, haciendo lo contrario.

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

Para un trabajo práctico, obtenga un ESC.

ppvi
fuente
Primero pensé que la aceleración y la desaceleración se lograron de la manera que usted describe, liderando y retrasando 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!
nigromante
2

Usted puede conducir directamente con Arduino si por la conducción que no quieres decir, literalmente, el suministro de corriente de los bobinados - 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, puede 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 provendría del Arduino. Eche un vistazo a este esquema de control de motor sin escobillas (BLDC) muy simple y al esquema de Arduino que puede adaptar para conducir 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í .

ElectroNick
fuente