El puerto COM4 se me desconecta constantemente

Hola, veran tengo un problema con el puerto OOM4 de la ArduinoMega2560. Ahora estoy trabajando con servos de roacion continua y lo que hago és programar una serie de comandos para despues desde el monitor serie llamarlo y hacer que el motor se mueva un tiempo deerminado. Aquí vemos el codigo del comando.

El primer else if, donde le digo que gire a maxima velocidad hacia un lado y a los tres segundos se detenga. Y en el segundo else if, le digo que gire a maxima velocidad hacia el otro sentido y despues se detenga pasados los 3 segundos.

else if ( valor == 555)
{

Servoascensor.write(0);
delay(3000);
Servoascensor.write(90;

}

else if ( valor == 666 )
{

Servoascensor.write(180);
delay(3000);
Servoascensor.write(90);
}

Bien pues, los comandos fucionan a la perfección, y cuando llamo al comando el programa empieza a ejecutarse. Una vez ha rodado los 3 segundos y se para, mi ordenador hace un ruido raro de estos de windows como cuando conectas y desconectas un puerto USB y instantaneamente cuando intento introducir otro comando, el monitor serie no responde. Entonces lo cierro, y voy a mi programa y al intentar volver a abrir el monitor serie me sale abajo esto :

Opciones de compilación cambiadas, reconstruyendo todo

Sketch uses 16.274 bytes (6%) of program storage space. Maximum is 253.952 bytes.
Global variables use 5.033 bytes (61%) of dynamic memory, leaving 3.159 bytes for local variables. Maximum is 8.192 bytes.
avrdude: ser_open(): can't open device "\.\COM4": El sistema no puede encontrar el archivo especificado.

avrdude: ser_drain(): read error: Controlador no válido.

Problema subiendo a la placa. Visita http://www.arduino.cc/en/Guide/Troubleshooting#upload para sugerencias.

Ya les digo que todas las veces que uso el motor de rotacion continua me sucede esto. Básicamente lo que hago para evitar el supuesto " error " que me da el programa és desonectar y conectar el USB del Arduino de nuevo mi PC y ya vuelve a funcionar.

Agradeceria que me resolvieran este problema ya que cada vez que llamo a mi comando para el servo, el programa deja de funcionar .

Saludos

por lo que dices suena a exceso de corriente, estas conectando el servo a la alimentación de USB?

a mi me pasaba lo mismo con dos servo, lo soluione agregando alimentacion externa para servo, desde ese momento opte por usar una fuente de pc modificada para los componentes externo a la placa arduino y a la mega la conecto al usb y un conector con 5v, y funciona todo de mil maravilla