arduino ethernet shield non pinga e non si connette.

k_apo:
Stando a quello che hai scritto, il tuo codice per inizializzare l'interfaccia ethernet è:

//..

Ethernet.begin(myMac ,myIp, gateway, subnet);
//..




Mentre secondo la guida [1] la funzione begin è:



Ethernet.begin(mac, ip, dns, gateway, subnet);




In sostanza l'indirizzo che tu passi come gateway viene in realtà identificato come dns e la mask invece come gateway.

Ciao

[1] http://arduino.cc/en/Reference/EthernetBegin

No, K_apo.
La libreria Ethernet, come alcune altre, prevede l'overloading delle funzioni ovvero la possibilità di avere più funzioni con lo stesso nome ma con diversi parametri in ingresso.
In questo caso

//..
Ethernet.begin(myMac ,myIp, gateway, subnet); 
//..

passandogli 4 parametri essi vengono associati come mac, ip, gateway e subnet. Il dns è impostato per default uguale al gateway.
Se tu passassi 5 parametri allora il compilatore andrebbe a scegliere tra tutte le funzioni Ethernet.begin a disposizione quella che accetta 5 parametri in ingresso e userebbe quest'altra

Ethernet.begin(mac, ip, dns, gateway, subnet);

quindi l'ordine dei parametri viene rispettato e non c'è possibilità che si passi il gateway come netmask.

Poi se vai a leggerti il codice della libreria noterai che lo sviluppatore ha usato un trucco... ma questo lo lascio approfondire a voi.