Pages: [1]   Go Down
Author Topic: Electronic speed control (ESC) of brushless DC motor using Arduino UNO  (Read 1660 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi I'm planning to build a quadcopter with an arduino UNO for its brains and 4 of these motors (http://www.airtekhobbies.com/neo3000.html) to provide lift because they're cheap and light, but I was thinking about making my own ESC.

If I was using brushed motors I would have connected an external power supply to a transistor and used the PWM feature on the Arduino to open and close the transistor to provide power to the motor, but with brushless motors this setup doesn't work. It doesn't say on the motors website what phase it is, but as most seem to be 3 phase, that's what I'm going to assume this motor is as well (see picture below). So I was thinking of using the back EMF to try to work out which phase needs to be turned on and which need to be off.



I'm not sure yet how to determine where the magnet is when I first turn the motor on so I'd appreciate it if someone could tell me how to do that. So in an ideal the magnet's N-pole is currently between Start1 and End3 and it's rotating clockwise and so I would have current flowing from End3 to Start3 in order to keep the motor moving, but I don't know how I would measure the amount of back EMF in the other 2 phases or determine when the best moment was to switch which phase on as that would depend on the current speed of the motor and possibly on whether I'm keeping at a constant speed or accelerating or decelerating.

Also I think that method would only work for the motor setup in the first diagram but apparently they can also be as follows:





So am I on the right track or is there a better way to do this and how many pins on the Arduino UNO would I nedd to run 4 motors with this setup and does the UNO have enough processing power to do this, bearing in mind I'd like to get input from a 6 axis gyro and accelerometer chip to help keep the quadcopter stable.

I know that people have asked similar questions before but most of the answers seem to have focused on brushed rather than brushless DC motors so I'd appreciate any help anyone can give me.

Thanks smiley
« Last Edit: August 21, 2013, 09:19:10 am by Andycb93 » Logged

0
Online Online
Shannon Member
****
Karma: 200
Posts: 11740
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

You cannot determine the position unless the motor is spinning, and spinning at a fair speed, with these
sensor-less motors.

You won't be able to make an ESC easily, much easier to buy - these motors have extremely low winding
resistances so you need experience with high current motor controllers.  There are some open designs out
there if you want to see whats involved.

For quadcopters the response time and linearity of the ESC does matter - consult other forums for recommendations
of which ESCs perform best in a PID servo loop.
Logged

[ I won't respond to messages, use the forum please ]

Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
You cannot determine the position unless the motor is spinning, and spinning at a fair speed, with these
sensor-less motors.

You won't be able to make an ESC easily, much easier to buy - these motors have extremely low winding
resistances so you need experience with high current motor controllers.  There are some open designs out
there if you want to see whats involved.

Ok thanks for the information, I had a feeling that's how it would be but it seemed worth checking.

Quote
For quadcopters the response time and linearity of the ESC does matter

Oh right, I hadn't realised that there would be any restrictions other than the maximum current the ESC can support and if it was suitable for brushless motors, but thanks for the help.
Logged

Pages: [1]   Go Up
Jump to: