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.