Bonjour,
Ca peut-être pas mal de choses. Premièrement, c'est un basic mais combien fréquent, s'assurer que la liaison physique n'est pas défectueuse. Pour cela, regarder à chaque extrémité du cordon RJ45 si elle est bien enfichée. Ne pas hésiter à remplacer un cordon dont les languettes de maintien seraient cassées, ce sera un jour ou l'autre une source de problème sur laquelle on risque de passer beaucoup de temps. Les connexions du shield ne sont pas sans reproche, des fois trop enfoncées, parfois pas assez. Il faut essayer de trouver un enfoncement intermédiaire.
Conseil suivant, charger un des exemples disponibles dans l'IDE d'Arduino ayant trait à Ethernet et s'assurer que cet exemple permet bien de se voir attribuer une adresse IP. On commencera par un exemple qui utilise les DNS, c'est à dire une adresse IP attribuée par le routeur, évitant ainsi les risques de doublons qui, même s'ils sont faibles, empêcheraient un fonctionnement correct.
L'exemple WebClient est intéressant. Il va chercher à se connecter sur les serveurs de Google après avoir tenté de se faire attribuer une adresse IP automatiquement par la box ou à défaut, prendre l'adresse 192.168.0.177. Cette adresse devra être modifiée en 192.168.1.177 en cas d'échec.
Attention, dans cet exemple, le port série est configuré sur 9600 alors que notre moniteur série est lui généralement configuré sur 115200. Il faudra donc modifier l'un ou l'autre pour les ajuster.
Si ça fonctionne avec cet exemple, vous tenez le bon bout. Ca veut dire que le hard fonctionne.
Sinon, il existe plusieurs sortes de shield qui utilisent des bibliothèques différentes.
Dans DCC++ les réglages sont concentrés sur la page Config.h. Après s'être assuré que la partie hard ne pose pas de problème (ou si on n'a pas pu les déceler), on va tenter successivement les réglages pour différents types de shields et donc de bibliothèques.
On va commencer (si ce n'est pas déjà fait) par commenter la ligne : // #define IP_ADDRESS { 192, 168, 1, 200 }
Pour laisser la box attribuer une adresse IP dynamiquement et éviter ainsi d'éventuels conflits avec cette adresse peut-être déjà attribuée.
Dans cette partie du programme:
// DEFINE COMMUNICATIONS INTERFACE
//
// 0 = Built-in Serial Port
// 1 = Arduino.cc Ethernet/SD-Card Shield
// 2 = Arduino.org Ethernet/SD-Card Shield
// 3 = Seeed Studio Ethernet/SD-Card Shield W5200
#define COMM_INTERFACE 1
On va successivement attribuer à COMM_INTERFACE la valeur 1, puis 2 et enfin 3 en recommençant à chaque fois le téléversement et le démarrage de DCC++.
Si l'on n'a toujours rien et si l'on a un autre shield, on va alors le changer.
Avec ce que je vous décris, il y a 90 ou 95 % de chances pour que vous ayez la réponse. Sinon, n'hésitez pas à revenir sur le forum, on poussera alors plus loin les investigations. Mais surtout, revenez en relatant des faits précis, explicites, détaillés et appuyés au besoin de copies d'écran.