Using Arduino UNO to control brushless Motor

Im a newbie and i used the following code to control the speed of the brushless motor

#include <Servo.h>

int value = 0; // set values you need to zero

Servo firstESC; //Create as much as Servoobject you want. You can controll 2 or more Servos at the same time

void setup() {

firstESC.attach(9); // attached to pin 9 I just do this with 1 Servo
Serial.begin(9600); // start serial at 9600 baud

}

void loop() {

//First connect your ESC WITHOUT Arming. Then Open Serial and follo Instructions

firstESC.writeMicroseconds(value);

if(Serial.available())
value = Serial.parseInt(); // Parse an Integer from Serial

}

I tried the above program with the DJI 20A esc with brushless 920kv motor and it worked.
But the problem is, when i tried the same code with a 100A hobbyking motor ,the esc fails to calibrate and the motor fails to arm.
i use the this ESC Radio Control Planes, Drones, Cars, FPV, Quadcopters and more - Hobbyking
and 520 KV 2000W motor and 5s Li-Po battery
i hear a series of beeps and the esc fails to calibrate and i wonder whether the pwm signal is right .
i even changed the pwm according to the esc i use i.e., 8k/16k i.e., 62.5 to 125ms but no beep sound when i use that. some one please help

int value = 0;
firstESC.writeMicroseconds(value);

Zero is WAY outside the normal servo range of 1000 to 2000 microseconds. What is the procedure to calibrate the ESC? Perhaps it is Throttle Min, to Throttle Max, to Throttle Min?

firstESC.writeMicroseconds(1000);
delay(100);
firstESC.writeMicroseconds(2000);
delay(100);
firstESC.writeMicroseconds(1000);