Problema con Ethernet Shield e Codice quando non è connesso alcun cavo

ciao a tutti, ho un bug nel mio codice che mi affligge da parecchio tempo. Ho un'arduino duemilanove con ethernet shied w5100. Arduino viene inizializzato come client che effettua chiamate periodiche ad un server php inviando letture di ingressi (high o low) con possibilità di attivare o disattivare le uscite sia da locale che da server php. il problema si presenta quando non collego un cavo ethernet alla shield poichè non mi permette di modificare gli stati nemmeno da locale (tramite ingressi fisici).

nel setup ho solo la dichiarazione dei vari pins, avvio della seriale e la dichiarazione del mac address. Vorrei che riuscisse ad eseguire il loop anche senza che venga inserito un cavo ethernet... Dove sbaglio? grazie a chiunque riesca ad aiutarmi!

    Serial.println("ARDUINO ACCESO");
 Ethernet.begin(mac);

Ti invitiamo a presentarti (dicci quali conoscenze hai di elettronica e di programmazione) qui: Presentazioni e a leggere il regolamento: Regolamento - qui una serie di schede by xxxPighi per i collegamenti elettronici vari: ABC - Arduino Basic Connections - qui le pinout delle varie schede by xxxPighi: Pinout - qui una serie di link [u]generali[/u] utili: Link Utili

Dove sbaglio?

Dici troppo poco. E' impossibile rispondere a questa domanda con sicurezza senza info dettagliate, nel tuo programma è quasi certo che ci sono funzioni che danno priorità al processo client piuttosto che alla gestione I/O

La funzione DHCP invocata dalla Ethernet.begin ha un timeout di 60000 millisecondi (1 minuto). Passato questo periodo l'esecuzione dello sketch prosegue ma l'IP non è assegnato e la scheda non è raggiungibile via rete. (ovvio se il cavo è staccato)

PaoloP: La funzione DHCP invocata dalla Ethernet.begin ha un timeout di 60000 millisecondi (1 minuto). Passato questo periodo l'esecuzione dello sketch prosegue ma l'IP non è assegnato e la scheda non è raggiungibile via rete. (ovvio se il cavo è staccato)

Non credo si riferisca a una disconnessione durante l'operatività del sistema, secondo me si riferisce al fatto che tutto il programma non funziona mai se il cavo di rete è scollegato ... per questo dico che se le domande non sono fatte a regola d'arte perdiamo tempo.

Quello che dici tu l'ho riscontrato anch'io, il programma si blocca se disconnetti il cavo durante il run del loop per circa 30 sec, ed è una domanda che feci 2 anni senza soluzione, che mi sono risolto studiando il datasheet e modificando i parametri del chip w5100

A breve dovrebbe uscire la libreria Ethernet 1.1 con supporto al chip Wiz5200 e Wiz5500 e autoselezione dei parametri in base al modello rilevato: 5100, 5200 o 5500. Sarà probabilmente inserita nella 1.5.9.

vi ringrazio per le risposte. Specifico che sto utilizzando una W5100.
Il problema da me riscontrato è al primo avvio di arduino, quando il modulo ethernet resta in attesa di ricevere un ip in maniera dinamica.
Non sapevo che la libreria definisse un intervallo di 60 secondi in attesa di ottenere un ip dinamico.
Di conseguenza Andrò a dimezzare il tempo dalla libreria stessa!
Grazie di cuore a tutti :wink: