arduino ethernet shield non pinga e non si connette.

PaoloP:
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.

Giusto per chiarire il punto non è una critica a PaoloP.
So benissimo che cosa è l'overload di funzioni, quello che mi chiedo però è dove hai visto questa cosa? Leggendo la guida ufficiale [1] c'è scritto:

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

quindi la versione con quattro parametri come fa a prendere il terzo parametro come gateway? Questo ovviamente solo guardando la pagina del manuale, poi ovviamente il mistero si chiarisce quando si va a vedere il codice (ultima versione scaricata dal repository con git):

int begin(uint8_t *mac_address);
  void begin(uint8_t *mac_address, IPAddress local_ip);
  void begin(uint8_t *mac_address, IPAddress local_ip, IPAddress dns_server);
  void begin(uint8_t *mac_address, IPAddress local_ip, IPAddress dns_server, IPAddress gateway);
  void begin(uint8_t *mac_address, IPAddress local_ip, IPAddress dns_server, IPAddress gateway, IPAddress subnet);
void EthernetClass::begin(uint8_t *mac_address, IPAddress local_ip, IPAddress dns_server, IPAddress gateway)
{
  IPAddress subnet(255, 255, 255, 0);
  begin(mac_address, local_ip, dns_server, gateway, subnet);
}

Quindi come può essere che con la versione a 4 parametri mi prenda mac , ip, gateway e subnet?

Ciao.

[1] Ethernet - Arduino Reference