Go Down

Topic: Problema con Ethernet Shield e Codice quando non è connesso alcun cavo (Read 1 time) previous topic - next topic

alessandrocolos

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!

Code: [Select]

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

nid69ita

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 generali utili: Link Utili
my name is IGOR, not AIGOR

pablos71

Quote
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
L'esperienza è il tipo di insegnante più difficile ....
Prima ti fa l'esame e poi ti spiega la lezione.

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)

pablos71

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
L'esperienza è il tipo di insegnante più difficile ....
Prima ti fa l'esame e poi ti spiega la lezione.

PaoloP

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.

alessandrocolos

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  ;)

Go Up