Placa de 8 Relés controlada remotamente por Arduino

Hola,
alguien me puede simplificar este codigo, para que me quepa en el Arduino.
Se trata de controlar por Ethernet una placa de 8 Relés como esta.

http://www.ebay.es/itm/Modulo-8-canales-de-reles-de-5V-Arduino-y-microcontroladores-rele-relay-/310992113419?pt=LH_DefaultDomain_186&hash=item4868930f0b

Gracias

/*
     Arduino Ethernet Shield
Control Remoto de Reles v1.0   
*/

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

//Declaración de la direcciones MAC e IP. También del puerto 80
byte mac[]={0xDE,0xAD,0xBE,0xEF,0xFE,0xED}; //MAC
IPAddress ip(10,10,10,100); //IP
EthernetServer servidor(80);

int PIN_LED1=5;
String readString1=String(30);
String state1=String(3);
int PIN_LED2=6;
String state2=String(3);
int PIN_LED3=7;
String state3=String(3);
int PIN_LED4=8;
String state4=String(3);
int PIN_LED5=9;
String state5=String(3);
int PIN_LED6=11;
String state6=String(3);
int PIN_LED7=12;
String state7=String(3);
int PIN_LED8=13;
String state8=String(3);

void setup()
{
  Ethernet.begin(mac, ip); //Inicializamos con las direcciones asignadas
  servidor.begin();
  
  pinMode(PIN_LED1,OUTPUT);
  digitalWrite(PIN_LED1,LOW);
  state1="OFF";
  digitalWrite(PIN_LED2,LOW);
  pinMode(PIN_LED2,OUTPUT);
  state2="OFF";
  pinMode(PIN_LED3,OUTPUT);
  digitalWrite(PIN_LED3,LOW);
  state3="OFF";
  pinMode(PIN_LED4,OUTPUT);
  digitalWrite(PIN_LED4,LOW);
  state4="OFF";
  pinMode(PIN_LED5,OUTPUT);
  digitalWrite(PIN_LED5,LOW);
  state5="OFF";
  pinMode(PIN_LED6,OUTPUT);
  digitalWrite(PIN_LED6,LOW);
  state6="OFF";
  pinMode(PIN_LED7,OUTPUT);
  digitalWrite(PIN_LED7,LOW);
  state7="OFF";
  pinMode(PIN_LED8,OUTPUT);
  digitalWrite(PIN_LED8,LOW);
  state8="OFF";
}

