Servo no funciona

Hola a to@s

Tengo un proyecto entre manos que tengo que entregar el martes, es básicamente conectar 3 servos analógicos de 15 kg a un arudino y controlar los grados, hasta aquí todo bien, pero cuando subo el código solo funciona un servo y como podéis ver en el código, el arduino se desconecta cuando empieza el delay y se vuelve conectar cuando acaba, no entiendo nada y no se que hacer. ¿Alguna solución?

Código:
#include <Servo.h>

Servo servo1;
Servo servo2;
Servo servo3;

void setup () {
servo1.attach(5);
servo2.attach (3);
servo3.attach (6);
}
void loop (){
servo1.write(0);
servo2.write(0);
servo3.write(0);
delay (500);
servo1.write(90);
servo2.write(90);
servo3.write(90);
delay(500);
}

Info servo:
TORQUE (kg-cm): 14 @ 4.8v, 15.5 @ 6v
Velocidad (seg/60º): 0.14 @ 4.8v, 0.13 @ 6v
Engranajes metalicos
Dimensiones: 40.8 x 20.1 x 38mm
Peso: 54 gramos

Gracias de antemano.

Usa una fuente de alimentación separada para los servos.

¿Cómo alimentas los servos? Si lo haces con la salida de 5V del propio arduino, es muy posible que no sea capaz de entregar toda la corriente requerida por los servos. Mira de hacerte con una fuente externa de 5V y unos 2A para alimentar los servos.

Recuerda unir las masas del arduino y la fuente externa.