Type Here to Get Search Results !

How to control brushless dc motor (BLDC Motor) with arduino

What is a BLDC motor?

A BLDC motor stands for “Brushless dc motor”, which is a normal dc motor without brush. In general brush is available in the dc motors to provide the power supply in armature. The brush is responsible for carrying the load current in the motor. But it is not present in a BLDC motor. That is why the motor is called Brushless dc motor. Brushless motors are coming with a high range of speed. It is used where the required RPM is very high. There are three separate wires present in a brushless dc motor to carry the load current. This wires are directly connected to the rotor of the brushless dc motor. Among the three wires, two are responsible for carrying the positive and negative supply, and the middle wire is responsible for carrying the signal.

Advantage and Disadvantage of BLDC motor –

Advantage – The main advantage of a brushless dc motor is it’s high speed. The RPM of a brushless dc motor is too high compare to a normal dc motor.

Disadvantage – Although it has a high speed, but it has a low starting torque. The torque in a brushless dc motor is very less. This is the main disadvantage of brushless dc motor.

Where is BLDC motor used?

BLDC motors are mainly used in high speed application like – drones, drilling machine, cnc machines. It is also used in robotics industries and automation industries.

What is the difference between BLDC motor and DC motor?

The main difference between a BLDC motor and DC motor is the brush. In a normal dc motor the brush is present to carry the current into the motor. But in a BLDC motor the brush is not present. The brush usually heats up, when the speed of the motor is too high. There is a chance of damage or fire in the motor due to this heat. This factor restricts the use of normal dc motor in high speed application. To overcome this problem you can use a BLDC motor. Heat produced by the BLDC motor is very less. So you can use the BLDC motor in high rpm operation for a long time.

How to control brushless dc motor (BLDC Motor) with arduino?

There are many options to control the BLDC motors like ESC, remote controllers. But you can also use the arduino to control the BLDC motor. It is very easy to control a brushless dc motor with arduino. Just you have to remember few steps, while making the control circuit. Here I will let you know each and every steps to control a brushless dc motor, in details.

There are two major steps to complete this project, which are –

(1) Making the circuit

(2) Write down the code in arduino

Now take a look in each of the steps one by one.

Arduino BLDC Motor Control Circuit –

At first we have to design the circuit, for controlling the brushless motor. The main components, which are required for designing the circuit are listed below –

(1) Arduino uno

(2) Brushless DC Motor (BLDC Motor)

(3) Potentiometer

(4) 30A ESC

Now you have to connect all this components with jumper wire. At first you have to connect the brushless dc motor with the ESC. Then you have to connect the pins of ESC with the pins of arduino uno. The connection between ESC and arduino is shown below –

(1) Positive pin of ESC – VIN pin of Arduino uno

(2) Negative pin of ESC – GND pin of Arduino uno

(3) Signal pin of ESC – D9 pin of Arduino uno

After this, you have to connect the potentiometer with the arduino uno. There are three terminal present in a potentiometer, which you have to connect with three different pins of arduino uno. The connection is given below –

(1) Connect the fixed terminal of the potentiometer (outer two terminal) with the 5 Volt and Ground pin of arduino uno.

(2) Connect the variable pin of the potentiometer (middle terminal) with the A1 pin of arduino uno.

Now the circuit connection is completed. For better understand, take a look in the circuit diagram given below –

Arduino BLDC Motor Control Code –

After designing the circuit, you have to do the coding in arduino. At first you have to connect the arduino with your computer. Then open the Arduino IDE software. Now you have to write down the code in Arduino IDE software. The sample code is given below –

#include <Servo.h>

Servo myservo;  
int val;    
void setup()
{
  myservo.attach(9);  
}
void loop()
{
  val = analogRead(1);            
  val = map(val, 0, 1023, 0, 180);     
  myservo.write(val);                  
  delay(15);                           
}

After writing down the code, you have to upload it in arduino uno. But before this, you have to choose the correct port and board type from the tools section. After choosing the correct port and board type, you have to upload the code in arduino uno.

After uploading the code, you have to connect the lipo battery in the circuit. You may use a 12 volt lipo battery or a 7.4 volt lipo battery. Both of the battery are efficient to run the motor. Only you have to take the battery and then connect it with the ESC. Now, both the arduino uno and brushless dc motor will be powered up. The BLDC motor will make some beep noise. Then you have to rotate the potentiometer slowly. Now the brushless dc motor will start spinning. As long as you rotate the potentiometer, the speed of the BLDC motor will increase. When you reaches to the final position in the potentiometer, the speed in the BLDC motor will be maximum. In this way you can easily control a brushless dc motor by using the arduino and potentiometer.