void loop()
{
  EthernetClient cliente= servidor.available();
  
  if(cliente)
  {
    boolean lineaenblanco=true;
    while(cliente.connected())//Cliente conectado
    {
      if(cliente.available())
      {
        char c=cliente.read();
        if(readString1.length()<30)//Leemos petición HTTP caracter a caracter
        {
          readString1.concat(c); //Almacenar los caracteres en la variable readString
        
        }
        if(c=='\n' && lineaenblanco)//Si la petición HTTP ha finalizado
        {
          int LED1 = readString1.indexOf("LED1=");
          int LED2 = readString1.indexOf("LED2=");
          int LED3 = readString1.indexOf("LED3=");
          int LED4 = readString1.indexOf("LED4=");
          int LED5 = readString1.indexOf("LED5=");
          int LED6 = readString1.indexOf("LED6=");
          int LED7 = readString1.indexOf("LED7=");
          int LED8 = readString1.indexOf("LED8=");
          
          if(readString1.substring(LED1,LED1+6)=="LED1=T")
          {
            digitalWrite(PIN_LED1,HIGH);
            state1="ON";
          } else if (readString1.substring(LED1,LED1+6)=="LED1=F")
          {
            digitalWrite(PIN_LED1,LOW);
            state1="OFF";
          }
          if(readString1.substring(LED2,LED2+6)=="LED2=T")
          {
            digitalWrite(PIN_LED2,HIGH);
            state2="ON";
          } else if (readString1.substring(LED2,LED2+6)=="LED2=F")
          {
            digitalWrite(PIN_LED2,LOW);
            state2="OFF";
          }
          if(readString1.substring(LED3,LED3+6)=="LED3=T")
          {
            digitalWrite(PIN_LED3,HIGH);
            state3="ON";
          } else if (readString1.substring(LED3,LED3+6)=="LED3=F")
          {
            digitalWrite(PIN_LED3,LOW);
            state3="OFF";
          }  
           
          if(readString1.substring(LED4,LED4+6)=="LED4=T")
          {
            digitalWrite(PIN_LED4,HIGH);
            state4="ON";
          } else if (readString1.substring(LED4,LED4+6)=="LED4=F")
          {
            digitalWrite(PIN_LED4,LOW);
            state4="OFF";
          }  
          if(readString1.substring(LED5,LED5+6)=="LED5=T")
          {
            digitalWrite(PIN_LED5,HIGH);
            state5="ON";
          } else if (readString1.substring(LED5,LED5+6)=="LED5=F")
          {
            digitalWrite(PIN_LED5,LOW);
            state5="OFF"; 
           }  
          if(readString1.substring(LED6,LED6+6)=="LED6=T")
          {
            digitalWrite(PIN_LED6,HIGH);
            state6="ON";
          } else if (readString1.substring(LED6,LED6+6)=="LED6=F")
          {
            digitalWrite(PIN_LED6,LOW);
            state6="OFF";
          } 
           
          if(readString1.substring(LED7,LED7+6)=="LED7=T")
          {
            digitalWrite(PIN_LED7,HIGH);
            state7="ON";
          } else if (readString1.substring(LED7,LED7+6)=="LED7=F")
          {
            digitalWrite(PIN_LED7,LOW);
            state7="OFF";
          } 
     
          if(readString1.substring(LED8,LED8+6)=="LED8=T")
          {
            digitalWrite(PIN_LED8,HIGH);
            state8="ON";
          } else if (readString1.substring(LED8,LED8+6)=="LED8=F")
          {
            digitalWrite(PIN_LED8,LOW);
            state8="OFF";
          } 
          //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("<html>");
          cliente.println("<head>");
          cliente.println("<title>CRR v1.0</title>");
          cliente.println("<h2><font color='#2076CD'>Control Remoto de Reles v1.0</font color></div></h2>");
          cliente.print("<body bgcolor='#444444'>");
          cliente.println("</head>");
          cliente.println("<h3>RELE 1</h3>");
          cliente.println("<input type=submit value=ON style=width:50px;height:25px onClick=location.href='./?LED1=T\'>");
          cliente.println("<input type=submit value=OFF style=width:50px;height:25px onClick=location.href='./?LED1=F\'>");
          cliente.print("Estado: ");
          cliente.print(state1);
          cliente.println("<h3>RELE 2</h3>");
          cliente.println("<input type=submit value=ON style=width:50px;height:25px onClick=location.href='./?LED2=T\'>");
          cliente.println("<input type=submit value=OFF style=width:50px;height:25px onClick=location.href='./?LED2=F\'>");
          cliente.print("Estado: ");
          cliente.print(state2);
          cliente.println("<h3>RELE 3</h3>");
          cliente.println("<input type=submit value=ON style=width:50px;height:25px onClick=location.href='./?LED3=T\'>");
          cliente.println("<input type=submit value=OFF style=width:50px;height:25px onClick=location.href='./?LED3=F\'>");
          cliente.print("Estado: ");
          cliente.print(state3);
          cliente.println("<h3>RELE 4</h3>");
          cliente.println("<input type=submit value=ON style=width:50px;height:25px onClick=location.href='./?LED4=T\'>");
          cliente.println("<input type=submit value=OFF style=width:50px;height:25px onClick=location.href='./?LED4=F\'>");
          cliente.print("Estado: ");
          cliente.print(state4);
          cliente.println("<h3>RELE 5</h3>");
          cliente.println("<input type=submit value=ON style=width:50px;height:25px onClick=location.href='./?LED5=T\'>");
          cliente.println("<input type=submit value=OFF style=width:50px;height:25px onClick=location.href='./?LED5=F\'>");
          cliente.print("Estado: ");
          cliente.print(state5);
          cliente.println("<h3>RELE 6</h3>");
          cliente.println("<input type=submit value=ON style=width:50px;height:25px onClick=location.href='./?LED6=T\'>");
          cliente.println("<input type=submit value=OFF style=width:50px;height:25px onClick=location.href='./?LED6=F\'>");
          cliente.print("Estado: ");
          cliente.print(state6);
          cliente.println("<h3>RELE 7</h3>");
          cliente.println("<input type=submit value=ON style=width:50px;height:25px onClick=location.href='./?LED7=T\'>");
          cliente.println("<input type=submit value=OFF style=width:50px;height:25px onClick=location.href='./?LED7=F\'>");
          cliente.print("Estado: ");
          cliente.print(state7);
          cliente.println("<h3>RELE 8</h3>");
          cliente.println("<input type=submit value=ON style=width:50px;height:25px onClick=location.href='./?LED8=T\'>");
          cliente.println("<input type=submit value=OFF style=width:50px;height:25px onClick=location.href='./?LED8=F\'>");
          cliente.print("Estado: ");
          cliente.print(state8);
          cliente.println("</body>");
          cliente.println("</html>");
          cliente.stop();//Cierro conexión con el cliente
          readString1="";
        }
      }
    }
   }
  }

