no puedo levantar el html alojado en la SD del shield ethernet

Hola a todos! Bueno paso a contarles, estoy aprendiendo a encender y apagar dos leds a traves de la ethernet shield de arduino. El arduino utilizado es el UNO y una Shield Ethernet con micro SD. Usando una web embebida en la memoria del shield funciona perfecto pero luego modifique el codigo para que me leyera la web alojada en la micro SD. Es un simple index.htm con 4 botones (2 encienden los leds y 2 apagan los leds).

Cuando intento ingresar a la IP programada el navegador me da error, es como que el arduino no me levanta la web que tengo alojada en la micro SD, me fije en el monitor serial del compilador y la tarjeta me la lee exitosamente.

Les dejo el codigo para ver si alguien me puede dar una mano con esto.

#include <SPI.h>
#include <Ethernet.h>
#include <SD.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(192,168,1,85); //IP
EthernetServer servidor(80);
File webFile;
int PIN_LED1=7;
String readString1=String(30);
String state1=String(3);
int PIN_LED2=8;
String state2=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";
  pinMode(PIN_LED2,OUTPUT);
  digitalWrite(PIN_LED2,LOW);
  state2="OFF";

  Serial.begin(9600);       						// Iniciamos el monitor serial para comprobar errores
    
    
    Serial.println("Inicializando MicroSD...");				// Inicializamos la SD card
    if (!SD.begin(4)) {							// Caso si no hay respuesta por parte de la SD
        Serial.println("ERROR - Inicializacion MicroSD fallida!");	// Inicio fallido
        return;    							// Volvemos a intentar inicializar la SD card
    }
    Serial.println("EXITO - MicroSD inicializada.");			// Caso si hay respuesta por parte de la SD
    									
    if (!SD.exists("index.htm")) {					// Comprueba en la SD si esta el archivo index.htm 
        Serial.println("ERROR - No encuentro index.htm!");		// Caso que no encuentra el archivo index.htm
        return;								// Volvemos a intentar inicializar la SD card  							
    }
    Serial.println("EXITO - Index.htm encontrado.");			// Caso que si encuentra el archivo index.htm
    }

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("LED=");
          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+5)=="LED=T")
          {
            digitalWrite(PIN_LED2,HIGH);
            state2="ON";
          } else if (readString1.substring(LED2,LED2+5)=="LED=F")
          {
            digitalWrite(PIN_LED2,LOW);
            state2="OFF";
          }
          
        //Cabecera HTTP estándar
          cliente.println("HTTP/1.1 200 OK");
          cliente.println("Content-Type: text/html");
          cliente.println("Connection: close"); 
          cliente.println();  
         //agregado microSD
          webFile = SD.open("index.htm");        		// Abre el archivo index.htm
                    if (webFile) {
                        while(webFile.available()) {
                            cliente.write(webFile.read()); 		// Manda una pagina web al cliente
                        }
                        webFile.close();
                    }
                    break;
                }
                							 // Cada linea del texto recibido del cliente acaba con "\r\n"
                if (c == '\n') {
                    							 
                   							 // Comenzando una nueva linea con el siguiente caracter leido
                    lineaenblanco = true;				 // Ultimo caracter en la linea de texto recibido
                } 
                else if (c != '\r') {
                    							 
                    lineaenblanco = false;				 // Un caracter de texto se recibe del cliente
                }
          
          cliente.stop();//Cierro conexión con el cliente
          readString1="";
        }}}}

Muchas gracias

Alguien me puede ayudar??? Busque en google y no encontre nada al respecto!!! Las placas funcionan bien, asi que eso lo descarto por completo....

¿Puedes subir el html que estás usando? ¿Qué código de error muestra el navegador?

Finalmente cambie mi codigo por uno que enciende un solo led, y la web la pude levantar de mi microSD, el problema que se me presenta ahora es que no puedo encender el led desde esa web.

Adjunto el nuevo codigo del arduino:

#include<SD.h>
#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(192, 168, 1, 85); //IP 
EthernetServer servidor(80); 
int PIN_LED=8; 
String readString=String(30); //lee los caracteres de una secuencia en una cadena.
//Los strings se representan como arrays de caracteres (tipo char) 
String state=String(3);
File webFile;
void setup() {
Ethernet.begin(mac, ip); //Inicializamos con las direcciones asignadas 
servidor.begin(); 
  // Inicicalizo la tarjeta micro SD
    Serial.println("Inicializando MicroSD...");
    if (!SD.begin(4)) {
        Serial.println("ERROR - Inicializacion MicroSD fallida!");
        return;    // init failed
    }
    Serial.println("EXITO - MicroSD inicializada.");
    // check for index.htm file
    if (!SD.exists("index.htm")) {
        Serial.println("ERROR - No encuentro index.htm!");
        return;  // can't find index file
    }
    Serial.println("EXITO - Index.htm encontrado.");
pinMode(PIN_LED,OUTPUT);
digitalWrite(PIN_LED,LOW);
state="OFF";
}


void loop() {
  //EthernetClient Crea un cliente que se puede conectar a 
  //una dirección específica de Internet IP
EthernetClient cliente= servidor.available(); 
if(cliente) {
boolean lineaenblanco=true; 
while(cliente.connected()) {
if(cliente.available()) {
char c=cliente.read(); 
if(readString.length()<30) {
readString.concat(c);
//Cliente conectado
//Leemos petición HTTP caracter a caracter
//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+5)=="LED=T") {
digitalWrite(PIN_LED,HIGH);
state="ON"; } 
else if (readString.substring(LED,LED+5)=="LED=F") {
digitalWrite(PIN_LED,LOW); 
state="OFF";
}
//Cabecera HTTP estándar
cliente.println("HTTP/1.1 200 OK"); 
cliente.println("Content-Type: text/html"); 
cliente.println("Connection: close"); //Página Web en HTML 
cliente.println();

webFile = SD.open("index.htm"); // abre la pagina web

if (webFile){
  while(webFile.available()){
    cliente.write(webFile.read()); // send web page to client
                        }
                        webFile.close();
                    }
                    break;
                    }
 if (c == '\n') {
                    // last character on line of received text
                    // starting new line with next character read
                    lineaenblanco = true;
                } 
                else if (c != '\r') {
                    // a text character was received from client
                    lineaenblanco = false;
                }
            } // end if (client.available())
        } // end while (client.connected())
        delay(1);      // give the web browser time to receive the data
        cliente.stop(); // close the connection
    } // end if (client)
}

Ahora creo que el problema es de mi pagina htm que no debe estar bien programada, tambien la dejo adjunta en codigo html

<html>
<head>
<title>LAMPARA ON/OFF</title>
</head>
<body width=100% height=100%>
<center>
<h1>LAMPARA ON/OFF</h1>


Estado de la lampara: OFF



<input type=submit value=ON style=width:200px;height:75px onClick=location.href='./?LED=T'>
<input type=submit value=OFF style=width:200px;height:75px onClick=location.href='./?LED=F'>
</center>
</body>
</html>