..
Scusa, ma:
server is at 0.0.0.0
dice abbastanza chiaramente che lo shield non è riuscito a prendere un IP. Magari non hai il DHCP attivo sulla rete, oppure lo shield non è davvero un 5100, oppure boh. Da dove hai tirato fuori 192.168.1.177?
Sei sicuro di avere un W5100 e non un 5500, ad esempio? Leggi BENE sul chip, perché non è normale. La libreria Ethernet ufficiale è molto affidabile, almeno da un bel po' a questa parte.
Se guardi quello che c'è in giro, allora puoi anche credere che per usare millis() correttamente ci vogliono 5 lauree, che pilotare un relé senza far piantare Arduino è impossibile, e mille altre bojate.
docsavage:
invece temo che la W5100 sia di provenienza sconosciuta)
Un link a questo shield ? così capiamo che roba è e quale libreria serve
Riesci a fare due foto decenti, fronte e retro ?
Mica riporta scritto Arduino.org ? Arduino - Home
Dalle foto... falsa come un 15 di picche ![]()
Cioè, non è una originale, ne Arduino.cc ne Arduino.org
Ne ho una uguale. A me funziona.
docsavage:
ho uno shield ethernet, e sto provando a fare un web server
dopo qualche prova a vuoto ho pensato di prendere pari pari l'esempio dall'IDE
Ora, a parte lo "scazzo" che avevi, azzeriamo tutto e spiega bene che che hai fatto. ![]()
Ovvero... cosa hai caricato (quale sketch) ? Quale versione IDE ? Quale versione librerie Ethernet ?
-
Stupidaggine, ma... hai una Arduino Leonardo ?
Questo:
while (!Serial) { ; // wait for serial port to connect. Needed for native USB port only }
Toglilo serve SOLO per la Arduino Leonardo. -
a volte io preferisco dare ulteriori parametri al Ethernet.begin
ovvero aggiungo dns, mask e gateway (ip del router)
esempio:
IPAddress ip(192, 168, 1, 177);
IPAddress dns(8, 8, 8, 8 ); // google
IPAddress gateway(192, 168, 1, 0); // di solito router ultima cifra 0 o 254
IPAddress subnet(255, 255, 255, 0); // di solito è questo
...
Ethernet.begin(mac, ip,dns,gateway,subnet);
Vero, ma sulle altre schede non fa alcun male ;).
SukkoPera:
Vero, ma sulle altre schede non fa alcun male ;).
Il while serial ? Se non hai Leonardo e non apri serial monitor è fermo in quel while (dentro a setup)
nid69ita:
Il while serial ? Se non hai Leonardo e non apri serial monitor è fermo in quel while (dentro a setup)
Impossibile! Sulle vere seriali hardware è semplicemente come se non ci fosse ;). Potenzialmente potrebbe essere proprio del tutto eliminato dal compilatore, addirittura.
PS: Ho da poco inviato una Pull Request per implementare questa cosa anche nel core non-ufficiale per STM32.
SukkoPera:
Impossibile! Sulle vere seriali hardware è semplicemente come se non ci fosse ;).
Concordo, su tutte le altre schede AVR in cui la MCU non ha la USB ... quell'istruzione viene semplicemente sempre considerata vera.
On 32u4 based boards (Leonardo, Yùn, ecc) , if (Serial) indicates wether or not the USB CDC serial connection is open. For all other instances, including if (Serial1) on the Leonardo, this will always returns true.
Guglielmo
docsavage:
Io me ne fregherei altamente e cambierei shield, dandogli per guasto e scartandolo
... è sicuramnete un difetto della scheda "tarocca" ... con entrambe le originali (W5100 e W5500) che possiedo, gli esempi dell'IDE funzionano tutti ![]()
Guglielmo
Mah, anch'io ho un paio di cloni apparentemente identici al tuo, e funzionano imperterriti.
Giusto così, per sfizio, fai una prova con la libreria Ethernet2.
SukkoPera:
Giusto così, per sfizio, fai una prova con la libreria Ethernet2.
Mi sa che la Ethernet2 funzona SOLO con il W5500 ... non so che cosa combina con il W5100 ... :![]()
Guglielmo
Lo credo anch'io, ma sai mai che i cinesi hanno usato un 5500 scrivendoci sopra 5100... Perché i sintomi sembrano esattamente gli stessi.
Giusto, ma l'IP glielo assegna il software, per cui funziona, almeno in parte.