A conventional D.C motors cannot be used for operations that require, very high speed, long term working and stability, because, they have so many mechanical parts that constantly moves and in time, it will wear off. Brushless DC motors are high speed motors that uses minimal mechanical parts and more electronics to provide a stable movement. In these motors, we place the magnets on the rotor and the electromagnets are moved to the stator. Then small circuits are used to power up the electromagnets which in turn rotate the shafts.
What we are Looking At
You like this video, click the subscribe below to subscribe my youtube channel for future updates.
ESC (Electronic Speed Control)
An ESC is simply an electric circuit which controls the speed and direction of the brushless motor. In some situations, they can also acts as dynamic brakes. They convert our DC power supply to three phase AC power and fed to the motor, energizing the electromagnets that are kept inside the stator of the motor. The position of the motor is sensed by the ESC (usually by Back EMF feedback systems) and are used to set the correct phase of the AC power supplied to the motor.
Configuring the ESC using Arduino
ESC configuration is different for different units. Here I will show you how i configured mine. When we power up the ESC, it will create a “beeep beeep beeep” and then a “beeeeep” sound. This means it is waiting for the top speed input (full speed). Now pull the joystick to the top most position. After the ESC record this input, it will make another “beeeeeep”. Now keep the joy stick on the neutral position (0 speed position). After that it makes a “beeeeeeeeeeeeeeeeeeeeeeep” sound. After this, the motor ESC will make the motor rotate at the speed depending up on the position of the joystick.
The below script will test the brushless motor. Download the Code From Below Link
We can use any wireless module such as ZIGBEE, bluetooth, wifi etc. But in this project I will be using a low cost Wireless module called HC12. I have explained everything in detailed Here, so to get a complete picture, I suggest you to go through that post.
As usual, for a wireless communication, we will be using a transmitter and a receiver part.
The transmitter consist of a joystick connected to an arduino nano which is connected to a HC12 module. The whole unit is can be powered by a 5 V power supply. In my case, I used a mobile phone power bank to power up the arduino. Joystick and HC12 module are powered by the 5V out of arduino nano. In the transmitter.
In the above code, I used SoftwareSerial library so that I can see the what is being sent in the Serial monitor if I want to. The Analog Pin A0 reads the analog value out of the joystick and is stored in the variable ‘thr’. Before storing, the value between 0-1023 is mapped to a value between 0-180; the reason will be explained in the receiving module. This data is then sent to the HC12 transmitter.
Here, I had to use a clone of arduino which caused some difficulty with the software serial during the test and because of that, I didn’t use the pins mentioned in the SoftwareSerial library. First we read the data coming from the receiving module to a variable named it as throttle which is a value between 0 and 180.
Driving the brush-less motor using arduino is similar to that of servo motor so we use servo.h library to drive the brushless motor (this is why I mapped the analog reading to a value between 0 and 180). We output PWM signals from arduino nano to the signal input pin of the ESC which is connected to the brushless motor using functions inside the servo.h library.
Upload these codes in your transmitter and receiver modules. In the receiver module you should hear some beep sounds. Those beep sounds means the Arduino is configuring the ESC. After the beep sound, the motor will rotate at half the maximum speed for one second and it will stop. Once it is done, you are good to go. You should be able to control the speed of the brushless motor using the Joystick.
Want to Build a RC Plane Controller With This? Check this Out!!