Controlling a Brushless Motor through ESC using Arduino

Hey,
I'm have a brushless motor and ESC, which I'm trying to control using an Arduino Uno for my first quadrotor project. And I'm failing miserably, which is why I'm here. I tried connecting the Arduino to the ESC and using the Servo library, but it didn't work. All I get are three continuous short beeps on power and then short single beeps. I'm probably not able to even arm the ESC. This is the motor I'm using: http://www.yinyanmodel.com/En/ProductView.asp?ID=58 This is the ESC's manual(Mine's the 20Amp Aircraft one, with Ni-MH and LiPo Auto-detect. Table 1.1): Radio Control Planes, Drones, Cars, FPV, Quadcopters and more - Hobbyking It's meant for an RC receiver and I have no idea how I can emulate one through my Arduino. All in all, I'm blank. If anybody could please help, I'd be real grateful. It'd be great if I could get the Arduino code also.

Thanks a lot. :slight_smile:

The servo library willmwork fine for driving your esc.

By default the servo library outputs a signal of 1500 microseconds which is what is required to arm most land escs.

as it's an air esc, you probably need to arm it with myServo.writeMicroseconds(1000); in your setup function

Duane b

rcarduino.blogspot.com

and don't forget to connect the esc ground wire with the arduino ground.

All ESCs I've tried will arm at minimum throttle setting, ie servo.write(0) or servo.write(544) if using microseconds. 1000us is in the idle range of the ones I've used. The standard range of pulse widths from 1000us to 2000us isn't very standard it seems. The Arduino uses 544 -- 2400us range by default (2400us is way off the high end for the ESCs I've tried though).

I'd recommend setting the output to 544us, waiting 3 to 5 seconds and then ramping up the throttle to 1000 or so to see if it starts up. play with the timings if not. Most ESCs make the motor beep in different patterns to indicate whether they are happy or sad!!