Ethernet shield W5100 non funziona, non pinga.

Ciao, ho un problema con la mia Ethernet Shield W5100 compatibile.
Infatti non funziona, quando tento di connettermi il mio browser mi da il seguente errore:

La pagina web non è disponibile
ERR_CONNECTION_TIMED_OUT

Il codice che ho usato è questo:

#include <SPI.h>
#include <Ethernet.h>
#include <SD.h>
 
#define maxLength 25
 
byte mac[] = { 0x90, 0xA2, 0xDA, 0x00, 0x5A, 0x82 };
byte ip[] = { 192, 168, 1, 89 };
File htmlFile;
EthernetServer server(80);
 
void setup()
{
  Serial.begin(9600);
  Ethernet.begin(mac, ip);
  server.begin();
  if (!SD.begin(4)) { 
    Serial.println("Scheda SD non inserita correttamente, mi spengo...");
    return;
  }
  pinMode(8, OUTPUT);
  Serial.print("Server avviato su: ");
  Serial.println(Ethernet.localIP());
}
 
void loop()
{
  char* file_to_load = "home.htm";
  String inString = String(maxLength);
 
  EthernetClient client = server.available();
  if (client) {
    boolean currentLineIsBlank = true;
    while (client.connected()) {
      String richiesta;
      if (client.available()) {
        char c = client.read();
        richiesta.concat(c);
        Serial.println(richiesta);
        if (inString.length() < maxLength) {
          inString += c;
        }
        if (richiesta.indexOf("?led=on") > 0)
        {
          digitalWrite(8, HIGH);
        }
        if (richiesta.indexOf("?led=off") > 0)
        {
          digitalWrite(8, LOW);
        }
        
        if (c == '\n' && currentLineIsBlank) {
          if (inString.indexOf(".htm") > -1) {
            String new_file_load;
            int rootIndex = inString.indexOf("/");
            new_file_load = inString.substring((rootIndex+1), (rootIndex+13));
 
            int endIndex = new_file_load.indexOf(" ");
            if (endIndex > -1) {
              new_file_load = new_file_load.substring(0, endIndex);
            }
            if (new_file_load != "")  {
              new_file_load.toCharArray(file_to_load,12);
            }
          }
 
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println(); 
 
          read_file("home.htm", client);
 
          break;
        }
        if (c == '\n') {
          currentLineIsBlank = true;
        }
        else if (c != '\r') {
          currentLineIsBlank = false;
        }
      }
    }
    delay(1);
    client.stop();
  }
}
 
void read_file( char* page_html, EthernetClient client )
{
  htmlFile = SD.open( page_html );
  if (htmlFile) {
    while (htmlFile.available()) {
        client.write(htmlFile.read());
    }
    // close the file:
    htmlFile.close();
  }
}

Quando tento di collegarmi i led RX e TX dello shield lampeggiano, quindi il segnale ci dovrebbe essere.

Prova a cambiare mac... metti questo 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED

Mi da lo stesso errore... :disappointed_relieved:

Per ora tutti quelli che hanno avuto la scheda w5100 compatibile hanno scritto tutti non funziona.

suggerimenti:
Un link della scheda
Specificare su quale arduino è stato montato
Ide di utilizzo
Cambia Mac
Specifica il gateway
verifica gli IP della tua rete
Prova a fare un ping

risposte utente
Seguito tutti i suggerimenti ma continua a non funzionare.

utente scomparso!

Utilizzo l'ultimo IDE (1.6.5), il mio gateway 192.168.1.1, ho controllato gli IP, ho fatto un ping (senza risultati), ho cambiato MAC ed è montato su Arduino UNO R3 originale.

Come mai setti il pin8 come output? Per l'ethernet si setta come output il pin10... Poi prova anche quest'altro mac 0x12, 0x51, 0x62, 0x29, 0x92, 0x21

Ho settato il pin 8 perchè avevo un led, comunque ora prova il tuo MAC e setto il pin 10 come output

il pin 8 è usato dallo sketch come uscita per un Led o relay, etc.
Mentre il Pin 10 è quello che usa la Shield Ethernet come Chip Select, quindi lascia tutto come sta'.
Semmai, visto che la shield si collega sul connettore ICSP da 6pin, sei sicuro che sia infilata bene sino in fondo ?

il pin 8 è usato dallo sketch come uscita per un Led o relay, etc.
Mentre il Pin 10 è quello che usa la Shield Ethernet come Chip Select, quindi lascia tutto come sta'.
Semmai, visto che la shield si collega sul connettore ICSP da 6pin, sei sicuro che sia infilata bene sino in fondo ?

Sì, leggendo su internet ho saputo che poteva anche essere il motivo che hai detto tu.
Quindi ho controllato ed è tutto apposto. Ho provato cambiando MAC con quello suggeritomi da marinaio67 ma la situazione resta la stessa.
Secondo me non è colpa del MAC Address

dal serial debug dove vedi che si ferma il programma?

una domanda stupida ma la sd è inserita?

hai provato arduino e shield ethernet con un programma semplice ?

Sì, ho provato l'ethernet shield con un esempio trovato su internet (che non era altro che far pingare l'ethernet dal pc).

L'SD è inserita, non sono uno stupido come quelli che collegando il cavo ethernet al pc volendo comunicare col ruoter.

Si ferma quando dice "Server avviato su: 192.168.1.89" e quando mi connetto all'ethernet tramite ping o browser mi dà errore

Ho paura che sia un problema di reset, il reset di arduino è troppo breve rispetto al tempo che serve al w5100. In alcuni esempi, indicano il pin 8 come seset forzato.
puoi indicare il modello dello shield con un link?

Dovresti provare a isolare i 2 reset di arduino e dello shield, avviare arduino e dopo pochi secondi resettare lo shield e tentare quindi la connessione, se funziona puoi organizzarti con un RC e allungare il tempo di reset delle 2 schede

Link ethernet shield

Hai letto il resto?