Servo won't work with a very simple code

*Sorry for the bad english.

I recently bought one TowerPro SGR92R micro servo (Specifications) from Adafruit along with their pan-tilt kit.

I tried a simple code that didn’t work:

#include <Servo.h> 

const int servoPin = 3;
const int servopulse= 1500;
Servo servo; 

void setup() { 
    servo.attach(servoPin); 
}

void loop(){
    servo.write(0);
    delayMicroseconds(servopulse);
    servo.write(90);
    delayMicroseconds(servopulse);
}

When I connect the servo to the 5V Pin, it doesn’t move, but when i connect it to yje 3.3V pin, it moves at the maximum and the minimum, by very large intervals. I tried to replace the 90 degrees by 1 degree, but it does not change anything.

Thanks in advance.

You're not giving it enough time (1.5 milliseconds) TO move, try delay(400), not delayMicroseconds.

+1, you are not giving the servo enough time to get there.

I would even suggest delay(1000) to give it a full second.
Or, simply use the servo sweep tutorial.

Oh, and it is a bad idea to power servos and other mechanical devices from the arduino pin. It might work with a single, unloaded servo. But as soon as you try to make the servo actually move something, it draws more current that the on board regulator can provided and shuts down the arduino (or worse).

Use a separate power supply for the servo. Connect the grounds.

Just noticed, the advertised speed is 0.1 second per 60 deg, so 180 would need at least 0.3 (300 mS).
You might want to try this test sketch, you can boss it around with the serial monitor:

/*
 Try this test sketch with the Servo library to see how your
 servo responds to different settings, type a position
 (0 to 180) or if you type a number greater than 200 it will be
 interpreted as microseconds(544 to 2400), in the top of serial
 monitor and hit [ENTER], start at 90 (or 1472) and work your
 way toward zero (544) 5 degrees (or 50 micros) at a time, then
 toward 180 (2400). 
*/
#include <Servo.h>
Servo servo;

void setup() {
  // initialize serial:
  Serial.begin(9600); //set serial monitor baud rate to match
  servo.write(90);
  servo.attach(3);
  prntIt();
}

void loop() {
  // if there's any serial available, read it:
  while (Serial.available() > 0) {

    // look for the next valid integer in the incoming serial stream:
    int pos = Serial.parseInt();
    pos = constrain(pos, 0, 2400);
    servo.write(pos);
    prntIt();
  }
}
void prntIt()
{
  Serial.print("  degrees = "); 
  Serial.print(servo.read());
  Serial.print("\t");
  Serial.print("microseconds =  ");
  Serial.println(servo.readMicroseconds());
}

A servo is a high current load, connecting it to the 5V or 3.3V logic supplies is asking to burn something out,
use a separate 6V high current supply just for servos/motors.