Control de motor brushless con Arduino, ESC y BLDC: Tutorial paso a paso
En este tutorial aprenderemos a controlar un motor brushless usando Arduino y ESC. Si quieres más detalles sobre funcionamiento de motores BLDC, consulta el otro artículo o mira el vídeo que explica principio de funcionamiento y control con Arduino y ESC. Para este ejemplo tengo un motor BLDC outrunner con specs: KV 1000, alimentación 2S, 3S o 4S LiPo, requiere ESC 30A. El rating KV define RPM por voltio sin carga. KV 1000 significa: con batería 2S LiPo (7.4V), RPM máx = 7.4 × 1000 = 7400 RPM. Motores brushless consumen mucha potencia; forma común de alimentarlos: baterías LiPo. Número "S" = celdas en serie; cada celda = 3.7V. Usaré batería 3S LiPo (3 celdas = 11.1V). RPM máx esperado: 11100. ESC 30A para este ejemplo, acorde a requerimientos motor. Un lado: 3 cables controlan 3 fases motor. Otro lado: 2 cables VCC y GND para alimentación. Otro juego de 3 cables del ESC: línea señal, +5V y GND. Esto se llama BEC (Battery Eliminator Circuit): elimina necesidad de batería separada para microcontrolador. ESC provee 5V regulados para alimentar Arduino. Esta conexión es igual que en servos. Controlar motor brushless con ESC y Arduino es tan simple como controlar servo. ESCs usan misma señal de control: PWM estándar 50 Hz. Muy conveniente: en avión RC solemos necesitar servos y motores brushless; así los controlamos con mismo tipo de controlador. Con Arduino generamos PWM 50 Hz; según ancho de pulso (estado HIGH 1-2 ms), ESC impulsa motor de RPM mín a máx. Esquema para este ejemplo. Además del ESC, usamos potenciómetro simple para controlar velocidad. Componentes necesarios: Código muy simple, pocas líneas. Descripción: Incluimos librería En Subimos código, alimentamos con batería, y controlamos velocidad motor de 0 a máx con potenciómetro. Notas importantes: Al encender inicialmente, valor señal debe ser ≤ mínimo (1 ms). Esto se llama arming del ESC; motor emite pitidos confirmando armado correcto. Si valor > mínimo al encender (throttle up), ESC no arranca hasta bajar a mínimo. Seguridad: motor no arranca si throttle arriba al encender. Cada ESC tiene sus puntos alto/bajo propios, que pueden variar ligeramente. Ej.: punto bajo 1.2 ms, alto 1.9 ms. Entonces throttle no hace nada primer 20% hasta alcanzar 1.2 ms. Para solucionar: calibrar ESC / fijar puntos alto/bajo deseados. Antes de alimentar ESC, ponemos potenciómetro al máx (o valor > punto medio actual). Alimentamos ESC; oiremos pitidos confirmando nuevo punto alto. Tras 2 segundos, movemos potenciómetro a posición nuevo punto bajo. Pitidos confirmación → calibración hecha. Ahora throttle responde desde el inicio y controlamos motor entre estos dos nuevos puntos. Esto es todo para este tutorial. Para control inalámbrico brushless con Arduino, revisa mi vídeo anterior donde construí transmisor RC Arduino y expliqué control BLDC con él. ¡Espero que hayas disfrutado y aprendido! Preguntas en comentarios y revisa mi Colección Proyectos Arduino.Resumen






Control motor brushless Arduino – Diagrama circuito

Código Arduino para control BLDC
/* Arduino Brushless Motor Control por Dejan, https://howtomechatronics.com */
#include <Servo.h>
Servo ESC; // Objeto servo para controlar ESC
int potValue; // Valor pin analógico
void setup() {
// Conectar ESC en pin 9
ESC.attach(9, 1000, 2000); // (pin, ancho pulso min, max en microsegundos)
}
void loop() {
potValue = analogRead(A0); // Lee potenciómetro (0-1023)
potValue = map(potValue, 0, 1023, 0, 180); // Escalar para librería Servo (0-180)
ESC.write(potValue); // Envía señal al ESC
}Servo.h porque genera fácilmente PWM 50 Hz (PWM nativo Arduino tiene otras frecuencias). Creamos objeto Servo para ESC y variable para entrada analógica potenciómetro. En setup(), attach() define pin señal ESC y ancho pulso mín/máx en µs.loop(): leemos potenciómetro, mapeamos 0-1023 → 0-180. Con write() enviamos señal al ESC (genera PWM 50 Hz). Valores 0-180 corresponden a 1000-2000 µs definidos en setup.
Calibración ESC



Proceso de manufactura
- Crea un Cerrojo RFID Seguro con Arduino – Guía Paso a Paso
- Alcancía Inteligente: Controla un Aceptador de Monedas con Arduino Nano
- Centro de Control de Potencia Arduino: N-FET, P-FET, Relé y RTC
- Controla un LED por Bluetooth con Arduino – Guía DIY paso a paso
- Robot Seguidor de Línea Autónomo con Arduino UNO: Guía Paso a Paso
- Controlador de Humidificador DIY con Arduino y Relé: Configuración Segura de Alto Voltaje
- Kit de Entrenamiento Arduino Completo con Mega 2560, Sensores, Motores y PCB Personalizada
- Proyecto Sensor de Huella Dactilar con Arduino Nano – Tutorial Paso a Paso
- Tutorial Arduino para Principiantes 01: Inicia tu Primer Proyecto
- Motores BLDC avanzados y soluciones de automatización
- Entendiendo los motores BLDC: guía profesional