Making projects with motors are always fun. Most stuffs from RC car to Quad copter requires DC motors. DC motors has some classifications , BLDC is one of them. BLDC stands for Brush less DC Motor. It has smoother operating system and better controlling power. it is generally used in fans and electric vehicles due to its exceptional features. Electronic speed controller (ESC) is used to control power distribution to BLDC. Unlike other motors, BLDC has three wires coming out of it and connected to the three wires of the ESC. ESC sends it’s generated pulse to BLDC .

Today we will see how to control a BLDC using Arduino. For this, we need following components,

  1. Arduino
  2. BLDC (i used emax 820 KV motor)
  3. 30A ESC
  4. Potentiometer (10k/5k/1k)
  5. LIPO battery


Step 1: Circuit Connection

  1. Connect the three wires of ESC with BLDC according to the following circuit diagram.
  2. Connect the input signal pin of Esc to pin 12 , power pin to 5v & GND to GND of Arduino.
  3. Connect the middle pin of potentiometer to analog pin A0 and other two to 5v and GND of Arduino.

Arduino Code:

//Using servo library to control ESC
Servo esc; //Creating a servo class with name as esc
void setup()
esc.attach(12); //Declare pin 12 as the esc signal pin
esc.writeMicroseconds(1000); //initialize the signal to 1 second
void loop()
int value;
value= analogRead(A0); //Declare A0 pin as the potentiometer signal pin
value= map(value, 0, 1023,1000,2000); //mapping value from minimum to maximum

Leave a Reply

Your email address will not be published. Required fields are marked *