Brushless Motor Besturen met Arduino, ESC en BLDC: Stap-voor-Stap
In deze handleiding leer je een brushless motor besturen met Arduino en ESC. Voor meer diepgang over BLDC-motor werking: zie ander artikel of bekijk de video met uitleg over werking en besturing.
Overzicht
Voorbeeld: outrunner BLDC motor, KV1000, 2S/3S/4S LiPo, vereist 30A ESC. KV-rating = RPM per volt zonder last.

1000KV bij 2S LiPo (7.4V) → max 7400 RPM. Brushless motoren zijn stroomhongerig; meest voorkomende voeding: LiPo-batterijen. "S" = aantal cellen (3.7V per cel).

Voorbeeld: 3S LiPo (3 cellen = 11.1V) → verwachte max RPM: 11.100.
30A ESC: aan één kant 3 fasedraden voor motor, andere kant VCC en GND voor voeding. Extra set van 3 draden: signaal, +5V, ground. Dit is de Battery Eliminator Circuit (BEC) – elimineert aparte batterij voor microcontroller. ESC levert geregelde 5V voor Arduino.

Deze aansluiting is identiek aan servo-aansluiting. Besturing van brushless motor via ESC en Arduino is net zo simpel als servo-besturing. ESC gebruikt hetzelfde 50Hz PWM-signaal.

Handig voor RC-vliegtuigen: zowel servo's als brushless motoren met dezelfde controller besturen.
Met Arduino: genereer 50Hz PWM. Pulslengte (HIGH-duur) 1–2ms → ESC stuurt motor van minimum naar maximum RPM.

Arduino Brushless Motor Besturing – Aansluitschema
Naast ESC: potentiometer voor snelheidsregeling.

Componenten: Brushless Motor, ESC 30A, LiPo-batterij, Arduino Board, Potentiometer, Breadboard en Jumper Draden.
Arduino Code voor BLDC Motor Besturing
Code is simpel, enkele regels.
/* Arduino Brushless Motor Control
* by Dejan, https://howtomechatronics.com
*/
#include <Servo.h>
Servo ESC;
int potValue;
void setup() {
ESC.attach(9, 1000, 2000); // (pin, min puls µs, max puls µs)
}
void loop() {
potValue = analogRead(A0); // 0-1023
potValue = map(potValue, 0, 1023, 0, 180); // schalen voor servo lib
ESC.write(potValue); // Stuur signaal naar ESC
}
Uitleg: Servo.h voor 50Hz PWM (standaard Arduino PWM is andere frequentie). Servo-object voor ESC, variabele voor analoge input. setup(): attach(pin, min, max) definieert controle-pin en pulsbreedtes in µs. loop(): potentiometer lezen (0–1023), mappen naar 0–180, write() stuurt signaal. Waarden 0–180 corresponderen met 1000–2000µs uit setup.
Upload code, batterij aansluiten, motor regelen met potentiometer.

Belangrijk: Bij inschakelen moet signaal ≤ minimum (1ms) zijn. Dit heet armen van de ESC. Motor beepet ter bevestiging. Hogere waarde bij inschakelen (throttle up) → ESC start pas na throttle down naar minimum. Veiligheidsfunctie: motor start niet bij throttle-up tijdens inschakelen.
ESC Kalibratie
Elke ESC heeft eigen laag/hoog punten (licht verschillend). Bijv. laag = 1.2ms, hoog = 1.9ms → eerste 20% throttle doet niets.

Oplossing: ESC kalibreren (hoog/laag punten instellen). Procedure:
- Voordat ESC voeding krijgt: potentiometer naar maximum (of > midden).
- ESC voeden → motor beepet (nieuwe hoog punt bevestigd).

- Na 2 seconden: potentiometer naar gewenste laag positie.
- Opnieuw beepbevestiging → kalibratie klaar. Throttle reageert direct binnen nieuwe grenzen.
Dit was de handleiding. Voor draadloze besturing: zie mijn eerdere video over Arduino RC-zender voor BLDC-besturing.

Vragen? Reacties hieronder. Bekijk mijn Arduino Projecten Collectie.
Productieproces
- Maak een Veilige Arduino RFID Slot – Stapsgewijze Handleiding
- Slimme spaarpot bouwen: Muntenacceptor besturen met Arduino Nano
- Arduino Power Control Center: N-FET, P-FET, Relais & RTC Kit
- Een LED bedienen via Bluetooth met Arduino – Eenvoudige DIY Handleiding
- Bouw Een Autonome Lijnvolgende Robot Met Arduino UNO
- DIY Arduino Luchtbevochtiger Controller met Relais – Veilige Hoogspanningsopstelling
- Uitgebreide Arduino Trainingskit met Mega 2560, Sensoren, Motoren en Custom PCB
- Arduino Nano Vingerafdruksensor Project – Stapsgewijze Tutorial
- Arduino Beginner Tutorial 01: Start met Je Eerste Project
- Geavanceerde BLDC-motoren & automatiseringsoplossingen
- BLDC-motoren begrepen: professionele gids