Con le parentesi angolari il file viene cercato tra le librerie installate (diciamo come dire "nel PATH") mentre con le virgolette viene prima cercato nella cartella corrente (quella dello sketch che la include) e se non trovata lo cerca tra le librerie.
Per cui includendo con "<>" quel file Ethernet.h, lo cerca tra le librerie ed il rischio è che prenda prima quello della libreria originaria (anzi, secondo me è quasi sicuro) invece della ENC.
Per avere la certezza di usare la EthernetENC basta semplicemente includere <EthernetENC.h> come richiesto dalla libreria stessa.
Nell'IDE vai sul menù Sketch --> Include Librarie --> Gestisci Librerie...
Nella finestra di ricerca scrivi EthernetENC.
Controlla se è installata la librarie o nel caso installala o aggiornala. L'ultima versione è la 2.0.5 di 2 settimane fa.
/*
Link Status
This sketch prints the Ethernet link status. When the
Ethernet cable is connected the link status should go to "ON".
NOTE: Only WIZnet W5200 and W5500 are capable of reporting
the link status. W5100 will report "Unknown".
Hardware:
- Ethernet shield or equivalent board/shield with WIZnet W5200/W5500
Written by Cristian Maglie
This example is public domain.
*/
#include <SPI.h>
#include <EthernetENC.h>
void setup() {
// You can use Ethernet.init(pin) to configure the CS pin
Ethernet.init(9); // Most Arduino shields
//Ethernet.init(5); // MKR ETH Shield
//Ethernet.init(0); // Teensy 2.0
//Ethernet.init(20); // Teensy++ 2.0
//Ethernet.init(15); // ESP8266 with Adafruit FeatherWing Ethernet
//Ethernet.init(33); // ESP32 with Adafruit FeatherWing Ethernet
Serial.begin(9600);
}
void loop() {
auto link = Ethernet.linkStatus();
Serial.print("Link status: ");
switch (link) {
case Unknown:
Serial.println("Unknown");
break;
case LinkON:
Serial.println("ON");
break;
case LinkOFF:
Serial.println("OFF");
break;
}
delay(1000);
}
come da indicazioni ma continua a dirmi :
21:06:27.169 -> Link status: Unknown
La libreria è installata (mi dice solo 'remove' ) ed è la 2.0.5
Non so cos'altro pensare.
Se non vi viene in mente altro, io restituirei la scheda... che dite? Posso fare altri tentativi?
Come non detto! Non so cosa diavolo ho toccato ma ora va!
O meglio...
Anzichè continuare a caricare su arduino lo script di esempio della libreria personalizzato con il pin CS e il nome della libreria come stavo cocciutamente facendo, ho caricato uno script vecchio, solo per vedere che stesse funzionando tutto. Ho visto che funzionava...
Allora disperato ho provato a ricaricare l'esempio (personalizzato come detto) ee.. TADAAA!!!
Ora il link status è corretto. Col cavo ON, senza cavo OFF!
Alla fine penso di restituirla perchè il comportamento è schizzofrenico :
quindi secondo me o qualche filo va quando vuole oppure è rotta la scheda.
16:16:18.262 -> Link status: ON
16:16:21.297 -> Link status: ON
16:16:24.337 -> Link status: ON
16:16:27.358 -> Link status: Unknown
16:16:30.374 -> Link status: ON
16:16:33.408 -> Link status: ON
16:16:36.398 -> Link status: ON
16:16:39.424 -> Link status: Unknown
16:16:42.479 -> Link status: ON
16:16:45.485 -> Link status: ON
16:16:48.502 -> Link status: Unknown
16:16:51.515 -> Link status: ON
16:16:54.566 -> Link status: ON
16:16:57.558 -> Link status: ON
16:17:00.610 -> Link status: ON
16:17:03.629 -> Link status: ON
16:17:06.640 -> Link status: ON
16:17:09.686 -> Link status: ON
16:17:12.682 -> Link status: ON
16:17:15.692 -> Link status: Unknown
16:17:18.734 -> Link status: Unknown
Qualcuno che mi sta seguendo ancora mi sa dare un 'opinione su questo comportamento?
Concordo con @PaoloP ... da quanto descrivi sembra proprio un problema di falsi contatti ... del resto, il bus SPI NON è fatto per essere portato in giro con cavetti volanti