Moderator edit:
</mark> <mark>[code]</mark> <mark>

</mark> <mark>[/code]</mark> <mark>
tags added.

Hola.
Se puede reducir bastante el código, haciendo bucles en zonas repetitivas y usando un array para los pines. No está probado, pero creo que te puedes hacer una idea.

/*
     Arduino Ethernet Shield
 Control Remoto de Reles v1.0   
 */

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

//Declaración de la direcciones MAC e IP. También del puerto 80
byte mac[]={
      0xDE,0xAD,0xBE,0xEF,0xFE,0xED}; //MAC
IPAddress ip(10,10,10,100); //IP
EthernetServer servidor(80);

const int PIN_LED[]={
      5, 6, 7, 8, 9, 11, 12, 13};

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

      for (int i=0; i<8; i++) {
            pinMode(PIN_LED[i],OUTPUT);
            digitalWrite(PIN_LED[i],LOW);
      }
}

void loop()
{
      EthernetClient cliente = servidor.available();
      if(cliente)
      {
            while(cliente.connected())//Cliente conectado
            {
                  String readString1("");
                  if(cliente.available())
                  {
                        char c=cliente.read();
                        if(readString1.length()<30)//Leemos petición HTTP caracter a caracter
                        {
                              readString1.concat(c); //Almacenar los caracteres en la variable readString
                        }
                        if(c=='\n')//Si la petición HTTP ha finalizado
                        {
                              for (int encontrado = readString1.indexOf("LED"); encontrado>=0; encontrado=readString1.indexOf("LED",encontrado)) {
                                    int numLed = readString1.charAt(encontrado+3) - '0'; 
                                    if (numLed>=0 && numLed<8 && readString1.charAt(encontrado+4)=='=') {
                                          char comando=readString1.charAt(encontrado+5);
                                          if (comando=='T')
                                                digitalWrite(PIN_LED[numLed], HIGH);
                                          else if (comando=='F')
                                                digitalWrite(PIN_LED[numLed], LOW);
                                    }
                              }
                              //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("<html>");
                              cliente.println("<head>");
                              cliente.println("<title>CRR v1.0</title>");
                              cliente.println("<h2><font color='#2076CD'>Control Remoto de Reles v1.0</font color></div></h2>");
                              cliente.print("<body bgcolor='#444444'>");
                              cliente.println("</head>");
                              
                              for (int i=0; i<8; i++) {
                                    cliente.print("<h3>RELE "); cliente.print(i); cliente.println("</h3>"); // poner cliente.print(i+1) si se quiere numeración 1-8 en lugar de 0-7
                                    cliente.println("<input type=submit value=ON style=width:50px;height:25px onClick=location.href='./?LED"); cliente.print(i); cliente.println("=T\'>");
                                    cliente.println("<input type=submit value=OFF style=width:50px;height:25px onClick=location.href='./?LED"); cliente.print(i); cliente.println("=F\'>");
                                    cliente.print("Estado: ");
                                    cliente.print(digitalRead(PIN_LED[i])?"ON":"OFF");
                              }

                              cliente.println("</body>");
                              cliente.println("</html>");
                              cliente.stop();//Cierro conexión con el cliente
                              readString1="";
                        }
                  }
            }
      }
}

Ah. Revisa los pines utilizados para los relés. Si estás usando arduino uno, los pines SPI son los 10, 11, 12 y 13; en mega 50,51,52 y 53.