Inicio / Noticias / Noticias de la industria / Motor BLDC con Arduino: guía de cableado, código y control
Noticias de la industria
Nuestra huella se extiende por todo el mundo.
Brindamos productos y servicios de calidad a los clientes de todo el mundo.

Motor BLDC con Arduino: guía de cableado, código y control

Cómo un ESC permite a Arduino controlar un motor BLDC

Un Arduino no puede controlar las tres fases de un motor BLDC directamente; no tiene la capacidad actual ni la lógica de conmutación incorporada. Ese trabajo recae en el ESC (Controlador electrónico de velocidad), que se encuentra entre el Arduino y el motor, convirtiendo una simple señal PWM en la conmutación trifásica temporizada que realmente hace girar el rotor.

Desde la perspectiva de Arduino, un ESC se ve exactamente como un servo RC estándar. Espera un pulso de entre aproximadamente 1000 y 2000 microsegundos, repetido cada 20 milisegundos, donde el ancho del pulso se asigna a la posición del acelerador. Por eso lo mismo Servobiblioteca utilizado para servos de hobby funciona para el control del ESC: el Arduino no se comunica con el motor en absoluto, sino con el microcontrolador integrado del ESC, que maneja la conmutación real.

Cableado de un Arduino a un motor BLDC mediante ESC

Los tres cables del motor de gran calibre se conectan desde el motor BLDC directamente a las salidas trifásicas del ESC; el orden de los conectores no importa para la dirección en esta etapa, ya que intercambiar dos cables cualquiera simplemente invierte la rotación. La energía del motor (normalmente una batería LiPo adaptada al voltaje nominal del motor) se conecta a los cables de entrada del ESC, no al Arduino.

El lado de la señal es más simple: un solo cable PWM desde un pin digital Arduino a la entrada de señal del ESC, más una tierra compartida entre Arduino y ESC. La mayoría de los ESC incluyen un BEC (circuito eliminador de batería) en ese conector de señal, que suministra 5 V regulados al Arduino, lo que significa que generalmente no es necesaria una fuente de alimentación separada para la placa siempre que la salida BEC del ESC esté clasificada para el consumo de corriente del Arduino.

Código Arduino para control de velocidad básico

Con el cableado colocado, el código en sí es corto. La biblioteca Servo trata al ESC como un servomotor y la velocidad se asigna al mismo rango de 0-180 que la biblioteca usa para el ángulo:

  • Conecte el pin de señal ESC usando ESC.adjuntar(9, 1000, 2000) , estableciendo explícitamente el rango de ancho de pulso
  • Lea un potenciómetro en un pin analógico para control manual de velocidad
  • Asigne la lectura analógica 0-1023 al rango 0-180 que espera el ESC
  • Escribe ese valor asignado con ESC.escribir(velocidad) dentro del bucle principal

Este patrón funciona porque el formato de la señal subyacente es idéntico al de un servo aficionado, como se documenta en el Referencia de la biblioteca Arduino Servo , lo que explica la sincronización del pulso y las restricciones de pines en las que se basa la biblioteca.

Armar y calibrar el ESC

La mayoría de los ESC no hacen girar el motor inmediatamente después del encendido; primero esperan una secuencia de armado, generalmente activada al mantener la señal del acelerador al mínimo durante uno o dos segundos después del arranque. Omitir este paso es la razón más común por la que un motor parece arrancar brevemente al encenderse y luego detenerse: el ESC está esperando una señal válida de aceleración baja antes de aceptar comandos.

La calibración establece la comprensión del ESC del ancho de pulso mínimo y máximo para que coincida con lo que realmente envía el Arduino. Encienda el ESC con la señal del acelerador al máximo, espere los pitidos de confirmación, luego baje al mínimo y espere nuevamente; esto le enseña al ESC los puntos finales exactos que produce su código, en lugar de depender de los valores predeterminados de fábrica que pueden no coincidir con el rango asignado de su potenciómetro.

BLDC con sensor o sin sensor: por qué cambia la configuración de Arduino

Todo lo anterior supone un motor BLDC sin sensores combinado con un ESC disponible en el mercado: la configuración más común para aficionados y la razón por la que la mayoría de los tutoriales lo utilizan de forma predeterminada. El ESC detecta la posición del rotor a partir de los EMF generados en la fase sin alimentación, lo que funciona bien una vez que el motor está girando, pero significa que el motor necesita una breve rampa de arranque de circuito abierto antes de que el ESC pueda bloquear la sincronización BEMF.

Un motor BLDC con sensor agrega tres sensores de efecto Hall que informan la posición del rotor directamente, incluso a cero RPM. Eso elimina la rampa de arranque y brinda un control más suave a baja velocidad, pero también significa que el ESC o el controlador deben tener entradas de sensores Hall; un ESC simple sin sensores no tiene ningún cableado para ellos. Si un proyecto necesita un par preciso a baja velocidad o arranques y paradas frecuentes, adquirir un motor con sensor y un controlador compatible con Hall desde el principio evita tener que volver a trabajar en la configuración del control más adelante.

R5 Fast response Brushless DC Motor Controller

Del prototipo Arduino al control de motores de producción

Un ESC impulsado por PWM es la herramienta adecuada para probar un concepto: es barato, está bien documentado y no necesita software de configuración. Pero también tiene límites reales: no hay retroalimentación de corriente al Arduino, lógica de protección mínima y una resolución de control ligada a una ventana de pulso de 1000-2000 microsegundos que no escala bien una vez que el control de par, la regulación de velocidad de bucle cerrado o el informe de fallas se convierten en requisitos.

Cuando un proyecto pasa de la creación de prototipos a un producto de campo, el siguiente paso habitual es un controlador que se comunica a través de un bus digital en lugar de una sola línea PWM. una interfaz de depuración UART-TTL utilizada para configurar controladores de motores de producción Aquí juega un papel similar al del monitor serie Arduino: le permite leer parámetros y ajustar el comportamiento directamente en lugar de adivinar únicamente los anchos de pulso.

Para equipos que superan los ESC de hobby, un punto de entrada a los controladores de motor BLDC programables por bus CAN de APT Ofrece el tipo de diagnóstico y limitación de corriente configurable que un ESC básico simplemente no expone. Las aplicaciones que necesitan una respuesta más estricta (brazos robóticos, mecanismos accionados, cualquier cosa con una carga que cambia rápidamente) son mejor atendidas por un controlador BLDC de respuesta rápida creado para aplicaciones de circuito cerrado en tiempo real en lugar de un ESC de circuito abierto para aficionados.

Dado que las especificaciones del controlador y del motor deben alinearse en cuanto a voltaje, corriente y compatibilidad del sensor Hall, vale la pena revisarlo. Guía de emparejamiento de controlador y motor para adaptar la electrónica del variador a las especificaciones del motor. antes de comprometerse con el hardware para una ejecución de producción. También vale la pena entender Cómo las capas de software están remodelando el control de motores moderno , ya que el ajuste a nivel de firmware es cada vez más lo que separa a un buen controlador de producción de uno meramente adecuado.



¿Está interesado en cooperar o tiene preguntas?
  • Enviar solicitud {$config.cms_name}