I have done a lot of Googling and but couldn't get solution of my strange problem.
After going thru forums and some hit-n-trial, I managed to put together the following code. The code works perfectly fine on one of my brushless ESCs but doesn't on other two.
I have checked, all of the ESCs are in working order. Here is the stat after several tweakings of "delay" function timing and "arming" timing.
ESC 1 (Dualsky 25Amp) = Works perfect
ESC 2 (Freewing 30Amp) = Doesn't even arm
ESC 3 (unbranded) = Arms after setting the "delay" in arm() to 2000 (I can hear 3 beeps for 3S battery) but stays quiet afterwards.
I am not expert but you shouldn't arm ESC with 0. I had the same problem.. So what you need to do:
1: Remove ESC
2: Disconnect motor (important)
3: Turn transmitter on
4: Turn ESC switch on
5: Adjust the "neutral" trimpot until the LED goes out.
6: Pull Trigger to full throttle, and adjust the "proportion" trimpot until the LED just turns to maximum brightness. LED should turn red when you push the trigger. (reverse)
7: Re-install ESC, Re-connect motor and have fun.
And when you will arm the ESC with arduino it should be like this:
myservo.write(90); //position 90 degrees
delay(1000);
myservo.write(30); //position 30 degrees
delay(1000);
As sirbow2 says above, it might be the throttle range.
You often need to program an ESC when it is first used in a new model to set the max and min throttle range. If you have not done this, is it pot luck whether your ESCs will arm. From what I can see, your result so far suggest pot luck is at work.
Do you have access to an RC transmitter and receiver that you can use for the initial programming ?
Do you have the manuals for the ESCs that describe the initial programming process ?