Problemas ethernet shield

Hola.

Recientemente he montado una cámara móvil con 2 servos y la ethernet. Esta la controlo por internet con la shield, pero resulta que al cabo de un rato, la web acaba petando y deja de tirar.

Me gustaría saber si sabéis como puedo solucionarlo. Como podréis observar, el codigo es reutilizado, esta hecho a partir de uno que encontré (gracias por cierto, Tutorial Arduino Ethernet Shield + Relay ). Os dejo el código:

#include <SPI.h>
#include <Ethernet.h>
#include <Servo.h>

Servo x;
Servo y;

int posX = 90;
int posY = 90;
//Declaración de la direcciones MAC e IP. También del puerto 80
byte mac[]={0x00,0xAD,0xBE,0xEF,0xFE,0xED}; //MAC
IPAddress ip(192,168,1,100); //IP
EthernetServer servidor(80);

String readString=String(30);
String state=String(3);

void setup()
{
Ethernet.begin(mac, ip); //Inicializamos con las direcciones asignadas
servidor.begin();

state="OFF";
x.attach( 8 );
y.attach(9);
}

void loop()
{
EthernetClient cliente= servidor.available();

if(cliente)
{
boolean lineaenblanco=true;
while(cliente.connected())//Cliente conectado
{
if(cliente.available())
{
char c=cliente.read();
if(readString.length()<30)//Leemos petición HTTP caracter a caracter
{
readString.concat(c); //Almacenar los caracteres en la variable readString
}
if(c=='\n' && lineaenblanco)//Si la petición HTTP ha finalizado
{
int LED = readString.indexOf("LED=");

if(readString.substring(LED,LED+7)=="LED=ARR")
{
posY = posY -36;

if(posY < 0){
posY = 0;
}

y.write(posY);

delay(1000);
} else if (readString.substring(LED,LED+7)=="LED=ABA")
{
posY = posY +36;

if(posY > 180){
posY = 180;
}

y.write(posY);
delay(1000);

}else if (readString.substring(LED,LED+7)=="LED=DER")
{
posX = posX + 36;

if(posX > 180){
posX = 180;
}

x.write(posX);
delay(1000);

}else if (readString.substring(LED,LED+7)=="LED=IZQ")
{
posX = posX - 36;

if(posX < 0){
posX = 0;
}

x.write(posX);
delay(1000);

}

//Cabecera HTTP estándar
cliente.println("HTTP/1.1 200 OK");
cliente.println("Content-Type: text/html");
cliente.println();
//Página Web en HTML
cliente.println("");
cliente.println("");
cliente.println("LAMPARA ON/OFF");
cliente.println("");
cliente.println("");
cliente.println("");
cliente.println("

LAMPARA ON/OFF

");
cliente.print("

");
cliente.print("Estado de la lampara: ");
cliente.print(state);
cliente.print("

");
cliente.println("<input type=submit value=IZQ style=width:200px;height:75px onClick=location.href='./?LED=IZQ'>");
cliente.println("<input type=submit value=DER style=width:200px;height:75px onClick=location.href='./?LED=DER'>");
cliente.println("<input type=submit value=ARR style=width:200px;height:75px onClick=location.href='./?LED=ARR'>");
cliente.println("<input type=submit value=ABA style=width:200px;height:75px onClick=location.href='./?LED=ABA'>");
cliente.println("");
cliente.println("");
cliente.println("");
cliente.stop();//Cierro conexión con el cliente
readString="";

}
}
}
}
}